MFCC詳細步驟及解析

2021-08-07 05:23:16 字數 2330 閱讀 3647

mfcc(mel-frequency cepstral coefficients):梅爾頻率倒譜係數。梅爾頻率是基於人耳聽覺特性提出來的, 它與hz頻率成非線性對應關係。梅爾頻率倒譜係數(mfcc)則是利用它們之間的這種關係,計算得到的hz頻譜特徵。主要有 以下幾個步驟:預加重,分幀,加窗,快速傅利葉變換(fft),梅爾濾波器組,離散余弦變換(dct).

將數字語音頻號s(n)通過乙個高通濾波器(high pass filter),公式如下:y(

t)=x

(t)−

αx(t

−1)

一般 α

取值為0.95/0.97。

作用:

1)加強高頻資訊,因為一般高頻能量比低頻小

2)避免fft操作中的數值問題

3)可能增大訊雜比(signal to noise ratio)

注意的是,現代的系統可以將這步用mean normalization代替,詳細解釋,

這裡的幀(frame)代表一小段時間t的語音資料。幀由n個取樣點組成。

我們要對語音資料做傅利葉變換,將資訊從時域轉化為頻域。但是如果對整段語音做fft,就會損失時序資訊。因此,我們假設在很短的一段時間t內的頻率資訊不變,對長度為t的幀做傅利葉變換,就能得到對語音資料的頻域和時域資訊的適當表達。

幀長(t),語音資料取樣頻率(f )和幀的取樣點(n)之間的關係:t

=nf

將訊號分幀後,我們將每一幀代入窗函式,窗外的值設定為0,其目的是消除各個幀兩端可能會造成的訊號不連續性(即譜洩露 spectral leakage)。常用的窗函式有方窗、漢明窗和漢寧窗等,根據窗函式的頻域特性,常採用漢明窗(hamming window)。公式如下:w[

n]=0.54

−0.46co

s(2π

nn−1

) 視窗長度為n,0≤

n≤n−

1 , 該函式形狀如下:

對分幀加窗後的各幀訊號進行n點傅利葉變換得到各幀的頻譜。n為每幀的取樣點,通常情況下n的值為256或512。這也叫stft(short-time fourier-transform)。p=

|fft

(xi)

|2n

其中xi 是訊號x的第i個幀。

這裡需要先介紹下nyquist頻率,奈奎斯特頻率(nyquist頻率)是離散訊號系統取樣頻率的一半,因哈里·奈奎斯特(harry nyquist)或奈奎斯特-夏農取樣定理得名。取樣定理指出,只要離散系統的奈奎斯特頻率高於被取樣訊號的最高頻率或頻寬,就可以避免混疊現象。在語音系統中我通常取樣率取16khz,而人發生的頻率在300hz~3400hz之間,按照nyquist頻率的定義就有nyquist頻率等於8khz高於人發生的最高頻率,滿足nyquist頻率的限制條件。fft就是根據nyquist頻率擷取取樣率的一半來計算,具體來說就是,假設一幀有512個取樣點,傅利葉變換的點數也是512,經過fft計算後輸出的點數是257(n/2+1),其含義表示的是從0(hz)到取樣率/2(hz)的n/2+1點頻率的成分。也就是說在經過fft計算時不僅把訊號從時域轉到了頻域並且去除了高於被取樣訊號的最高頻率的點的影響,同時也降低了維度。

由於人耳對不同頻率的敏感程度不同,且成非線性關係,因此我們將頻譜按人耳敏感程度分為多個mel濾波器組,在mel刻度範圍內,各個濾波器的中心頻率是相等間隔的線性分布,但在頻率範圍不是相等間隔的,這個是由於頻率與mel頻率轉換的公式形成的,公式如下:m=

2595lo

g10(1

+f700) f

=700(10

m2595−1

) 將能量譜通過一組mel尺度的三角形濾波器組,定義乙個有m個濾波器的濾波器組(濾波器的個數和臨界帶的個數相近),採用的濾波器為三角濾波器,一般用40個濾波器,每個濾波在中心頻率的響應都是1,然後線性下降,一直到相鄰三角濾波的中心頻率處為0,如圖所示:

濾波器組得到的係數是相關性很高的,因此我們用離散余弦變換(discrete cosine transform)來去相關並且降維。一般來說,在自動語音識別(automatic speech recognition)領域,保留得到的倒頻譜係數的第2-13個,剩下的拋棄。

reference:

spring框架開發步驟詳細解析

spring各個版本中 在3.0以下的版本,原始碼有spring中相關的所有包 spring功能 依賴包 如2.5版本 在3.0以上的版本,原始碼中只有spring的核心功能包 沒有依賴包 1 原始碼,jar檔案 spring framework 3.2.5.release commons logg...

mongoDB詳細安裝步驟及使用

安裝 測試 使用 首先,指定資料庫儲存的檔案目錄 安裝截圖 成功測試 設定mongodb的管理的資料庫的所在資料夾 在mongodb安裝目錄的bin目錄裡,執行命令臺,執行如下指令 成功 db資料夾中,自動生成一堆檔案 啟動資料庫 先關閉配置資料庫的命令臺 執行mongod.exe,開啟資料庫,資料...

Git 基本操作及詳細步驟

git操作流程 git提交流程git log檢視提交記錄 git pull 拉取 git status檢視是否有要提交 git add提交多有 git commit m為本次 新增注釋 git reset撤回提交 重點 會看錯誤提示 其實我覺得git操作都不是重點,重點是在git報錯的時候會看報錯,...