语音模仿相似度评价系统
2015-06-16 23:05
323 查看
功能: 对用户模仿某种语音语调的相似程度的机器评分—— 模仿歌曲、唱腔、名人演讲口吻、方言语调等。
输入: 模仿的语音
被模仿的语音
输出: 显示两者时域波形; 显示两者基音轨迹;显示两者强度轨迹; 输出匹配分数。
算法: 自相关求基音频率;
动态时间规整计算相似度;
实测:
改进: 可增加 MFCC 特征。
可基于小波变换系数进行语音分割,对准后再匹配打分。
扩展应用: 固定文本的说话人辨识;
有限词汇量的口令识别;
附主函数入口:
输入: 模仿的语音
被模仿的语音
输出: 显示两者时域波形; 显示两者基音轨迹;显示两者强度轨迹; 输出匹配分数。
算法: 自相关求基音频率;
动态时间规整计算相似度;
实测:
改进: 可增加 MFCC 特征。
可基于小波变换系数进行语音分割,对准后再匹配打分。
扩展应用: 固定文本的说话人辨识;
有限词汇量的口令识别;
附主函数入口:
void AnyTwoWavMatchTest(char *fileTest1, char *fileTest2, double* myScore) { double *sound_buffer = (double *)malloc(sizeof(double) * CLEN10240 * WIDTH / 2); //能量 double *energy_buffer1; energy_buffer1 = (double *)malloc(sizeof(double) * CLEN10240); //基音 double *pitch_buffer1; pitch_buffer1 = (double *)malloc(sizeof(double) * CLEN10240); //能量 double *energy_buffer2; energy_buffer2 = (double *)malloc(sizeof(double) * CLEN10240); //基音 double *pitch_buffer2; pitch_buffer2 = (double *)malloc(sizeof(double) * CLEN10240); int nX1 = ReadWavFileData(fileTest1, sound_buffer, 11.025); int FramX1 = ExtractPitchMy(sound_buffer, nX1, pitch_buffer1, energy_buffer1, 11.025); int nX2 = ReadWavFileData(fileTest2, sound_buffer, 11.025); int FramX2 = ExtractPitchMy(sound_buffer, nX2, pitch_buffer2, energy_buffer2, 11.025); double mean; mean = GetMean(pitch_buffer1,FramX1); GenderCheck(pitch_buffer1,FramX1,mean); mean = GetMean(pitch_buffer1,FramX1); GenderCheck(pitch_buffer2,FramX2,mean); Norm2MeanVale(pitch_buffer1,FramX1); Norm2MeanVale(pitch_buffer2,FramX2); Norm2MeanVale(energy_buffer1,FramX1); Norm2MeanVale(energy_buffer2,FramX2); *(myScore+1) = (double)abs(FramX1 - FramX2)/(double)(FramX1+FramX2)*2; *(myScore+2) = MatchingDTW(pitch_buffer1, pitch_buffer2, FramX1, FramX2, 1 , 0.1); *(myScore+3) = MatchingDTW(energy_buffer1, energy_buffer2, FramX1, FramX2, 1 , 0.1); *(myScore+0) = (*(myScore+1)+*(myScore+2)+*(myScore+3))/3; free(pitch_buffer1); free(energy_buffer1); free(pitch_buffer2); free(energy_buffer2); free(sound_buffer); }
相关文章推荐
- 2015061606 - 提交时让回车键触发事件失效
- Objective-c学习笔记3
- VsSharp:一个VS扩展开发框架(上)
- ID3算法 决策树 C++实现
- jQuery插件
- 下面是20个非常有用的Java程序片段,希望能对你有用(转载自http://www.codeceo.com/article/20-java-code.html)
- Java基础(二)
- logical vs physical address
- 【图像处理】数字图像处理软件(一)
- hadoop配置中遇到的问题
- 简单的ps制作方法之合图
- android源码之Builder
- JAVA 字节 字符
- 【codechef】Chef and His Friend (甲乙相遇的概率,分类)
- 2015061605 - 网站前后台数据传递方法
- objective-c学习笔记2
- STM32F4 LTDC学习
- GCC指令介绍
- 北大OJ_1003题:Hangover
- Oracle数据库之FORALL与BULK COLLECT语句