1 特征提取流程
在語音識別和話者識別方面,最常用到的語音特征就是梅爾倒譜系數(Mel-scaleFrequency Cepstral Coefficients,簡稱MFCC)。
MFCC提取過程包括預處理、快速傅里葉變換、Mei濾波器組、對數運算、離散余弦變換、動態特征提取等步驟。


2 傅里葉家族
快速傅里葉變換即利用計算機計算離散傅里葉變換(DFT)的高效、快速計算方法的統稱,簡稱FFT。
傅里葉的兩個論點:1 周期信號都可以表示成諧波關系的正弦信號的加權和。 2 非周期信號都可以用正弦信號的加權積分來表示。
四行:FS(連續、周期信號、無限長)、FT(連續、非周期信號、無限長)、DFS(離散、周期信號、無限長)、DTFT(離散、非周期信號、無限長)
超出三界外,不在四行中:DFT(離散、非周期、有限長)、FFT(fast DFT)、DCT(實DFT)

2.1 傅里葉級數(FS)
連續、周期信號、無限長->非周期、離散
任何周期函數都可以用正弦函數和余弦函數構成的無窮級數來表示,稱傅里葉級數為一種特殊的三角級數。
對於周期信號可以用一系列(連續周期為無窮個,離散周期為有限個)正弦波的疊加來表示。這些正弦波的頻率都是基頻的倍數。所以說周期信號的頻率是離散的。 而且,周期信號有一個特點,信號的周期越長,信號的基頻越小。當信號為周期信號時,傅立葉變換是不存在的,因為它不滿足離散信號序列絕對級數和收斂(連續傅立葉變換要求連續信號在時間上必須可積)這一傅立葉變換的充要條件。


2.2 離散傅里葉級數(DFS)
離散、周期、無限長->周期、離散 離散傅里葉級數的諧波信號是有限的,這是因為離散對應於周期(第k個復指數序列和第N+k個是相等的。因此,離散周期函數的傅里葉級數只有N個頻率成分)即 原信號:離散周期 傅里葉級數展開:周期離散 (諧波系數(傅里葉系數)為周期的,諧波頻率是離散的)


2.3 傅里葉變換(FT)
連續、非周期、無限長->非周期、連續
由FS變化而來,連續時間非周期信號可以看成連續時間周期信號的周期趨向於無窮大,此時傅里葉級數(FS)的頻率離散的諧波基頻趨於無窮小,離散頻率變成連續頻率。FS變為FT了。 即信號時域:連續非周期,FT變換頻域:非周期連續


2.4 離散時間傅里葉變換(DTFT)
離散、非周期、無限長->周期、連續


2.5 離散傅里葉變換(DFT)
離散、非周期信號、有限長—> 周期、離散
離散傅里葉變換是將有限長非周期系列作了周期開括(變成離散、周期、無限長),再作離散傅里葉級數,然后在離散傅里葉級數中截取一個周期定義的。
DTFT是給人用的,而DFT是給機器用的。機器的局限性在哪呢?機器不能表達一個無限長的序列,也不能表達連續的頻域特征。對於一般的離散時間信號而言,直接用DTFT確實很好,非常便於我們分析信號的頻域特征,但問題是這一套機器是用不了的。
(AI大語音:不在四行中,喬裝打扮變成其中之一,再進行變換,之后取出一個周期,做回自己;語音信號是進行DFT)


2.6 快速傅里葉變換(FFT)
FFT不是Fast FT,而是Fast DFT
FT的種類很多,以最簡單的基於2的FFT為例。
FFT實際上一種分治算法。FFT將長度為
N 的信號分解成兩個長度為
\frac{N}{2}信號進行處理,這樣分解一直到最后,每一次的分解都會減少計算的次數。理解FFT分以下三個步驟進行:



步驟1:將信號
x\left[n\right]分解成兩個子信號 偶數樣本點信號:
x\left[2n\right]; 奇數樣本點信號:
x\left[2n+1\right];
N=0,1,\cdots,\frac{N}{2}-1
![x\left[n\right]](/image/aHR0cHM6Ly93d3cuemhpaHUuY29tL2VxdWF0aW9uP3RleD14JTVDbGVmdCU1Qm4lNUNyaWdodCU1RA==.png)
![x\left[2n\right]](/image/aHR0cHM6Ly93d3cuemhpaHUuY29tL2VxdWF0aW9uP3RleD14JTVDbGVmdCU1QjJuJTVDcmlnaHQlNUQ=.png)
![x\left[2n+1\right]](/image/aHR0cHM6Ly93d3cuemhpaHUuY29tL2VxdWF0aW9uP3RleD14JTVDbGVmdCU1QjJuJTJCMSU1Q3JpZ2h0JTVE.png)

步驟2:將兩個求和項理解成兩個長度為
\frac{N}{2}的DFT

步驟3:FFT的具體計算過程
對於任意
k都要進行
N次加法操作,所以DFT共有
N^2次乘法操作。 對於任意
k都要進行
N-1次加法操作,DFT共有
N\left(N-1\right)次加法操作。 FFT共有
N\left(\log_2N-1\right)次乘法操作和
Nlog_2N次加法操作。








語音信號是有限長的離散信號。
原始一幀語音信號:

FFT后效果:

2.7 離散余弦變換(DCT)
由於許多要處理的信號都是實信號,在使用DFT時由於傅里葉變換時由於實信號傅立葉變換的共軛對稱性導致DFT后在頻域中有一半的數據冗余。
將DFT式子拆開,抽出實數部分:

則實數部分:

虛數部分:

又有:

而當x[n]是實偶信號時:

把DFT寫成:

但是實際中並沒有那么多實偶信號,我們就認為造出來。將信號長度擴大成原來的兩倍,並變成2N,又為了讓造出來的信號關於0對稱,把整個延拓的信號向右平移 0.5 個單位,最終DCT變換公式:

附錄(魔鬼寫手)






——————
淺談則止,細致入微AI大道理
掃描下方“AI大道理”,選擇“關注”公眾號

歡迎加入!

▼下期預告▼
AI大語音(四)——特征提取
▼往期精彩回顧▼
AI大語音(一)——語音識別基礎
AI大語音(二)——語音預處理