摘要:模型訓(xùn)練是HMM應(yīng)用于語音識別時重要的一環(huán),本文首先簡要介紹了HMM及其三大基本問題,針對Baum-Welch算法收斂速度慢和易陷于局部最優(yōu)解的缺陷,歸納總結(jié)了基于分段K均值算法、基于遺傳算法、基于隨機松弛算法的三大改進算法,通過實驗驗證了改進算法可以提高語音識別效果。
關(guān)鍵詞:HMM;模型訓(xùn)練;分段K均值算法;遺傳算法;隨機松弛算法
中圖分類號:TN912.34 文獻標識碼:A 文章編號:1007-9599 (2012) 23-0000-03
1 引言
語音識別技術(shù),也被稱為自動語音識別(Automatic Speech Recognition,ASR),其目標是將人類的語音中的詞匯內(nèi)容轉(zhuǎn)換為計算機可讀的輸入,例如按鍵、二進制編碼或者字符序列,語音識別作為一個高新技術(shù)產(chǎn)業(yè),涉及領(lǐng)域包括信號處理、模式識別、概率論和信息論、發(fā)聲機理和聽覺機理、人工智能等等,隨著智能手機的普及和移動互聯(lián)時代的到來,將在人們的生活和工作中充當越來越重要的角色。
近30年的語音識別的研究中,基于概率統(tǒng)計的隱馬爾可夫模型(Hidden Markov Model,HMM)由于不僅能夠很好描述語音的短時平穩(wěn)性和長時波動性,而且具有較高的語音識別率,成為了當今語音識別的主流方向。利用HMM進行語音識別時,模型訓(xùn)練得到的參數(shù)直接影響語音識別效果的好壞,在經(jīng)典的Baum-Welch算法中,有兩個問題未解決:一是Baum-Welch算法得到是局部最優(yōu)解,不是全局最優(yōu)解;二是模型收斂時間無法保證,如何在更短的時間內(nèi)訓(xùn)練出更好的模型參數(shù)是一個亟需解決的問題。
2 HMM三大核心問題及其相應(yīng)經(jīng)典算法
隱馬爾可夫模型是統(tǒng)計模型,它用來描述一個含有隱含未知參數(shù)的馬爾可夫過程。其難點是從可觀察的參數(shù)中確定該過程的隱含參數(shù)。然后利用這些參數(shù)做進一步的分析,例如語音識別。
HMM用于語音信號建模時,是一個雙重隨機過程:一個是狀態(tài)間的隨機轉(zhuǎn)移過程,用上面的參數(shù)A表示;另一個是狀態(tài)轉(zhuǎn)移過程中隨機的輸出觀測值,用上面的參數(shù)B表示。人的語言交流過程其實也是一個雙重隨機過程[1],一個是受語法知識和語音需要發(fā)出的音素的參數(shù)流,是個隱含過程,對應(yīng)于狀態(tài)間隨機轉(zhuǎn)移;另一個是由這些參數(shù)流映射到對應(yīng)的語音信號,是觀察到的序列,對應(yīng)于輸出觀測值。用HMM來描述語音信號時,既可以描述平穩(wěn)段的信號,又可以描述每個短時平穩(wěn)段是如何轉(zhuǎn)到下一個短時平穩(wěn)段的,是現(xiàn)今語音識別的主流方向。HMM模型的三大核心問題是[2]:
(1)識別問題:已知模型M={A,B,π}和觀測序列O,求在給定模型下的觀測序列出現(xiàn)的概率P(O/M),常用算法為前向—后向(Forward-Backward)算法,問題一的求解能夠選擇出與給定序列最匹配的HMM模型。
(2)解碼問題:已知觀測序列O,求最大可能的狀態(tài)序列S,常用算法為維特比(Viterbi)算法,問題二的求解力求找出HMM模型中隱藏的部分。
(3)模型訓(xùn)練問題:已知觀測序列O,求最可能的HMM模型M={A,B,π}。這是三個問題中最難的一個。實際中,由于狀態(tài)序列S=S1S2S3…SN是隱含變量,直接利用最大似然估計法無法得到結(jié)果。解決辦法是隨機初始化一個HMM模型M(0),利用期望最大化算法(Expectation maximization algorithm,EM)不斷迭代使得P(O|M(i+1))>P(O|M(i)),令收斂閾值=ζ,最大迭代次數(shù)=I,當P(O|M(i+1))- P(O|M(i))<ζ或者迭代次數(shù)大于I時,迭代停止。Baum-Welch算法就是利用EM算法的原理,迭代過程重估公式 其中 是前向概率,即輸出部分符號序列o1,o2,…,ot-1并且到達狀態(tài)Si的概率;
是后向概率,是從狀態(tài)Sj到狀態(tài)SN結(jié)束輸出符號序列ot+1,ot+2,…,oT的概率。
Baum-Welch算法求解速度快,易于理解,但其本質(zhì)仍然是EM算法的迭代爬山原理,易陷入局部最優(yōu)解。
3 HMM模型訓(xùn)練改進算法
HMM模型參數(shù)的質(zhì)量直接影響語音識別的效果,在HMM模型M={A,B,π}的三個參數(shù)中,狀態(tài)轉(zhuǎn)移概率矩陣A和初始狀態(tài)概率集合π對語音識別率影響不大,通常設(shè)置為均勻分布值或非零隨機值。參數(shù)B的初值設(shè)置比A和π要困難,同時也至關(guān)重要。本文針對Baum-Welch經(jīng)典算法的缺點,總結(jié)了三種改進算法。
3.1基于分段K均值算法的HMM參數(shù)優(yōu)化算法[3]
(1)預(yù)置HMM模型參數(shù)初值,初值可以通過等分劃分狀態(tài)法或者經(jīng)驗得到;
(2)預(yù)置最大迭代次數(shù)I和收斂閾值ζ;
(3)用Viterbi算法對輸入的訓(xùn)練語音數(shù)據(jù)進行狀態(tài)分割;
(4)用分段K均值算法對模型中B參數(shù)進行重新估計。分為兩種情況:
離散型系統(tǒng):
bji=狀態(tài)Sj中標號i的語音幀出現(xiàn)次數(shù)/狀態(tài)Sj下全部語音幀個數(shù);
連續(xù)型系統(tǒng):
每個狀態(tài)的概率密度函數(shù)是由M個正態(tài)分布函數(shù)疊加而成。
混合系數(shù)ωji=狀態(tài)j中類i語音幀個數(shù)/狀態(tài)j中語音幀個數(shù);
樣本均值μji:狀態(tài)j中類i的樣本均值;
樣本協(xié)方差矩陣:υji =狀態(tài)j中類i樣本協(xié)方差矩陣;
利用上述參數(shù)計算模型參數(shù)M*。
(5)用M*作為初值,利用Baum-Welch算法對HMM參數(shù)重估;
(6)轉(zhuǎn)到(3),直到迭代次數(shù)>I或者滿足收斂條件。
圖2.基于分段K均值算法的HMM參數(shù)訓(xùn)練流程
分段K均值算法是基于狀態(tài)優(yōu)化的最大似然判據(jù),可以大大加快模型的收斂速度,同時還可以在訓(xùn)練中提供一些附加信息。然而在上面的算法中,數(shù)據(jù)集中的每個點必須確切的歸于其中一類,針對上面的硬聚類方法,有學(xué)者提出了引入模糊集理論的思想并取得了比較優(yōu)良的效果。
3.2 基于遺傳算法的HMM參數(shù)訓(xùn)練改進算法
(1)預(yù)置HMM模型參數(shù)初值,初值可以均勻設(shè)置或者通過經(jīng)驗得到;
(2)預(yù)置最大進化次數(shù)I和收斂閾值ζ;
(3)選擇最優(yōu)基因:在每一代中,按照適應(yīng)值從高到低,依照一定的比例選取最優(yōu)基因,其中適應(yīng)值高的選取比例相應(yīng)要高,適應(yīng)值計算公式: ;
(4)雜交和變異:雜交即兩個父代的相應(yīng)部分發(fā)生互換產(chǎn)生子代,相當于一個局部區(qū)域的搜索,變異即對父代的部分區(qū)域進行增刪改產(chǎn)生變異后代,使子代跳出當前的局部搜索區(qū)域,避免過早陷于局部優(yōu)化[4];
(5)更新模型參數(shù);
(6)若進化次數(shù)>I或者滿足收斂條件,訓(xùn)練完畢,否則轉(zhuǎn)到(3);
3.3 基于松弛算法的HMM參數(shù)訓(xùn)練改進算法[5]
(1)預(yù)置HMM模型參數(shù)初值,初值可以均勻設(shè)置或者通過經(jīng)驗得到;
(2)預(yù)置最大迭代次數(shù)I和收斂閾值ζ;
(3)令Tm=T0×f(m),f(m)=Km,其中m取值為0,1,2…I,K<1;
(4)生成N×M個相互獨立的正態(tài)隨機變量X的實例,均值EX=0,方差DX=Tm;
(5)利用經(jīng)典Baum-Welch算法得到bij參數(shù),令bij*= bij+x(x為上面X的取值),1≤i≤N,1≤j≤M;如果bij*出現(xiàn)負值,取值設(shè)為零,同時進行歸一化處理;
(6)若m>I或者滿足收斂條件,訓(xùn)練完畢,否則轉(zhuǎn)到(3);
3.4 實驗比較
實驗條件:采樣頻率16kHZ,采樣精度16bit,語音庫是數(shù)字0-9,訓(xùn)練樣本數(shù)100,測試樣本數(shù)100。 提取特征參數(shù)為美爾倒譜系數(shù)MFCC,最大迭代次數(shù)I=20,收斂條件ζ=0.000100。
3.4.1 不同特征參數(shù)MFCC維度下各種算法識別率比較
特征參數(shù)MFCC維數(shù)的選擇也會影響最后的識別結(jié)果。不斷改變MFCC的維數(shù),檢驗維數(shù)的增加對識別率的影響。實驗結(jié)果如表1所示。
MFCC_0:13維MFCC(其中包括一維音框?qū)?shù)能量系數(shù));
MFCC_0_A:13維MFCC+13維一階差分系數(shù);
MFCC_0_A_D:13維MFCC+13維一階差分系數(shù)+13維二階差分系數(shù)。
由表1可知,相比經(jīng)典Baum-Welch算法,改進算法的語音識別率都有不同程度的提高,特別是分段K均值算法的優(yōu)化效果比較明顯,驗證了改進算法的確可以優(yōu)化HMM訓(xùn)練參數(shù),同時從表中可以看出,在同一個算法中,隨著特征參數(shù)維度的增加,語音識別率也相應(yīng)的有所提高。
3.4.2 不同混合高斯分量個數(shù)下各種算法識別率比較
對于連續(xù)型HMM系統(tǒng),模型狀態(tài)跳轉(zhuǎn)通常用高斯混合分量描述,不斷改變高斯混合分量數(shù)目,檢驗高斯混合數(shù)目的改變對語音識別率的影響,選用39維MFCC_0_A_D作為特征參數(shù),實驗結(jié)果如圖3所示:
圖3.不同混合高斯分量個數(shù)下Baum-Welch算法和改進算法語音識別率 %
由圖三可知,相比經(jīng)典Baum-Welch算法,改進算法的語音識別率都有不同程度的提高,驗證了改進算法的確可以優(yōu)化HMM訓(xùn)練參數(shù),同時從圖中可以看出,在同一個算法中,隨著高斯混合分量個數(shù)從1個增加到5個,語音識別率也相應(yīng)的有所提高,但是5個以后再增加高斯混合分量個數(shù),語音識別率反而略微有所降低。
4 總結(jié)
HMM是當今語音識別中的主流模型,HMM參數(shù)直接決定了語音識別的效果,如何更快更好的訓(xùn)練HMM參數(shù),不同學(xué)者提出了很多算法,除了上面提到的算法外,另外還有學(xué)者提出了梯度下降法,區(qū)別訓(xùn)練法等,本文主要從收斂速度和最優(yōu)解兩個方面歸納比較了三種改進算法,希望為繼續(xù)改進HMM模型訓(xùn)練方法提供一點指導(dǎo)意義。
參考文獻:
[1]趙力.語音信號處理,第二版,2009,5:99.
[2]Rabiner L R, A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition [J], Proceedings of the IEEE, 1989, 77(2):261.
[3]L.R.Rabiner, B.H.Juang et al. Recognition of isolated digits using hidden Markov models with continuous density, ATT Tech.J.,vol 64,no.6,pp1211-1222,July-Aug.1986.
[4]洪淑月,施曉鐘,徐皓,改進的小波變換HMM語音識別算法,浙江師范大學(xué)學(xué)報[J]2011,34(4):401.
[5]方紹武,戴蓓倩,李宵寒.一種離散隱Markov模型參數(shù)的全局優(yōu)化算法,電路與系統(tǒng)學(xué)報[J]2000,5(3):79-81.
*耕地質(zhì)量關(guān)鍵指標遙感監(jiān)測技術(shù)(2012BAH29B01)。