您是否仍然可以从数字信号中提取功能而无需使用MFCC将其转换为模拟信号?

时间:2015-05-26 14:59:12

标签: signal-processing feature-extraction mfcc

我正在开发一种后端语音识别软件,其中用户可以导入mp3文件。如何从此数字音频文件中提取功能?我应该先将其转换回模拟吗?

2 个答案:

答案 0 :(得分:2)

您的问题不清楚,因为您错误地使用了术语模拟数字。模拟是真实的连续功能,即电压,压力等。数字是模拟信号的离散(采样)和量化版本。在计算MFCC时,必须计算音频帧的FFT。你只能从数字信号中提取MFCC - 用模拟信号做它是不可能的。

如果您询问是否可以从mp3文件中提取MFCC,那么是 - 这是可能的。您所需要的只是执行标准算法,您可以获得您的功能 - 显然它超出了该问题的规范。

  1. 计算数据帧的FFT。
  2. 通过对样本进行平方来计算PSD。
  3. 应用mel-filterbank并将能量汇总到银行。
  4. 计算每个能量的对数。
  5. 计算能量对数的DCT。

答案 1 :(得分:0)

你在这里混淆了一些东西,比如@jojek说你可以用数字信号完成所有这些。这是一个很好的教程:

http://practicalcryptography.com/miscellaneous/machine-learning/guide-mel-frequency-cepstral-coefficients-mfccs/

这个更实用:

http://www.speech.cs.cmu.edu/15-492/slides/03_mfcc.pdf

来自维基百科:[http://en.wikipedia.org/wiki/Mel-frequency_cepstrum]

MFCC通常如下推导:[1] [2]

  • 对信号进行傅立叶变换(窗口摘录)。意味着短时傅立叶变换)

  • 使用三角形重叠窗口将上面获得的光谱的功率映射到mel刻度上。 (上述链接中描述的计算)

  • 记录每个梅尔频率的功率记录。

  • 采用mel log权力列表的离散余弦变换,就像它是一个信号一样。

  • MFCC是所得光谱的幅度。

这是一个Matlab工具箱,可以帮助您更好地理解它:

http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voicebox.html