MFCC(Mel Frequency Cepstral Coefficient)提取過程詳解

MFCCs是一個在語音識別和說話者識別領(lǐng)域被廣泛運(yùn)用的特征,由Davis和Mermelstein在1980年提出,可以說從那以后,MFCCs就一直占據(jù)這聲音特征方面的state-of-the-art。這篇文章主要介紹MFCCs的提取過程以及為什么MFCCs對聲音特征的表達(dá)會這么好。

圖(1) ?一段采樣頻率為44.1kHz,長度為30s的聲音

我們通過以下7步得到MFCC特征:

1、首先,對波形圖分幀。通常我們?nèi)?0-40m為一幀的寬度,例如我們?nèi)?0ms位一幀的寬度,對于一個44.1kHz采樣的信號,一幀就包含0.040*44100=1764個采樣點(diǎn),幀移通常去幀寬的二分之一,也就是20ms,這樣就允許沒兩幀之間有一半的overlap。這樣一來,第一幀就是從第一個采樣點(diǎn)到第1764個采樣點(diǎn),第二幀就是從第882個采樣點(diǎn)到第2646個采樣點(diǎn)...直到最后一個采樣點(diǎn),如果音頻長度不能被幀數(shù)整除,在最后補(bǔ)0 。對于一個30s的音頻文件,可以得到44100*30 / 882 = 1500幀。

2、對每一幀進(jìn)行加窗。加窗的目的是平滑信號,使用漢明窗加以平滑的話,相比于矩形窗函數(shù),會減弱FFT以后旁瓣大小以及頻譜泄露。

例如使用漢明窗(hamming window)對信號進(jìn)行加窗處理:

式(1) hamming window
圖2

從上面的例子可以看出來,如果不進(jìn)行加窗,那么某一幀的結(jié)束值和下一幀的開始值會有一個gap(因?yàn)橛衞verlap),在頻譜圖上來看,峰值會變得比較“寬”,而加過hamming window的幀在頻譜圖上的峰值就會變得更加sharp也更容易辨認(rèn)。設(shè)加窗函數(shù)為h(n)。

3、對每一幀進(jìn)行離散傅里葉變化(DFT):

式(2), DFT指數(shù)形式

其中s(n)為波形信號,S(n)為幅度譜。

因?yàn)橛?/p>

式(3) 歐拉公式

設(shè)

即式(2)的另一種形式為:

所以其實(shí)DFT變換就是兩個“相關(guān)(correlation)”操作,一個是與頻率為k的cos序列相關(guān),一個是與頻率為k的sin序列相關(guān),然后兩者疊加就是與頻率k的正弦波相關(guān)的結(jié)果,如果得到的值很大,就表明信號包含頻率為k的能量很大。

4、計算功率譜:

例如,我們從一個1764個點(diǎn)的FFT計算得到功率譜以后,只保留前1764/2+1=883個系數(shù)。

5、計算Mel-spaced filterbank。

頻率和mel頻率之間的轉(zhuǎn)化公式為:

頻率和mel頻率之間的轉(zhuǎn)化公式

mel濾波器組是一組非線性分布的濾波器組,它在低頻部分分布密集,高頻部分分布稀疏,這樣的分布是為了更好得滿足人耳聽覺特性。

圖3. mel filters

將這樣一組三角濾波器(例如128個)作用到一幀上,就將一個883維的向量轉(zhuǎn)化為128維的向量。

圖3

6、對上述128維的mel功率譜取log,得到128維的 log-mel filer bank energies。這樣做的原因是由于人耳對聲音的感知并不是線性的,用log這種非線性關(guān)系更好描述,另外,取完log以后才可以進(jìn)行倒譜分析。

7、離散余弦變換。對上述128維的向量進(jìn)行DCT,DCT和DFT類似,但是只使用實(shí)數(shù),不涉及復(fù)數(shù)運(yùn)算。

其中

引入ai是為了使ci正交化。將ci表示為矩陣形式:

DCT矩陣形式

這樣得到的C(n)矩陣中,較大的值都集中再靠近左上角的低能量部分,其余部分會產(chǎn)生大量的0或者接近0的數(shù),這樣,我們可以進(jìn)行進(jìn)一步數(shù)據(jù)壓縮。這也表明DCT有很好的能量聚集效應(yīng)。相比于傅里葉變換(FFT),離散余弦變換的結(jié)果沒有虛部,更好計算(DCT也可以理解為沒有虛部的FFT)。利于對于ASR任務(wù),通常取低13維的系數(shù)。

這樣我們就得到了13banks 的MFCC。

差分:

由于語音信號是時域連續(xù)的,分幀提取的特征信息只反應(yīng)了本幀語音的特性,為了使特征更能體現(xiàn)時域連續(xù)性,可以在特征維度增加前后幀信息的維度。常用的是一階差分和二階差分。

實(shí)際計算中則更為簡單,例如用python的librosa庫實(shí)現(xiàn):

a = [1 2 3 4 5 1 3 5 7]

b = liborsa.feature.delta(a, width=3)

b= [ 0.5? 1.? 1.? 1.? -1.5 -1.? 2.? 2.? 1. ]

例如對于a中的第一個5,b中對應(yīng)的值是前后兩個值的差值除以(寬度-1): (1-4)/2

二階差分則是對delta再做一次差分運(yùn)算。


圖4. 20-banks MFCC,圖1中波形圖對應(yīng)的MFCC


圖5. delta (width = 9)


圖6. delta-delta(accelerate)


參考資料:

http://www.speech.cs.cmu.edu/15-492/slides/03_mfcc.pdf

http://practicalcryptography.com/miscellaneous/machine-learning/guide-mel-frequency-cepstral-coefficients-mfccs/

http://mirlab.org/jang/books/audioSignalProcessing/speechFeatureMfcc.asp?title=12-2%20MFCC

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,563評論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,694評論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,672評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,965評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,690評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 56,019評論 1 329
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,013評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,188評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,718評論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,438評論 3 360
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,667評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,149評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,845評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,252評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,590評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,384評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,635評論 2 380

推薦閱讀更多精彩內(nèi)容

  • reference 《spoken language processing》 1 語音基礎(chǔ) 名詞解釋 pitch ...
    藝術(shù)叔閱讀 16,763評論 2 48
  • MFCC:Mel頻率倒譜系數(shù)的縮寫。Mel頻率是基于人耳聽覺特性提出來的,它與Hz頻率成非線性對應(yīng)關(guān)系。Mel頻率...
    喜歡看做飯閱讀 2,965評論 0 1
  • 一、傅立葉變換的由來 關(guān)于傅立葉變換,無論是書本還是在網(wǎng)上可以很容易找到關(guān)于傅立葉變換的描述,但是大都是些故弄玄虛...
    constant007閱讀 4,469評論 1 10
  • 前言 說到視頻,大家自己腦子里基本都會想起電影、電視劇、在線視頻等等,也會想起一些視頻格式 AVI、MP4、RMV...
    ForestSen閱讀 23,162評論 10 203
  • 【幼兒說】原創(chuàng),轉(zhuǎn)載請標(biāo)出處 下面這個情景,大家可能經(jīng)常遇到: 清晨,一個小男孩從睡夢中醒來,他快樂地看了看窗外的...
    幼兒說閱讀 337評論 0 0