在聲音處理領域中,梅爾頻率倒譜(Mel-Frequency Cepstrum)是基於聲音頻率的非線性梅爾刻度(mel scale)的對數能量頻譜的線性變換。
梅爾頻率倒譜系數 (Mel-Frequency Cepstral Coefficients,MFCCs)就是組成梅爾頻率倒譜的係數。它衍生自音訊片段的倒頻譜(cepstrum)。倒譜和梅爾頻率倒譜的區別在於,梅爾頻率倒譜的頻帶劃分是在梅爾刻度上等距劃分的,它比用於正常的對數倒頻譜中的線性間隔的頻帶更能近似人類的聽覺系統。
這樣的非線性表示,可以在多個領域中使聲音信號有更好的表示。例如在音訊壓縮中。
梅爾頻率倒譜係數(MFCC)廣泛被應用於語音識別的功能。他們由Davis和Mermelstein在1980年代提出,並在其後持續是最先進的技術之一。在MFCC之前,線性預測係數(LPCS)和線性預測倒譜系數(LPCCs)是自動語音識別的的主流方法。
MFCC通常有以下之過程:
將一段語音信號分解為多個訊框。
將語音信號預強化,通過一個高通濾波器。
進行傅立叶变换,將信號轉換至頻域。
將每個訊框獲得的频譜通過梅爾濾波器(三角重叠窗口),得到梅爾刻度。
在每个梅爾刻度上提取對數能量。
对上面获得的结果进行離散餘弦轉換,轉換到倒頻譜域。
MFCC就是這個倒频谱图的幅度(amplitudes)。一般使用12個係數,與訊框能量疊加得13維的係數。
MFCC的原理
聲音信號是連續變化的,為了將連續變化信號簡化,我們假設在一個短時間尺度內,音頻信號不發生改變。因此將信號以多個取樣點集合成一個單位,稱為訊框。一個訊框多為20-40毫秒,如果訊框長度更短,那每個訊框內的取樣點將不足以做出可靠的頻譜計算,但若長度太長,則每個訊框信號會變化太大。
預強化的目的就是為了消除發聲過程中,聲帶和嘴唇造成的效應,來補償語音信號受到發音系統所壓抑的高頻部分。並且能突顯高頻的共振峰。
由於訊號在時域上的變化通常很難看出訊號的特性,所以通常透過傅立葉轉換將它轉換成頻域上的能量分佈來觀察,不同的能量分佈,就能代表不同語音的特性。
由於能量頻譜中還存在大量的無用訊息,尤其人耳無法分辨高頻的頻率變化,因此讓頻譜通過梅爾濾波器。
梅爾濾波器,也就是一組20個非線性分布的三角帶通濾波器(Triangular Bandpass Filters),能求得每一個濾波器輸出的對數能量。必須注意的是:這 20 個三角帶通濾波器在梅爾刻度的頻率上是平均分佈的。
梅爾頻率代表一般人耳對於頻率的感受度,由此也可以看出人耳對於頻率 f 的感受是呈對數變化的。
http://i.stack.imgur.com/YUH48.gif
最後的步驟是計算對數濾波器的能量的離散傅立葉反變換,在此相當於離散餘弦反變換(IDCT)。值得注意的是,雖然通常的會有24-26個係數,但我們只保留前12個係數。這是因為丟棄高倒頻域值的DCT係數,代表一個類似低通濾波器的概念,可以使信號平滑化,能增進語音處理的性能。
在此过程中可以有很多变化,例如,映射时的窗口的形状和间距。 The 欧洲电信标准协会在2000年初定义了一个可以用在移动电话上的标准MFCC算法.
參考
詳細推導
1.對該信號做傅立葉變換
X[k]=FT{x[n]}
2.根據下面公式算出Y[m]
Y[m]=\log \left( \sum_{k=f_{m-1}}^{f_{m+1}} \left| X[k] \right|^2 B_m[k] \right)
其中B_m[k]是梅爾頻率倒頻譜的遮罩
B_m[k]= \begin{cases} 0 & \mbox{for } kf_{m+1}\\
\cfrac {k-f_{m-1}}{f_m-f_{m-1}} & \mbox{for } f_{m-1} \leq k \leq f_m \\
\cfrac {f_{m+1}-k}{f_{m+1}-f_m} & \mbox{for } f_m \leq k \leq f_{m+1} \end{cases}
3.對Y[m]做IDCT得c_x[n]
因為Y[m]是偶函數,故用IDCT(反離散餘弦變換)取代IDFT(反離散傅立葉變換)
c_x[n]= \frac{1}{M} \sum_{m=1}^{M} Y[m]cos \left( \cfrac{\pi n(m-1/2)}{M} \right)
與原倒頻譜的差異
一.log裡面因為使用了sum,故等於0的機率變小
二.避免了相位的問題
三.使用IDCT取代IDFT,減少了運算量
四.B_m[k]隨著頻率的增加而增寬,該特性符合人類聽覺,更適合用來描述語音特徵
应用
MFCC主要作为语音识别系统中的特征,这样的系统可以自动识别语音中的数字内容。MFCC同样也用于,该技术尝试通过语音该鉴别说话人。
MFCC也被用于领域,如流派分类(genre classification)、音频相似性计算等。
比起倒頻譜,梅爾倒頻譜更接近人耳對於語音的區別性(因為遮罩B[k])
用c_x[1],c_x[2],...,c_x[13],MFCCs的前13項足以描述語音特徵
噪声的敏感性
MFCC特征在加性噪声的情况下并不稳定,因此在语音识别系统中通常要对其进行归一化处理(normalise)以降低噪声的影响。一些研究人员对MFCC算法进行修改以提升其強健性,如在进行DCT之前将log-mel-amplitudes提升到一个合适的能量(2到3之间),以此来降低低能量成分的影响.
参考文献
外部链接
*[http://www.practicalcryptography.com/miscellaneous/machine-learning/guide-mel-frequency-cepstral-coefficients-mfccs/ A tutorial on MFCCs for Automatic Speech Recognition]
评论 (0)