0

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

4

2 回答 2

2

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

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

  1. 计算数据帧的 FFT。
  2. 通过对样本进行平方来计算 PSD。
  3. 应用 mel-filterbank 并对跨组的能量求和。
  4. 计算每个能量的对数。
  5. 计算能量对数的 DCT。
于 2015-05-26T15:35:10.760 回答
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 对数幂列表进行离散余弦变换,就好像它是一个信号一样。

  • MFCC 是所得频谱的幅度。

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

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

于 2015-05-27T08:20:34.890 回答