1

我目前正在执行一个与语音识别相关的项目,其中鼠标事件(如右键单击、左键单击、双击 .. 等)将作为语音命令给出。因此,作为第一步,我的主管告诉我使用梅尔频率倒谱系数提取每个语音命令的特征,并将这些提取的特征存储在使用 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
  1. 有人可以解释一下输出之王应该从 MFCC 得到什么吗
  2. 如何以 LIBSVM 格式存储从 MFCC 提取的特征。
  3. 有人可以帮我为我的问题找到正确的 MFCC 数学实验室实现吗?
4

1 回答 1

1

在尝试分析语音时,大多数当代解决方案使用一系列 MFCC 系数,而不仅仅是一个。一般来说,获得 MFCC 是这样的:

complexSpectrum = fft(signal)
powerSpectrum = abs(complexSpectrum) ** 2
filteredSpectrum = melFilterBank(powerSpectrum)
logSpectrum = log(filteredSpectrum)
dctSpectrum = dct(logSpectrum)

你在一个 30 毫秒的窗口上执行此操作,以 10 毫秒的步长沿信号滑动。

至于具体的实现,如果你觉得 Java 更熟悉的话,你可以学习用 C (sfbcep util) 或Sphinx编写的Spro中的代码。

于 2013-06-09T07:31:09.980 回答