MFCC

Posted 血影雪梦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFCC相关的知识,希望对你有一定的参考价值。

本总结是是个人为防止遗忘而作,不得转载和商用。

         MFCC的分析着眼于人儿的听觉特征,因为人耳所听到的声音的高低与声音的频率不成线性正比关系,而用Mel频率尺度则更符合人耳的听觉特征。

         Mel频率尺度:它的值大体上对应于实际频率的对数分布关系,Mel频率与实际频率的具体关系如下:

                   Mel(f)= 2595lg(1 + f/700),f的单位是Hz。

         临界频率带宽随着频率的变化而变化,并与Mel频率的增长一致,在1000Hz下大致呈线性分布,带宽为100Hz左右;在1000Hz以上成对数增长。

         类似于临界频带的划分,可以将语音频率划分为一系列三角形的滤波器序列,即Mel滤波器组,如下图:

                 

         取每个三角形的滤波器频率带宽内所有信号幅度加权和作为某个带通滤波器的输出,然后对所有滤波器输出做对数运算,再进一步做离散余弦变换(DCT)即得到MFCC。

         MFCC参数的计算过程的具体步骤如下:

                   1,根据式Mel(f) =2595lg(1 + f/700),将实际频率尺度转换为Mel频率尺度。

                   2,在Mel频率轴上配置L个通道的三角形滤波器组,L的个数由信号的截止频率决定。每个三角形滤波器的中心频率c(l)在Mel频率轴上等间隔分配。设o(l)、c(l)、h(l)分别是第l个三角形滤波器的下线、中心和上线频率,则相邻三角形滤波器之间的下限、中心和上线频率有如下图所示

                  

                            的该关系:c(l) = h(l-1) =o(l+1)

                   3,根据语音信号幅度谱|Xn(k)|求每个三角形滤波器的输出:

                            

                   4,对所有滤波器输出做对数运算,再进一步做离散余弦变换(DCT)即可得到MFCC:

                            

         PS1:MEL滤波器组也可以其他形状,如正弦形的滤波组等等。

         PS2:MEL倒谱提取过程中要进行FFT运算,不过需要注意:若FFT的点数选取过大,则运算复杂度会增大,系统响应时间会变慢,无法满足实时性;反之,可能造成频率分辨率过低,使得提取的参数误差过大。

以上是关于MFCC的主要内容,如果未能解决你的问题,请参考以下文章

整首歌的 mfcc 与为同一首歌的片段计算的 mfcc 不同

了解 mfcc 的输出

Librosa MFCC 特征提取

如何合并 MFCC

如何在 Python 中绘制 MFCC?

浅谈MFCC