MFCC(Mel-Frequency Cepstral Coefficients)特征

MFCC(Mel-Frequency Cepstral Coefficients)特征

MFCC特征提取包含两个关键步骤:线性频谱转化到梅尔频率,然后进行倒谱分析。

由来:
梅尔(Mel)频率是由研究人员跟据人耳听觉机理提出,它与赫兹(Hz)频率成非线性对应关系。MFCC则利用两者之间的非线性关系,计算得到Hz频谱特征。当前MFCC已经广泛应用于语音数据特征提取和降低运算维度。由于Hz频率与Mel频率之间存在非线性的对应关系,使得当频率提高时,MFCC的计算精度随之下降。通常情况下,在应用时仅使用低频MFCC,而舍弃中频和高频MFCC。

详细原理:
(1)梅尔频率
梅尔刻度是一种基于人耳对等距的音高(pitch)变化的感官判断而定的非线性频率刻度。和频率的赫兹的关系如下:
在这里插入图片描述
在这里插入图片描述

梅尔刻度的滤波器组在低频部分的分辨率高,跟人耳的听觉特性是相符的,这也是梅尔刻度的物理意义所在。

(2)倒谱分析
倒谱的含义是:对时域信号做傅里叶变换,然后取log,然后再进行反傅里叶变换。可以分为复倒谱、实倒谱和功率倒谱。
这里用的是功率倒谱。

(3)MFCC特征提取具体流程

在这里插入图片描述
①预加重:
预加重处理其实是将声音信号通过一个高通滤波器:
在这里插入图片描述
上式中的μ值介于0.9-1.0之间,我们通常取0.97。

预加重的目的是提升高频部分,使信号的频谱变得平坦,保持在低频到高频的整个频带中,能用同样的信噪比求频谱。

同时,也是为了消除发生过程中声带和嘴唇的效应,来补偿语音信号受到发音系统所抑制的高频部分,也为了突出高频的共振峰。

②分帧
在预加重之后,我们需要将信号分成短时帧。

因此在大多数情况下,语音信号是非平稳的,对整个信号进行傅里叶变换是没有意义的,因为我们会随着时间的推移丢失信号的频率轮廓。

语音信号是短时平稳信号。

因此我们在短时帧上进行傅里叶变换,通过连接相邻帧来获得信号频率轮廓的良好近似。

一般采用25毫秒=0.025s。

假设采样频率为8kHz,帧长度为0.025 * 8000 = 200个采样点,帧移为0.01 * 8000 = 80个采样点。

为了避免相邻两帧的变化过大,因此会让两相邻帧之间有一段重叠区域,此重叠区域包含了120个取样点,通常约为每帧语音的1/2或1/3。

第一个语音帧0开始,下一个语音帧从80开始,直到到达语音文件的末尾。如果语音文件没有划分为偶数个帧,则用零填充它以使其完成。

③加窗
将信号分帧后,我们将每一帧代入窗函数,窗外的值设定为0,其目的是消除各个帧两端可能会造成的信号不连续性(即谱泄露 spectral leakage)。

常用的窗函数有方窗、汉明窗和汉宁窗等,根据窗函数的频域特性,常采用汉明窗(hamming window):
在这里插入图片描述
对于a的取值不同,将会产生不同的汉明窗,一般情况下, a = 0.46。

④傅里叶变换(FFT)
由于信号在时域上的变换通常很难看出信号的特性,所以通常将它转换为频域上的能量分布来观察,不同的能量分布,就能代表不同语音的特性。

对分帧加窗后的各帧信号进行做一个N点FFT来计算频谱,也称为短时傅立叶变换(STFT),其中N通常为256或512,

对于加窗后的矩阵,那么我们接下来就要对每一帧都要进行N=512的FFT快速傅里叶变换,得到一个大小对每一帧的512个数据点分别取模再取平方,然后除以512;便得到能量谱密度E。

⑤梅尔滤波器
将能量谱通过一组Mel尺度的三角形滤波器组,定义一个有M个滤波器的滤波器组(滤波器的个数和临界带的个数相近),采用的滤波器为三角滤波器,中心频率为 。M通常取22-26。各f(m)之间的间隔随着m值的减小而缩小,随着m值的增大而增宽,如图所示:
在这里插入图片描述
三角滤波器的频率响应定义为:
在这里插入图片描述
三角带通滤波器有两个主要目的:

对频谱进行平滑化,并消除谐波的作用,突显原先语音的共振峰。(因此一段语音的音调或音高,是不会呈现在MFCC 参数内,换句话说,以MFCC 为特征的语音辨识系统,并不会受到输入语音的音调不同而有所影响)此外,还可以降低运算量。

⑥对数运算
计算每个滤波器组输出的对数能量为 :
在这里插入图片描述
⑦DCT
经离散余弦变换(DCT)得到MFCC系数 :
在这里插入图片描述
将上述的对数能量带入离散余弦变换,求出L阶的Mel参数。L阶指MFCC系数阶数,通常取12-16。这里M是三角滤波器个数。

(4)代码实现

未完待续

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值