我有一个使用matlab进行音频匹配的项目。所以,有一些正确和错误的声音文件。每个正确的文件是一个人说“4,6,8”的声音。每个错误的文件都有不同的数字序列,如“6,4,8”或“4,8,6”。我应该用matlab检测是否说过正确的序列。因此,如果播放正确的声音,我必须显示“已接受”,如果播放了错误的声音,我必须显示“未接受”。
我知道我应该对每个正确的声音进行时间频率分析并识别模式。然后,我可以简单地为每个时间间隔设置一个频率阈值。 EG:如果频率为1KHz,则从0.1秒到0.9秒,然后显示“ACCEPTED”。
但是,我不知道如何为此编写程序。另外,如何在时间频率分析中获得每个数字频率的准确值?
这是我的代码到目前为止的代码
[right1, Fs] = wavread('C:\Users\Fazrina\Downloads\CorrectSequence1');
figure (1)
subplot(2,1,1), plot(right1), axis('tight');
subplot(2,1,2), specgram(right1,512,Fs);
答案 0 :(得分:2)
这不是匹配频谱图像的简单情况。仅从光谱图分析来看,由于许多因素,您的任务就是失败。如果您不想深入了解HMM分析的深度,那么动态时间扭曲就像您可以获得可靠的结果一样简单。 Dan Ellis有一些简洁的Matlab内容。