我正在开发一个后端语音识别软件,用户可以在其中导入 mp3 文件。如何从这个数字音频文件中提取特征?我应该先将其转换回模拟吗?
问问题
422 次
2 回答
2
您的问题不清楚,因为您错误地使用了模拟和数字术语。模拟是真实世界的连续函数,即电压、压力等。数字是模拟信号的离散(采样)和量化版本。在计算 MFCC 时,您必须计算音频帧的 FFT。您只能从数字信号中提取 MFCC - 使用模拟信号是不可能的。
如果您询问是否可以从 mp3 文件中提取 MFCC,那么是的 - 有可能。您所需要的只是执行标准算法,您可以获得您的功能 - 显然它超出了该问题的规范。
- 计算数据帧的 FFT。
- 通过对样本进行平方来计算 PSD。
- 应用 mel-filterbank 并对跨组的能量求和。
- 计算每个能量的对数。
- 计算能量对数的 DCT。
于 2015-05-26T15:35:10.760 回答
0
你在这里混淆了一些事情,就像@jojek 说你可以用数字信号做所有这些。这是教程上的一个很好的地方:
这个比较实用:
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 工具箱,可以帮助您更好地理解它:
于 2015-05-27T08:20:34.890 回答