本文不涉及MFCC的理论,所以读此文前请对MFCC以及相关语音信号处理有初步认识。本文重点在于代码实现的分析。
先对MFCC有个初步认识。
MFCCs(Mel Frequency Cepstral Coefficents)是一种在自动语音和说话人识别中广泛使用的特征。提取MFCC特征的过程包括:
1)对语音进行预加重、分帧和加窗;
2)对每一个短时分析窗,通过FFT得到对应的频谱;
3)将上面的频谱通过Mel滤波器组得到Mel频谱;
4)在Mel频谱上面进行倒谱分析,获得Mel频率倒谱系数MFCC,这个MFCC就是这帧语音的特征。
下面对MFCC提取的实现进行分析。
1. 参数分析
MFCC程序需要输出什么?当然是MFCC参数了。如果愿意,还可以将帧(windowed frames)、滤波器组能量(filterbank energies)也一起输出,这样以后用到了也方便。
MFCC程序的输入参数呢?
总的来说有语音信号、采样频率、帧时、帧移、预加重系数、窗函数、频率范围、Mel滤波器个数、倒谱系数个数和提升参数。
下面一个一个来分析。
首先是语音信号(speech signal),这没得说,用matlab一句wavread搞定。比如