赞
踩
梅尔倒谱系数(MFCC)做为语音信号处理中的常见特征之一,在各个语音任务中都取得了不错的效果,本文将讲解一下MFCC特征的通用的提取过程。与大家一起探讨一下~
预设连续语音为
预加重的目的是为了去除口唇辐射的影响,增加语音的高频分辨率,其具体实现可以用差分方程实现:
为了保证输入信号是平稳的,我们需要将语音分成一小段(帧),也就是分帧。帧数为
numframes
对连续语音
加窗是为了解决由于信号的非周期截断,导致频谱在整个频带内发生了拖尾现象的泄漏问题,可以使得使全局更加连续,避免出现吉布斯效应。窗函数一般为“汉明”窗、‘’‘汉宁’窗、矩形窗。
加窗相当于把每一语音帧里面的抽样点与窗函数中对应元素的相乘。设每一帧为
- for i in range(frame_len):
- x[i] = x[i]*w[i]
离散傅里叶变化的公式如下:
为满足FFT“分治”的策略,我们需要对帧长
假设采样频率是,则,所以事实上把的式子里面的用替换。很明显,在特定的点的频率分量的频率为,从而得出代表的是频率为的频率“分量”
因为傅里叶变化固有的性质:实数信号变换的结果
MFCC的分析着眼于人耳的听觉特征,人耳所听到的声音高低与声音的频率并不成线性正比关系,而用Mel频率尺度更符合人耳的听觉特性。Mel频率与实际频率的具体关系为如下:
其实现过程如下:
4.根据语音信号的功率谱
注意上述式子的采样点“k”与实际频率f的对应关系为:
语音信号的倒谱分析就是求信号倒谱特征参数的过程,可以通过同态处理来处理。同态处理实现了卷积关系变化为求和关系的分离操作。
上图是一个语音的频率图,其中红色细线为频谱的包络(Spectral Envelope),包络携带声音的辨识属性,特别重要,因此我们需要把它提取出来。为了将其提取出来,我可以使用同态处理的方法:
MFCC只是描述了一帧语音上的谱包络,但是语音信号似乎有一些动态上的信息,因此就引入了一阶差分(deltas)和二阶差分(deltas-deltas),其计算公式如下:
其中t表示第几帧,N通常取2,c指的就是MFCC中的某个系数。deltas-deltas就是在deltas上再计算以此deltas。
《语音信号处理》赵力著
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。