Loading... 梅尔倒谱系数(Mel-Frequency Ceptral Coeffcients,MFCC),因为其独特的基于`倒谱(ceptral)`的提取方式,是目前最常用也是最有效的的语音特征提取算法之一。下图描述了MFCC语音特征提取的过程。  ## 1、步骤介绍 ### 1.1、预加重 语音信号的大部分能量都集中在低频部分。预加重是将原始语音信号通过一个高通滤波器,增强语音中的高频部分,并保持在低频到高频的整个频段中,能够使用同样的信噪比求频谱。下图反映了预加重之前和之后的对比。  ### 1.2、分帧 语音信号具有短时平稳性,所以我们通常需要将一段语音信号分为很多帧,然后对每一帧分别进行处理。一般选择帧长为`25ms`,帧移为`10ms`。然后根据音频的采样率将时间变为采样点。比如采样率为16000HZ,则帧长为`(16000/1000)*25=400`,帧移为`(16000/1000)*10=160`。 ### 1.3、加窗 分帧方式相当于对语音信号进行了加矩形窗的处理。  矩形窗在时域上对信号进行有现阶段,对应频域的通带较窄,边界存在多个旁瓣,发生严重的频谱泄露。  为了减少频谱泄露,通常对每帧的信号进行加窗处理。常用的窗函数有汉明窗(Hamming)、汉宁窗(Hanning)、布莱克曼窗(Blackman)等。其中汉明窗能够更好的保留原始语音信号的频率特性,使用最为广泛。 <img src="https://cdn.jsdelivr.net/gh/Kevinnan-teen/CDN/image-20210518201511327.png" style="zoom:80%;" /> ### 1.4、DFT 语音的感知过程与人类听觉系统具有频谱分析功能紧密相关。因此,对语音信号进行频谱分析,是认识和处理语音信号的重要方法。大部分声音(包括语音)都是复合音,涉及多个频率段,因此我们需要通过频谱来对这些频段进行分析。  ### 1.5、Mel滤波器 人类对语音信号的高频部分相对不敏感。因此人类对声音频率的感知是非线性的。 - 1KHZ以下,与频率成线性关系; - 1KHZ以上,与频率成对数关系; Mel频率可以用公式表达如下:   研究者根据心理声学实验得到了类似于耳蜗作用的一组滤波器组, 模拟人耳对不同频段声音的感知能力。**多个带宽不等的三角滤波器组成Mel频率滤波器组,线性频率小于1000Hz的部分为线性间隔,而线性频率大于1000Hz的部分为对数间隔。**  ### 1.6、取对数log 将之前经过每个Mel滤波器的输出取对数,得到相应频带的对数功率谱。计算对数功率谱的作用: - 取log压缩动态范围 - 对数使特征随声耦合变化的变化较小 ### 1.7、DCT 语音产生的模型:声源激励模型+声道响应模型。我们需要要这两种模型分开处理。倒谱是通过对对数幅度谱进行逆离散傅立叶变换(IDFT)而得到的。倒谱分析,又称为同态滤波,主要采用时频变换,得到对数功率谱再进行逆变换,分析出倒谱域的倒谱系数。通过傅里叶反变换,得到时域的语音信号倒谱。 <img src="https://cdn.jsdelivr.net/gh/Kevinnan-teen/CDN/image-20210518204015142.png" style="zoom: 50%;" /> > 这里可类比图像处理中的同态滤波算法,一副图像可以建模成照射强度(illumination)`i`和反射强度(reflection)`r`。一般来说,自然图片的光照一般是均匀渐变的,所以`i`应该是低频分量,而不同物体对光的反射是具有突变的,所以`r`是高频分量。现在我们对两边取对数,并做Fourier变换,得到线性组合的频率域。我们希望对低频能量进行压制,这样就降低了动态范围,而要对高频进行提高,这样就增强了图像的对比度。 在实际应用中,离散余弦变换(DCT)具有最优的去相关性能, 能够将信号能量集中到极少数的变换系数上,特别是大多数的自 然信号(包括声音和图像)的能量都集中在离散余弦变换后的低频部分。 一般采用DCT反变换代替傅里叶反变换,直接获取低频倒谱系数, 对应于包络信息,也就是声道特征。 <img src="https://cdn.jsdelivr.net/gh/Kevinnan-teen/CDN/image-20210518204217116.png" style="zoom:67%;" /> ### 1.8 MFCC - MFCC广泛用于基于HMM的语音识别系统; - 前12个MFCC通常被用作特征向量,非常紧凑; - 相比普通的频谱,MFCC特征之间有更少的相关性,更容易建立高斯混合模型GMM; - 可惜的是MFCC对噪声的鲁棒性不强; ## 2、总结:MFCC提取特征提取流程 - 将信号进行预加重、分帧、加汉明窗处理,然后进行短时傅里叶变换(STFT)得到其频谱; - 求频谱平方,将每个Mel滤波器频带内的能量进行叠加,第k个滤波器输出功率谱`X[k]`。 - 将每个滤波器的输出取对数,得到相应频带的对数功率谱,然后进行反离散余弦变换(DCT),得到L个MFCC系数。 ## 3、使用HTK提取MFCC过程 [MFCC特征提取代码](https://lucasnan.gitee.io/info/blog/mfcc.html) ## 4、参考资料 【1】[爱丁堡大学 ASR课程 slides](http://www.inf.ed.ac.uk/teaching/courses/asr/lectures-2021.html) 【2】[厦门大学智能语音实验室 ASR课程 slides](http://speech.xmu.edu.cn/2020/0630/c18207a406063/page.htm) 【3】[二维DCT](https://blog.csdn.net/pathuang68/article/details/4193990) 【4】[一维DCT](https://blog.csdn.net/qq_44261017/article/details/109277275) 【5】[基于MFCC的语音数据特征提取概述](https://www.cnblogs.com/LXP-Never/p/11602510.html) Last modification:March 2nd, 2022 at 02:56 pm © 允许规范转载