我目前正在开展一个与语音识别相关的项目,其中鼠标事件如右键单击,左键单击,双击等等将作为语音命令给出。因此,作为第一步,我的主管告诉我使用Mel频率倒谱系数提取每个语音命令的功能,并使用LIBSVM格式将这些提取的特征存储在文本文件中。我在互联网上使用了一些参考资料实施了MFCC。但我不确定这是正确的。我不确定MFCC的输出。当我说'对'时,我的程序给出了类似的东西
e.g -15.211534 8.230449 2.150475 4.000576 -0.037819 -1.083192 0.102314 0.232710 -0.813507 -0.349909 0.850858
答案 0 :(得分:0)
在尝试分析语音时,大多数现代解决方案使用一系列MFCC系数,而不仅仅是单个系数。一般来说,获得MFCC是这样的:
complexSpectrum = fft(signal)
powerSpectrum = abs(complexSpectrum) ** 2
filteredSpectrum = melFilterBank(powerSpectrum)
logSpectrum = log(filteredSpectrum)
dctSpectrum = dct(logSpectrum)
你可以在30ms的窗口上进行此操作,在10ms的步长中沿着信号滑动。
至于精确的实现,如果你发现Java更熟悉,你可以学习用C(sfbcep util)或Spro编写的Sphinx中的代码。