Mel倒谱系数
Mel倒谱系数:MFCC
Mel频率倒谱系数(Mel Frequency Cepstrum Coefficient)的缩写是MFCC,Mel频率是基于人耳听觉特性提出来的,它与Hz频率成非线性对应关系。Mel频率倒谱系数(MFCC)则是利用它们之间的这种关系,计算得到的Hz频谱特征。
用录音设备录制一段模拟语音信号后,经由自定的取样频率(如8000 Hz、16000 Hz等)采样后转换(A/D)为数字语音信号。由于在时域(time domain)上语音信号的波形变化相当快速、不易观察,因此一般都会在频域(frequency domain)上来观察,其频谱是随着时间而缓慢变化的,因此通常可以假设在一较短时间中,其语音信号的特性是稳定的,通常我们定义这个较短时间为一帧(frame),根据人的语音的音调周期值的变化,一般取10~20ms。
Mel-frequency cepstrum coefficient
作用:和线性预测倒谱系数LPCC一起用于描述语音特征的参数:能量,基音频率,共振峰值等。
详解几个概念:
1.Mel频率:
是模拟人耳对不同频率语音的感知。
人类对不同频率语音有不同的感知能力:对1kHz以下,与频率成线性关系,对1kHz以上,与频率成对数关系。频率越高,感知能力就越差了。因此,在应用中常常只使用低频MFCC,而丢弃中高频MFCC。
在Mel频域内,人对音调的感知能力为线性关系,如果两段语音的Mel频率差两倍,则人在感知上也差两倍。 转换公式:B(f)=1125ln(1+f/700) 其中f为频率,B为Mel-频率。
2.倒谱:
同态处理的结果,分为复数和实数倒谱,常用实数倒谱,是语音识别中的重要系数。
具体过程:傅里叶变换----->对数运算----->傅里叶反变换。
语音的产生用源、滤波器模型来表示,即把声带振动看作激励源e(n),把声道看成一个滤波器h(n),两者在时域进行卷积,得到语音信号s(n)。为了更好地处理语音,则需要分析s(n)以分别得到e(n)和h(n),这个过程称为解卷过程。abs(DFT)、Log、IDFT三步为一个卷积同态信号处理系统,经过这三步之后,倒谱域上
s\'(n)=e\'(n)+h\'(n)
激励源和信道已经变成了相加的关系,这时候通过一个倒滤波器,即图中的Cepstral Liftering,就可以把激励源和信道分开了。
3.提取流程 (摘):
MFCC参数的提取包括以下几个步骤:
1. 预滤波:CODEC(所谓Codec,就是编码-解码器“Coder-Decoder”的缩写。说得通俗一点,对于音频就是A/D和D/A转换。)前端带宽为300-3400Hz(语音能量主要集中在250~4500Hz)。的抗混叠滤波器。
工程测量中采样频率不可能无限高也不需要无限高,因为一般只关心一定频率范围内的信号成份。为解决频率混叠,在对模拟信号进行离散化采集前,采用低通滤波器滤除高于1/2采样频率的频率成份。实际仪器设计中,这个低通滤波器的截止频率(fc) 为:
截止频率(fc)= 采样频率(fs) / 2.56
2. A/D变换:8kHz的采样频率,12bit的线性量化精度。
3. 预加重:通过一个一阶有限激励响应高通滤波器,使信号的频谱变得平坦,不易受到有限字长效应的影响。
许多实际的消息信号,例如语言、音乐等,它们的功率谱随频率的增加而减小,其大部分能量集中在低频范围内。这就造成消息信号高频端的信噪比可能降到不能容许的程度。但是由于消息信号中较高频率分量的能量小,很少有足以产生最大频偏的幅度,因此产生最大频偏的信号幅度多数是由信号的低频分量引起。平均来说,幅度较小的高频分量产生的频偏小得多。所以调频信号并没有充分占用给予它的带宽。因为调频系统的传输带宽是由需要传送的消息信号(调制信号)的最高有效频率和最大频偏决定的。然而,接收端输入的噪声频谱却占据了整个调频带宽。这就是说,在鉴频器输出端噪声功率谱在较高频率上已被加重了。 为了抵消这种不希望有的现象,在调频系统中人们普遍采用了一种叫做预加重和去加重措施,其中心思想是利用信号特性和噪声特性的差别来有效地对信号进行处理。即在噪声引入之前采用适当的网络(预加重网络),人为地加重(提升)发射机输入调制信号的高频分量。然后在接收机鉴频器的输出端,再进行相反的处理,即采用去加重网络把高频分量去加重,恢复原来的信号功率分布。在去加重过程中,同时也减小了噪声的高频分量,但是预加重对噪声并没有影响,因此有效地提高了输出信噪比。
4. 分帧:根据语音的短时平稳特性,语音可以以帧为单位进行处理,实验中选取的语音帧长为32ms,帧叠为16ms。
5. 加窗:采用哈明窗对一帧语音加窗,以减小吉布斯效应的影响。
吉布斯现象Gibbs phenomenon(又叫吉布斯效应): 将具有不连续点的周期函数(如矩形脉冲)进行傅立叶级数展开后,选取有限项进行合成。当选取的项数越多,在所合成的波形中出现的峰起越靠近原信号的不连续点。当选取的项数很大时,该峰起值趋于一个常数,大约等于总跳变值的9%。这种现象称为吉布斯现象。
6. 快速傅立叶变换(Fast Fourier Transformation, FFT):将时域信号变换成为信号的功率谱。
7. 三角窗滤波:用一组Mel频标上线性分布的三角窗滤波器(共24个三角窗滤波器),对信号的功率谱滤波,每一个三角窗滤波器覆盖的范围都近似于人耳的一个临界带宽,以此来模拟人耳的掩蔽效应。
8. 求对数:三角窗滤波器组的输出求取对数,可以得到近似于同态变换的结果。
9. 离散余弦变换(Discrete Cosine Transformation, DCT):去除各维信号之间的相关性,将信号映射到低维空间。
10. 谱加权:由于倒谱的低阶参数易受说话人特性、信道特性等的影响,而高阶参数的分辨能力比较低,所以需要进行谱加权,抑制其低阶和高阶参数。
11. 倒谱均值减(Cepstrum Mean Subtraction, CMS):CMS可以有效地减小语音输入信道对特征参数的影响。
12. 差分参数:大量实验表明,在语音特征中加入表征语音动态特性的差分参数,能够提高系统的识别性能。在本系统中,我们也用到了MFCC参数的一阶差分参数和二阶差分参数。
13. 短时能量:语音的短时能量也是重要的特征参数,本系统中我们采用了语音的短时归一化对数能量及其一阶差分、二阶差分参数。
总结如下:
Mel频率倒谱系数(MFCC)参数的提取步骤
(1) 预加重(pre-emphasis)
将经采样后的数字语音信号s(n)通过一个高通滤波器(high pass filter): H(z)= 1 – a×z -1 , 0.9 a 1.0 (一般取0.95左右)。经过预加重后的信号为: (n)= s(n)– a×s(n-1)。 因为发声过程中声带和嘴唇的效应,使得高频共振峰的振幅低于低频共振峰的振幅,进行预加重的目的就是为了消除声带和嘴唇的效应,来补偿语音信号的高频部分。
(2) 分帧(frame blocking)
一般取10-20ms为一帧,为了避免窗边界对信号的遗漏,因此对帧做偏移时候,要有帧迭(帧与帧之间需要重叠一部分)。一般取帧长的一半作为帧移,也就是每次位移一帧的二分之一后再取下一帧,这样可以避免帧与帧之间的特性变化太大。
(3) 计算短时能量(energy)
短时能量代表着音量的高低,亦即声音振幅的大小,可以根据此能量的值来过滤掉语音信号中的一些细微噪声。当一帧的能量值低于我们定的门槛值(threshold)时,则将此帧作为静音段(silence)。
(4) 加窗(hamming window)
语音在长范围内是不停变动的,没有固定的特性无法做处理,所以将每一帧代入窗函数,窗外的值设定为0,其目的是消除各个帧两端可能会造成的信号不连续性。常用的窗函数有方窗、汉明窗和汉宁窗等,根据窗函数的频域特性,常采用汉明窗。公式是在加窗范围内,w(n)=0.54-0.46*cos(2*pi*n/(n-1))。
(5) 快速傅立叶变换(FFT transform)
由于语音信号在时域上的变化快速而不稳定,所以通常都将它转换到频域上来观察,此时它的频谱会随着时间作缓慢的变化。所以通常将加窗后的帧经过FFT (Fast Fourier Transform)求出每帧的频谱参数。
(6) 三角形带通滤波器(triangular band-pass filter)
将每帧的频谱参数通过一组N个三角形带通滤波器(N一般为20~30个)所组成的梅尔刻度滤波器,将每个频带的输出取对数,求出每一个输出的对数能量(log energy),k = 1,2,… N。 再将此N个参数进行余弦变换(cosine transform)求出L阶的Mel-scale cepstrum参数。