特徵提取(fbank)
目的:
1.把每一幀波形變成一個包含聲音信息的多維向量;
2. 能夠符合或類似人耳的聽覺感知特性
3. 在一定程度上能夠增強語音信號、抑制非語音信號
fbank
fbank的總體流程可以由下圖表示,去掉(DCT)。
1.語音採樣率:
語音採樣率顧名思義就是在一秒長的音頻上採樣多少個幅值點。根據採樣定理採樣率要大於採樣信號的兩倍,才能還原原始信號信息。人聲信號人聲一般在300-3400,很多聲卡採樣率都是8K。對於我們這邊的算法取16K,
就是爲了不丟失其中的高頻成分。
2.預加重:
語音信號中高頻部分能量很小,容易被噪聲覆蓋,因此有一個預加重的過程,目的是爲了提升高頻部分,使得信號頻譜變得平坦,移除頻譜傾斜,來補償語音信號受到發音系統所抑制的高頻部分。
預加重公式:
由於高頻信號表徵的是信號變換的速率快慢,因此信號的高頻分量一般體現在信號上升或者下降沿。預加重技術就是增強上升沿或者下降沿的幅度。不過本公式採用的是去加重技術,
保持高頻不變,減去=少低頻信號的幅值,從公式來看,是將當前幀點減去前一幀的幅度,因此在越是陡峭的地方,當前這點被減去的越少(因爲
越是陡峭,兩幀之間的幅值差越大。而比較平緩的地方基本相當減去了自身的k倍),這樣一來高頻信號幅值被減去的很少,低頻信號被減去的很多,高頻信號幅值相對提升。
關於預加重的詳細解釋以及公式推導:https://blog.csdn.net/wordwarwordwar/article/details/52961737?utm_source=blogxgwz5
3.分幀
人聲帶信號在短時長內可以認爲是平穩信號(一般取0.025秒),短時間頻譜不會變化(這樣的信號特性方便傅里葉變換),所以爲了方便分析信號,一般將語音信號分成很多幀。
後續的很多處理都是針對幀來操作的。在分幀的時候爲了避免窗邊對信號的遺漏,因此在對幀做偏移的時候,幀間要有重疊(一般選擇10ms).否則,由於幀與幀連接處的信號會
因爲加窗而被弱化,這部分的信息就丟失了。
4.加窗:
聲音信號經過上面的分幀後,要做FFT處理。但是信號經過分幀後會有泄露(信號做FFT會被當成週期信號處理,當你截取的信號首尾不相等時,是不滿足週期特性的),頻譜與
原始信號有很大的差別。爲了還原原始信號頻譜,因此要對原始信號加上一個窗(實際上就是乘以一個窗函數,使得截取的信號滿足傅里葉變換的條件)
關於窗具體看:https://www.zhihu.com/question/50402321/answer/144988327
5.FFT(快速傅里葉變換)
語音傳進來的信號是時域信號,混合各種頻段的信號,爲了方便神經網絡學習,需要將轉成頻域信號。然後在每一幀上做N點FFT來計算頻譜,然後將每一幀的變換按軸頻率拼接在一起就是語音譜。
如下圖所示,橫軸是時間,縱軸是頻率,顏色深淺表示頻譜強度。
傅里葉變換:https://zhuanlan.zhihu.com/p/19763358?columnSlug=wille(寫的非常好)
DFT(離散傅里葉變換)https://zhuanlan.zhihu.com/p/45114376
FFT(快速傅里葉變換)https://blog.csdn.net/enjoy_pascal/article/details/81478582
5.Mel濾波器組
經過上面的步驟,在能量譜上應用Mel濾波器組,就能提取FBank特徵。
在介紹Mel濾波器組之前,先介紹一下Mel刻度,這是一個能模擬人耳接收聲音規律的刻度,人耳在接收聲音時呈現非線性狀態,對高頻的更不敏感,因此Mel刻度在低頻
區分辨度較高,在高頻區分辨度較低,與頻率之間的換算關係爲:
Mel濾波器組就是一系列的三角形濾波器,通常有40個或80個,在中心頻率點響應值爲1,在兩邊的濾波器中心點衰減到0,如下圖:
梅爾頻率倒譜系數MFCC:https://zhuanlan.zhihu.com/p/43102193