2.使用三角形重疊窗口,繪制Mel範圍內支持的光譜功率。這壹步做的是將頻譜與下圖中的每個三角形相乘並積分,找出每個三角形下頻譜的能量。此步驟具有以下效果:
1)傅裏葉變換得到的序列很長(壹般是幾百到幾千個點),將其轉化為每個三角形(壹般是40個三角形)下的能量可以減少數據量;
2)頻譜有包絡和精細結構,分別對應音色和音高。對於語音識別來說,音色是主要的有用信息,音高壹般沒什麽用。通過在每個三角形中積分,可以剔除精細結構,只保留音色信息。當然,對於聲調語言,音高也是有用的,所以除了MFCC特征,其他特征也會用來描述音高。
3)三角形低頻密集,高頻稀疏,可以模仿人耳在低頻下的高分辨率。
3.取每個Mel頻率的功率對數。這壹步是取上壹步結果的對數。簡單來說就是縱軸的縮放,可以放大低能時的能量差;更深層次來說,這是在模仿倒譜的計算步驟。倒譜是另壹個話題,這裏不討論。
4.對Mel對數冪列表進行離散余弦變換,就像它是壹個信號壹樣。在這壹步尋找倒譜時仍然使用傅立葉變換。用於計算MFCC的離散余弦變換(DCT)是傅立葉變換的變體,其優點是結果是沒有虛部的實數。DCT的另壹個特點是,對於壹般的語音信號,這壹步結果的前幾個系數特別大,後面的系數比較小,可以忽略。據說壹般取40個三角形,所以DCT的結果也是40個點;實際中壹般只保留前12~20,進壹步壓縮了數據。上述整個過程的結果是,壹幀語音信號被簡單地表示為壹個12~20維向量;整個語音信號被表示為壹系列這樣的向量。語音識別中要做的下壹件事是對這些向量及其序列進行建模。