MFCC语音特征提取总结

MFCC特征

MFCC(Mel倒谱系数)符合人类听觉原理,能够有效的提取语音声学特征,适合作为语音特征输入。本文学习了以下2篇博客——博客1 博客2,并做了自己的总结
MFCC的提取流程如下图所示:
在这里插入图片描述

预加重

令输入语音信号 s i g n a l = [ s 1 , s 2 , . . . , s T ] signal=[s_1,s_2,...,s_T] signal=[s1,s2,...,sT],其中T为信号采样频率。预加重可以去除口唇辐射的影响,增加语音的高频分辨率,其实现方式如下:
s i g n a l i = s i g n a l i + 1 − α s i g n a l i signal_i=signal_{i+1}-\alpha signal_i signali=signali+1αsignali
其中 α \alpha α为预加重系数,一般取0.97。

分帧

为了保证输入信号的平衡,采用分帧的方式将语音分成多段,其实现方式如下:
n u m f r a m e s = 1 + c e i l ( ( T − f r a m e _ l e n g t h ) / f r a m e _ s t e p ) numframes=1+ceil((T-frame\_length)/frame\_step) numframes=1+ceil((Tframe_length)/frame_step)
其中frame_length为帧长,frame_step为相邻帧的平移距离,对不足一帧长的信号进行补0处理。

加窗

X = [ x 1 , x 2 , … , x n u m f r a m e s ] X=[x_1,x_2,…,x_{numframes}] X=[x1,x2,,xnumframes]为得到的numframes个帧。采用加窗的方式,避免信号因非周期截断导致的频谱泄露问题:
x i = x i ∗ ω i x_i=x_i*ω_i xi=xiωi
其中ω_i为汉宁窗或汉明窗。

离散傅里叶变换

通常信号在时域上的变换很难看出信号的特性,因此采用快速傅里叶变换得到各帧的频谱:
F i , k = ∑ n = 0 N − 1 x i , n e − j ( 2 π / N ) k n , ( 0 ≤ k ≤ N − 1 ) , F_{i,k}=∑_{n=0}^{N-1}x_{i,n}e^{-j(2π/N)kn},(0≤k≤N-1), Fi,k=n=0N1xi,nej(2π/N)kn,(0kN1),
其中 F i , k F_{i,k} Fi,k代表第i帧第k个点的频率, x i , n x_{i,n} xi,n为第i帧第n个点。

梅尔滤波器

通常人耳所听到的声音高低与声音的频率不成线性正比关系,而Mel频率尺度更符合人耳的听觉特性,因此采用Mel滤波器进行处理,Mel频率与实际频率的转换公式如下:
M e l ( f ) = 2595 ∗ l o g 10 ( 1 + f / 700 ) Mel(f)=2595*log_{10} (1+f/700) Mel(f)=2595log10(1+f/700)
采用上述公式将音频的频率范围转换为梅尔频率的频率范围,并均匀等分为L份,即L个梅尔滤波器,Mel滤波器为三角形状,等分后的梅尔频率为梅尔滤波器的中心频率,令 o l o_l ol, c l c_l cl, h l h_l hl分别为梅尔滤波器的下限频率,中心频率和上限频率,可以得到如下关系:
c l = h l − 1 = o l + 1 c_l=h_{l-1}=o_{l+1} cl=hl1=ol+1
即梅尔滤波器的中心频率等于上一个梅尔滤波器的上限频率,也等于下一个梅尔滤波器的下限频率。三角形梅尔滤波器的公式可表示为:
W l ( k ) = { k − o l c l − o l , o l ≤ k ≤ c l h l − k h l − c l , c l ≤ k ≤ h l W_l(k) = \begin{cases} \frac{k-o_l}{c_l-o_l}, o_l\leq k \leq c_l\\ \frac{h_l-k}{h_l-c_l}, c_l \leq k \leq h_l \end{cases} Wl(k)={clolkol,olkclhlclhlk,clkhl
梅尔滤波器的最终输出可以表示为:
m l = ∑ k = o l h l W l ( k ) ∣ F k ∣ 2 , l ∈ [ 1 , 2 , . . . , L ] m_l=∑_{k=o_l}^{h_l}W_l (k) |F_k|^2,\quad l\in[1,2,...,L] ml=k=olhlWl(k)Fk2,l[1,2,...,L]

离散余弦变换

对梅尔滤波器的输出进行离散余弦变换(DCT)得到最终的梅尔倒谱系数:
c i = 2 L ∑ j = 1 L m j c o s ⁡ ( π i L ∗ ( j − 0.5 ) ) , i ∈ [ 1 , 2 , . . . , I ] c_i=\sqrt{\frac{2}{L}} \sum_{j=1}^Lm_jcos⁡(\frac{\pi i}{L}*(j-0.5)),\quad i\in [1,2,...,I] ci=L2 j=1Lmjcos(Lπi(j0.5)),i[1,2,...,I]
其中i为倒谱系数个数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值