一、mfcc概述
在語音識別(speech recognition)和話者識別(speaker recognition)方面,最常用到的語音特徵就是梅爾倒譜係數(mel-scale frequency cepstral coefficients,簡稱mfcc)。根據人耳聽覺機理的研究發現,人耳對不同頻率的聲波有不同的聽覺敏感度。從200hz到5000hz的語音頻號對語音的清晰度影響對大。兩個響度不等的聲音作用於人耳時,則響度較高的頻率成分的存在會影響到對響度較低的頻率成分的感受,使其變得不易察覺,這種現象稱為掩蔽效應。由於頻率較低的聲音在內耳蝸基底膜上行波傳遞的距離大於頻率較高的聲音,故一般來說,低音容易掩蔽高音,而高音掩蔽低音較困難。在低頻處的聲音掩蔽的臨界頻寬較高頻要小。所以,人們從低頻到高頻這一段頻帶內按臨界頻寬的大小由密到疏安排一組帶通濾波器,對輸入訊號進行濾波。將每個帶通濾波器輸出的訊號能量作為訊號的基本特徵,對此特徵經過進一步處理後就可以作為語音的輸入特徵。由於這種特徵不依賴於訊號的性質,對輸入訊號不做任何的假設和限制,又利用了聽覺模型的研究成果。因此,這種引數比基於聲道模型的lpcc相比具有更好的魯邦性,更符合人耳的聽覺特性,而且當訊雜比降低時仍然具有較好的識別效能。
梅爾倒譜係數(mel-scale frequency cepstral coefficients,簡稱mfcc)是在mel標度頻率域提取出來的倒譜引數,mel標度描述了人耳頻率的非線性特性,它與頻率的關係可用下式近似表示:
式中f為頻率,單位為hz。下圖展示了mel頻率與線性頻率的關係:
圖1 mel頻率與線性頻率的關係
二、語音特徵引數mfcc提取過程
基本步驟:
圖2 mfcc引數提取基本流程
1.預加重
預加重處理其實是將語音頻號通過乙個高通濾波器:
式中μ的值介於0.9-1.0之間,我們通常取0.97。預加重的目的是提公升高頻部分,使訊號的頻譜變得平坦,保持在低頻到高頻的整個頻帶中,能用同樣的訊雜比求頻譜。同時,也是為了消除發生過程中聲帶和嘴唇的效應,來補償語音頻號受到發音系統所抑制的高頻部分,也為了突出高頻的共振峰。
2.分幀
先將n個取樣點集合成乙個觀測單位,稱為幀。通常情況下n的值為256或512,涵蓋的時間約為20~30ms左右。為了避免相鄰兩幀的變化過大,因此會讓兩相鄰幀之間有一段重疊區域,此重疊區域包含了m個取樣點,通常m的值約為n的1/2或1/3。通常語音識別所採用語音頻號的取樣頻率為8khz或16khz,以8khz來說,若幀長度為256個取樣點,則對應的時間長度是256/8000×1000=32ms。
3.加窗(hamming window)
將每一幀乘以漢明窗,以增加幀左端和右端的連續性。假設分幀後的訊號為s(n), n=0,1…,n-1, n為幀的大小,那麼乘上漢明窗後
不同的a值會產生不同的漢明窗,一般情況下a取0.46
4.快速傅利葉變換
由於訊號在時域上的變換通常很難看出訊號的特性,所以通常將它轉換為頻域上的能量分布來觀察,不同的能量分布,就能代表不同語音的特性。所以在乘上漢明窗後,每幀還必須再經過快速傅利葉變換以得到在頻譜上的能量分布。對分幀加窗後的各幀訊號進行快速傅利葉變換得到各幀的頻譜。並對語音頻號的頻譜取模平方得到語音頻號的功率譜。設語音頻號的dft為:
式中x(n)為輸入的語音頻號,n表示傅利葉變換的點數。 5.
三角帶通濾波器
將能量譜通過一組mel尺度的三角形濾波器組,定義乙個有m個濾波器的濾波器組(濾波器的個數和臨界 帶的個數相近),採用的濾波器為三角濾波器,中心頻率為f(m),m=1,2,...,m。m通常取22-26。各 f(m)之間的間隔隨著m值的減小而縮小,隨著m值的增大而增寬,如圖所示:
圖3 mel頻率濾波器組
三角濾波器的頻率響應定義為:
式中三角帶通濾波器有兩個主要目的:
對頻譜進行平滑化,並消除諧波的作用,突顯原先語音的共振峰。(因此一段語音的音調或音高,是不會呈現在 mfcc 引數內,換句話說,以 mfcc 為特徵的語音辨識系統,並不會受到輸入語音的音調不同而有所影響) 此外,還可以降低運算量。
6.計算每個濾波器組輸出的對數能量為:
經離散余弦變換(dct)得到mfcc係數:
將上述的對數能量帶入離散余弦變換,求出l階的mel-scale cepstrum引數。l階指mfcc係數階數,通常取12-16。這裡m是三角濾波器個數。
8.對數能量
此外,一幀的音量(即能量),也是語音的重要特徵,而且非常容易計算。因此,通常再加上一幀的對數能量(定義:一幀內訊號的平方和,再取以10為底的對數值,再乘以10)使得每一幀基本的語音特徵就多了一維,包括乙個對數能量和剩下的倒頻譜引數。
注:若要加入其它語音特徵以測試識別率,也可以在此階段加入,這些常用的其它語音特徵包含音高、過零率以及共振峰等。
9.動態差分引數的提取(包括一階差分和二階差分)
標準的倒譜引數mfcc只反映了語音引數的靜態特性,語音的動態特性可以用這些靜態特徵的差分譜來描述。實驗證明:把動、靜態特徵結合起來才能有效提高系統的識別效能。差分引數的計算可以採用下面的公式:
式中,dt表示第t個一階差分,ct表示第t個倒譜係數,q表示倒譜係數的階數,k表示一階導數的時間差,可取1或2。將上式的結果再代入就可以得到二階差分的引數。
總結:
因此,mfcc的全部組成其實是由:
n維mfcc引數(n/3 mfcc係數+ n/3 一階差分引數+ n/3 二階差分引數)+幀能量(此項可根據需求替換)
MFCC(語音特徵引數)
一 mfcc計算總體流程 1.訊號的預處理,包括預加重 preemphasis 分幀 frame blocking 加窗 windowing 假設語音頻號的取樣頻率fs 8khz.由於語音頻號在10 30ms認為是穩定的,則可設定幀長為80 240點。幀移可以設定為幀長的1 2.2.對每一幀進行ff...
語音特徵引數MFCC計算過程
語音頻號為從聲道輸入的速度波 輸入訊號 與聲道形狀 系統 卷積得到的聲壓波。語音頻號的特徵引數的提取正是對語音頻號進行時域和頻域的處理分離出聲道形狀 系統 的過程。聲道形狀 系統 也正是無論任何語音頻號,只要每個字母或數字相同 它的發音就相同 它就在一定程度上相同的特徵參量 頻域共振峰 的頂點 的包...
語音特徵引數MFCC計算的詳細過程
注 老早之前就在看語音頻號處理方面的知識,每當過了很久都會忘記,由於之前對語音特徵mfcc提取的流程還是非常清楚的,但是對於一些細節以及一些原理一些的東西還是不是很明白,通過這次的總結,我終於明白的其中的技術細節以及設計方法,包括濾波器的設計,以及引數的具體意義,希望這個總結能給自己增加更多的印象,...