MFCCs(Mel Frequency Cepstral Coefficents) 是一种常用语语音识别,说话人识别的特征提取方法。
一、提取特征的主要过程:
- 对语音进行预加重、分帧和加窗;
- 对每一个 短时分析窗,通过FFT 得到对应的 频谱;
- 将上面的频谱通过 Mel滤波器组 得到 Mel频谱;
- 在Mel 频谱上面进行倒谱分析,获得 MFCC【Mel频率倒谱系数】,这个MFCC就是这帧语音的特征;
1、预加重
对输入的语音信号进行高频部分的提升,使信号的频谱变得平坦,保持在低频到高频的整个频带重,能用同样的信噪比求频谱。此外,对发声过程中声带和嘴唇产生的影响进行消除。
2、分帧
帧时:(frame duration) 将N个采样点集合成一个观测单元,称为帧。
通常,设定N=256或者512;时间为20~30ms;
一般人说话的声音在10ms-30ms的时间段内被认为是短时平稳的,所以一般取10~25时间作为帧时;
帧移:(frame shift) 为了避免相邻两帧的变化过大,两个帧之间有一段重叠的区域,包含M个采样点。表示取下一帧时窗移动的距离(毫秒级)。
通常,设定M=1/2 N或者M=1/3N;
通常,语音识别语音识别的采样频率为8KHZ 或16KHZ,如果帧的长度为256个采样点,那么对应的帧移时间长度为256/8000 *1000 = 32ms;
通常,帧时取25ms或者20ms.帧移取10ms.
3、预加重系数(preemphasis coefficient)
相当于高通滤波器。
通常,取0.95-0.97.
speech = filter([1-alpha], 1, speech);
alpha 就是预加重系数,speech还是原来得到的语音信号。
4、加窗(Hamming Window) ——w(n)
将每一帧乘上汉明窗,增加帧左端和右端的连续性。
假设,分帧之后的信号为S(n), n = 0 , 1 , . . .