MFCC梅尔倒谱系数是说话人识别、语音识别中最为常用的特征。我曾经对这个特征困惑了很久,包括为什么步骤中要取对数,为什么要最后一步要做DCT等等,以下将把我的理解记录下来,我找到的参考文献中最有价值的要数【1】了。是CUM一个教授做的PPT。
整个流程如下:
时域的波形图如下
图1. 时域波形图
第一步
获得语谱图,语谱图是一个非常有力的工具,因为人耳就是进行的频率分析。
图2. 语谱图
第二步
经过梅尔滤波器组。为什么要经过梅尔滤波器组?答:上面的图需要降维。根据生理学的发现,上面的语谱图实际上可以用经过一系列的梅尔滤波器组来进行降维。
图3. 梅尔滤波器组
滤波后的图像如下,假如一共有24个滤波器组,那么在下图在纵向上就降成了24维。
图4. 经过梅尔滤波器组后的频谱图
第三步
取对数。为什么要取对数?解答如下。
人类的发声系统发出的信号是由基音信息与声道信息卷积而成。记作"s卷积v"
经过语谱图FFT变换后,卷积变成了乘法。即"FFT(s)*FFT(v)"。
取对数后,乘法变成了加法。即"Log(FFT(s))+Log(FFT(v))"
把卷积信号转换成加性信号,这就是取FFT和对数的原因。
图5. 取对数后
第四步
DCT(离散余弦变换)
在上一步中,我们成功地把基音信息与声道信息变成了加性的。那么如何分离呢?它们有如下性质:
频谱图中(注意是一帧FFT变换内)
(1)基音信息在频域是快速变化的。
(2)声道信息在频域是缓慢变化的。
因此再做一次DCT可以将其分离。我们称之为"倒谱域"。因此倒谱域的低频部分刻画了声道信息,高频部分刻画了基音信息。为什么是DCT而不是FFT?因为DCT变换之后的值仍为实数,因此更方便。
图6. DCT变换后
第五步
对DCT变换后的谱图进行降维。
(1)去掉第0维,因为第0维只是图5的均值,并不包含任何信息。
(2)去掉13-24维,因为DCT本身就是用来去相关的,而图5没有太高频的成分,因此可以去掉。
图7. 降维后的MFCC谱图
图7就是最终的MFCC特征了!
小结
1. MFCC特征适用于说话人分类、语音识别,并且已经有了较好的识别结果。
2. 虽然MFCC是个不错的特征,但是同时也丢掉了很多细节(图2至图4的过程),因此并不是非常完美。
参考资料
【1】http://download.csdn.net/detail/richard2357/6664585 (CMU的PPT,写的非常详细,我看过这个之后才真正理解)
---------------------
作者:richard2357
来源:CSDN
原文:https://blog.csdn.net/richard2357/article/details/17147249
版权声明:本文为博主原创文章,转载请附上博文链接!