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參數。