語音識別算法有哪些
本文列舉了幾種不同的語音識別算法。
第一種:基于動態時間規整(Dynamic Time Warping)的算法
在連續語音識別中仍然是主流方法。
該方法的運算量較大,但技術上較簡單,識別正確率高。
在小詞匯量、孤立字(詞)識別系統中,也已有許多改進的DTW算法被提出。例如,利用頻率尺度的DTW算法進行孤立字(詞)識別的方法。
第二種:基于參數模型的隱馬爾可夫模型(HMM)的方法
該算法主要用于大詞匯量的語音識別系統,它需要較多的模型訓練數據,較長的訓練和識別時間,而且還需要較大的內存空間。
一般連續隱馬爾可夫模型要比離散隱馬爾可夫模型計算量大,但識別率要高。
第三種:基于非參數模型的矢量量化(VQ)的方法
該方法所需的模型訓練數據,訓練和識別時間,工作存儲空間都很小。
但是VQ算法對于大詞匯量語音識別的識別性能不如HMM好。
在孤立字(詞)語音識別系統中得到了很好的應用。
另外,還有基于人工神經網絡(ANN)的算法和混合算法,如ANN/HMM法,FSVQ/HMM法等。
更多語音識別算法如下:
卷積神經網絡
深度學習神經網絡
BP神經網絡
RBF神經網絡
模糊聚類神經網絡
改進的T-S模糊神經網絡
循環神經網絡
小波神經網絡
混沌神經網絡
小波混沌神經網絡
神經網絡和遺傳算法
動態優化神經網絡
K均值和神經網絡集成
HMM與自組織神經網絡的結合
正交基函數對向傳播過程神經網絡
HMM和新型前饋型神經網絡
特征空間隨機映射
SVM多類分類算法
特征參數歸一化
多頻帶譜減法
獨立感知理論
分段模糊聚類算法VQ-HMM
優化的競爭算法
雙高斯GMM特征參數
MFCC和GMM
MFCCs和PNN
SBC和SMM
MEL倒譜系數和矢量量化
DTW
LPCC和MFCC
隱馬爾科夫模型HMM
語音識別特征提取方法
語音識別對特征參數有如下要求:
1. 能將語音信號轉換為計算機能夠處理的語音特征向量
2. 能夠符合或類似人耳的聽覺感知特性
3. 在一定程度上能夠增強語音信號、抑制非語音信號
常用特征提取方法有如下幾種:
?。?)線性預測分析(LinearPredictionCoefficients,LPC)
擬人類的發聲原理,通過分析聲道短管級聯的模型得到的。假設系統的傳遞函數跟全極點的數字濾波器是相似的,通常用12-16個極點就可以描述語音信號的特征。所以對于n時刻的語音信號,我們可以用之前時刻的信號的線性組合近似的模擬。然后計算語音信號的采樣值和線性預測的采樣值。并讓這兩者之間達到均方的誤差(MSE)最小,就可以得到LPC。
?。?)感知線性預測系數(PerceptualLinearPredictive,PLP)
一種基于聽覺模型的特征參數。該參數是一種等效于LPC的特征,也是全極點模型預測多項式的一組系數。不同之處是PLP是基于人耳聽覺,通過計算應用到頻譜分析中,將輸入語音信號經過人耳聽覺模型處理,替代LPC所用的時域信號,這樣的優點是有利于抗噪語音特征的提取。
?。?)Tandem特征和Bottleneck特征
這是兩種利用神經網絡提取的兩類特征。Tandem特征是神經網絡輸出層節點對應類別的后驗概率向量降維并與MFCC或者PLP等特征拼接得到。Bottleneck特征是用一種特殊結構的神經網絡提取,這種神經網絡的其中一個隱含層節點數目比其他隱含層小的多,所以被稱之為Bottleneck(瓶頸)層,輸出的特征就是Bottleneck特征。
?。?)基于濾波器組的Fbank特征(Filterbank)
亦稱MFSC,Fbank特征的提取方法就是相當于MFCC去掉最后一步的離散余弦變換,跟MFCC特征相比,Fbank特征保留了更多的原始語音數據。
?。?)線性預測倒譜系數(LinearPredictiveCepstralCoefficient,LPCC)
基于聲道模型的重要特征參數。LPCC是丟棄了信號生成過程中的激勵信息。之后用十多個倒譜系數可以代表共振峰的特性。所以可以在語音識別中取得很好的性能。
?。?)梅爾頻率倒譜系數(MelFrequencyCepstrumCoefficient,MFCC)
基于人耳聽覺特性,梅爾頻率倒譜頻帶劃分是在Mel刻度上等距劃分的,頻率的尺度值與實際頻率的對數分布關系更符合人耳的聽覺特性,所以可以使得語音信號有著更好的表示。1980年由Davis和Mermelstein搞出來的。從那時起。在語音識別領域,MFCC可謂是鶴立雞群,一枝獨秀。
Q: MFCC為何一枝獨秀
人通過聲道產生聲音,聲道的shape決定了發出怎樣的聲音。聲道的shape包括舌頭,牙齒等。如果我們可以準確的知道這個形狀,那么我們就可以對產生的音素phoneme進行準確的描述。聲道的形狀在語音短時功率譜的包絡中顯示出來。而MFCC就是一種準確描述這個包絡的一種特征。
聲譜圖
處理語音信號,如何去描述它很重要,因為不同的描述方式放映它不同的信息,而聲譜圖的描述方式是最利于觀測和理解的。
由上圖可知,這段語音被分為很多幀,每幀語音都對應于一個頻譜(通過短時FFT計算),頻譜表示頻率與能量的關系。在實際使用中,頻譜圖有三種,即線性振幅譜、對數振幅譜、自功率譜(對數振幅譜中各譜線的振幅都作了對數計算,所以其縱坐標的單位是dB(分貝)。這個變換的目的是使那些振幅較低的成分相對高振幅成分得以拉高,以便觀察掩蓋在低幅噪聲中的周期信號)。
先將其中一幀語音的頻譜通過坐標表示出來,如上圖(a)。旋轉90度,得到圖(b)。把這些幅度映射到一個灰度級表示,得到了圖(c)。這樣操作的原因是為了增加時間維度,,得到一個隨著時間變化的頻譜圖,這個就是描述語音信號的聲譜圖(spectrogram)。這樣就可以顯示一段語音而不是一幀語音的頻譜,而且可以直觀的看到靜態和動態的信息。
倒譜分析(CepstrumAnalysis)
下面是一個語音的頻譜圖。峰值就表示語音的主要頻率成分,我們把這些峰值稱為共振峰(formants),而共振峰就是攜帶了聲音的辨識屬性,用它就可以識別不同的聲音。因此,需要把它提取出來。要提取的不僅是共振峰的位置,還得提取它們轉變的過程。所以我們提取的是頻譜的包絡(SpectralEnvelope)。這包絡就是一條連接這些共振峰點的平滑曲線。
由上圖可以看出,原始的頻譜由兩部分組成:包絡和頻譜的細節。因此需要把這兩部分分離開,就可以得到包絡了。按照下圖的方式進行分解,在給定logX[k]的基礎上,求得logH[k]和logE[k]滿足logX[k]=logH[k]+logE[k]。
由上面這個圖我們可以看到,包絡主要是低頻成分,而高頻主要是頻譜的細節。把它倆疊加起來就是原來的頻譜信號了。即,h[k]是x[k]的低頻部分,因此將x[k]通過一個低通濾波器就可以得到h[k]了,也就是頻譜的包絡。
以上解卷過程的專業術語叫做同態信號處理,(另一種方法為基于線性變換)。語音本身可以看成是聲道沖擊信息(包括話者個性信息、語義信息,表現為頻譜低頻成分)經過聲門激勵的一個響應函數,在時域上表現為卷積形式。為將二者分離開來,求得聲道共振特征和基音周期,需要把這種非線性問題轉化為線性問題。第一步通過FFT將其變成了乘性信號(時域的卷積相當于頻域的乘積);第二步通過取對數將乘性信號轉化為加性信號;第三步進行逆變換,使其恢復為卷性信號。此時,雖然前后均是時域序列,但它們所處的離散時域顯然不同,所以后者稱為倒譜頻域。計算過程如下圖所示。
評論
查看更多