陳潔群
(廣東省培英職業(yè)技術(shù)學(xué)校,廣東 廣州 510630)
?
基于Viterbi改進(jìn)算法的漢語數(shù)碼語音識別系統(tǒng)*
陳潔群
(廣東省培英職業(yè)技術(shù)學(xué)校,廣東 廣州 510630)
針對漢語語音識別中的一個分支——數(shù)碼語音識別(MDSR)系統(tǒng)做出了具體的分析,并實驗仿真了一個MDSR系統(tǒng)。在訓(xùn)練和識別階段,引入了HMM模型的定義,為了提高識別的速度,還針對HMM系統(tǒng)中的核心識別算法Viterbi進(jìn)行了改進(jìn),提出了一種累計積分判定的方法,對原Viterbi算法中的路徑進(jìn)行了剪裁,減少了冗余狀態(tài)。使用MATLAB R2007a對此算法進(jìn)行仿真實驗,證明在相同語音識別系統(tǒng)的環(huán)境下,改進(jìn)的Viterbi算法可以更有效地提高計算速度,且識別差錯率沒有明顯的提高。
HMM模型;漢字語音識別;數(shù)碼語音識別系統(tǒng);Viterbi算法
HMM是通過隨機進(jìn)行狀態(tài)處理,實現(xiàn)對狀態(tài)、觀察值的狀態(tài)統(tǒng)計分析,實現(xiàn)狀態(tài)轉(zhuǎn)移的描述。在這個過程中需要對時變信號進(jìn)行統(tǒng)計及概率分析[1]。在隱馬爾可夫模型中,狀態(tài)轉(zhuǎn)移是否需要和何時轉(zhuǎn)移主要取決于狀態(tài)統(tǒng)計的概率,這個概率可以稱之為狀態(tài)轉(zhuǎn)移概率;此外,觀察者狀態(tài)也主要取決于生成概率[2]。在模型的馬爾科夫鏈中不會看到狀態(tài)信息,可以看到觀察值,狀態(tài)信息需要通過隨機的方式來實現(xiàn),因此,隱馬爾可夫模型是對以往馬爾科夫鏈進(jìn)行改進(jìn)得到的[3]。
在語音識別中采取隱馬爾可夫模型主要是利用短時模型特性,實現(xiàn)對語音信號的平穩(wěn)描述,從一個平穩(wěn)信號的狀態(tài)轉(zhuǎn)移到另外的短時平穩(wěn)信號狀態(tài)中,可以有效地解決短時平穩(wěn)信號段的問題[4]。
隱馬爾可夫模型中在匹配時需要經(jīng)過大量的訓(xùn)練來獲取特征向量參數(shù),在進(jìn)行訓(xùn)練時需要解決如下幾個問題[5]:
(1)識別問題:主要是解決在一定條件下的觀察者輸出概率。
(2)尋找與給定觀察字符序列對應(yīng)的最佳狀態(tài)序列。
(3)模型訓(xùn)練問題:解決模型參數(shù)預(yù)測的問題。
1.1 Viterbi算法
Viterbi算法是一種廣泛應(yīng)用于通信領(lǐng)域中的動態(tài)規(guī)劃算法[6]。該算法在語音識別中也得到了應(yīng)用。利用全概率公式,可以計算出系統(tǒng)的輸出概率,但是無法找到一條最佳的狀態(tài)轉(zhuǎn)移路徑。而用Viterbi算法不僅可以找到足夠好的一個狀態(tài)轉(zhuǎn)移路徑,還可以得到該路徑所對應(yīng)的輸出概率。同時,它計算輸出概率所需要的計算量要比全概率公式小很多。但是,“足夠好”并不是說“最優(yōu)”。因為動態(tài)規(guī)劃算法得到的結(jié)果通常是滿意的[7],但并不保證它是最優(yōu)的。算法實現(xiàn)主要步驟如下:
(1)初始化
δ1(i)=πibi(o1),ψ1(i)=0
(1)
(2)迭代計算
1≤j≤N
(2)
1≤j≤N
(3)
(3)終止計算
(4)
(5)
(4)回溯
(6)
1.2 改進(jìn)的Viterbi算法
語音識別中經(jīng)典的Viterbi算法在數(shù)學(xué)上用前向迭代的方法完美地解決了隱馬爾可夫模型的解碼問題。但在實際應(yīng)用時,該算法所需的計算量仍然很大。改進(jìn)的算法思想是,裁剪掉那些不可能或者得分低的路徑。判斷得分低的路徑有幾種方式,一種簡單的方法為:該路徑與最優(yōu)路徑的差值大于一定門限。
具體做法是:在每一幀識別處理完成后,找出累計得分最高的路徑,其得分為:
(7)
(8)
實際上,只有滿足:PT(j)>Vb的路徑才需要保留到下一幀的處理中去。
而在實際應(yīng)用中發(fā)現(xiàn),用一個固定的常數(shù)b來求取門限的方法是不現(xiàn)實的。解決方法是動態(tài)生成調(diào)整門限值,在數(shù)學(xué)上通常采用黃金分割點的方法來設(shè)定這個門限:經(jīng)比較得到當(dāng)前幀所有路徑中得分最高和最低的路徑,記:
(9)
(10)
則
(11)
以上給出了HMM模型參數(shù)訓(xùn)練的方法,但是在實際求解時,還有許多具體問題需要注意解決。解決這些問題的方法將在下面進(jìn)行具體討論和說明。
(1)下溢問題及歸一化處理
(2)初值估計
目前關(guān)于如何估計參數(shù)的初值問題還沒有統(tǒng)一、直接的理論解決方案。對于初始狀態(tài)概率矢量π和狀態(tài)轉(zhuǎn)移概率矩陣A,初值比較容易確定。由迭代算法可知如果任何一個參數(shù)的初值為0,那么在以后的迭代運算中則恒為0。因此它們的處置一般設(shè)置為均勻分布或非0的隨機值。
對于B而言,如果是離散HMM,可以采取均勻分布或隨機設(shè)置的方法。如果是連續(xù)HMM,則采用分段K均值的方法。
2.1 原Viterbi算法識別結(jié)果
由于本文采用的samples.mat文件保留了語音的全部特征,沒有對其中的波形文件進(jìn)行壓縮變換等操作,致使文件稍大。因此模型的訓(xùn)練過程一般需要半個小時左右。在識別過程,將保存語音“零”到“九”的100個波形文件(其中每個語音10個樣本)分別命名為“0.wav”到“9.wav”,識別結(jié)果中0-7、2-8是易混淆數(shù)字對。此系統(tǒng)的正確識別率為93%,識別時間43.947 1 s。
2.2 改進(jìn)的Viterbi算法識別結(jié)果
使用MATLAB R2007a對此算法進(jìn)行仿真實驗,證明在相同語音識別系統(tǒng)的環(huán)境下,改進(jìn)的Viterbi算法可以更有效地提高計算速度,且識別差錯率沒有明顯的提高。改進(jìn)Viterbi算法后系統(tǒng)的正確識別率為92%,識別時間為41.465 s。
反復(fù)進(jìn)行多次實驗。本文選取了20次實驗的數(shù)據(jù)進(jìn)行比較,得到表1所示結(jié)果。
表1 原Viterbi算法與改進(jìn)后的Viterbi算法實驗比較結(jié)果
由表1可以看出,在相同的語音識別環(huán)境下,使用改進(jìn)后的Viterbi算法的正確識別率與經(jīng)典的Viterbi算法很接近,但速度更快了。這說明改進(jìn)的算法是有意義的。
接下來采取優(yōu)化方法對前后響應(yīng)時間進(jìn)行仿真實驗,對所獲取的結(jié)果進(jìn)行采集,并且在仿真實驗中將其中的詞匯對象的容量設(shè)定為100,對上述的詞匯對象進(jìn)行語音識別處理,并且將其中的響應(yīng)時間進(jìn)行記錄和對比,其結(jié)果如圖1所示。
圖1 系統(tǒng)識別時采用優(yōu)化與未優(yōu)化的Viterbi算法的響應(yīng)時間對比
在上述關(guān)于優(yōu)化前后的響應(yīng)時間對比結(jié)果中可以看到,在優(yōu)化前,所需要花費的響應(yīng)時間平均為240.8 ms。經(jīng)過算法的優(yōu)化之后,其性能得到一定程度的提高,所需要的響應(yīng)時間得到降低,其平均的響應(yīng)時間為157.4 ms,經(jīng)過優(yōu)化之后,在響應(yīng)時間方面其性能提升了34.6%。使用MATLAB R2007a對此算法進(jìn)行仿真實驗,證明在相同語音識別系統(tǒng)的環(huán)境下,改進(jìn)的Viterbi算法可以更有效地提高計算速度,且識別差錯率沒有明顯的提高。
本文提出了一個改進(jìn)算法的漢語數(shù)碼語音識別(MDSR)系統(tǒng)。MDSR系統(tǒng)使用美爾倒譜系數(shù)MFCC作為主要的語音特征參數(shù),同時對應(yīng)用于HMM模型語音識別系統(tǒng)中的動態(tài)規(guī)劃算法Viterbi進(jìn)行了改進(jìn)。改進(jìn)的算法減少了原Viterbi算法中的冗余狀態(tài),同時保證差錯率無明顯提高。
[1] 孫玲.漢語數(shù)字語音識別技術(shù)與實現(xiàn)方法研究[J].華中科技大學(xué)學(xué)報,2015,47(11):44-52.
[2] 朱璇,李虎生,劉加,等.高性能漢語數(shù)碼串快速識別算法的研究[J].微型機與應(yīng)用,2014,38(7):845-850
[3] 劉潤生.改進(jìn)漢語數(shù)碼語音識別中的語音特征提取性能[J].計算機系統(tǒng)應(yīng)用,2015,28(11): 1-6.
[4] 董明,劉加,劉潤生.高性能漢語數(shù)碼語音識別芯片系統(tǒng)[J].清華大學(xué)學(xué)報(自然科學(xué)版),2013,53(6):1257-1260.
[5] 陸嘩.基于隱馬爾可夫算法的上海城市路名語音識別系統(tǒng)方法研究[J].華東師范大學(xué)學(xué)報,2015,39(11):36-47.
[6] 李虎生,劉加,劉潤生.高性能漢語數(shù)碼語音識別算法[J].清華大學(xué)學(xué)報(自然科學(xué)版),2013,47(10): 32-34.
[7] 侯周國.基于HMM的漢語數(shù)字語音識別系統(tǒng)研究[J].湖南師范大學(xué)學(xué)報,2015,37(11):39-61.
[8] 廖大強,印鑒,鄔依林,等.基于興趣傳播的用戶相似性計算方法研究[J].計算機應(yīng)用與軟件,2015,32(10):95-100,104.
The research on improved Viterbi algorithm for Chinese digital speech recognition system
Chen Jiequn
(Guangdong Province Puiying Occupation Technical School, Guangzhou 510663, China)
This paper made a detailed analysis of a branch of Chinese speech recognition, the digital speech recognition (MDSR) system, and simulates a MDSR system. In the stage of training and recognition, the definition of HMM model was introduced, in order to improve the recognition rate. The recognition algorithm of Viterbi core for HMM system was improved, a method was put forward to determine the path of the accumulated points, and the path of the original Viterbi algorithm was cut to reduce the redundant state. This algorithm uses the MATLAB R2007a for simulation experiments to prove that under the same speech recognition system, the improved Viterbi algorithm can effectively improve the calculation speed, and the recognition error rate is not significantly increased.
HMM model; Chinese character recognition; digital speech recognition system; Viterbi algorithm
廣東省大數(shù)據(jù)分析與處理重點實驗室開放基金項目(2017013)
TP18; TP912.34
A
10.19358/j.issn.1674- 7720.2017.14.004
陳潔群.基于Viterbi改進(jìn)算法的漢語數(shù)碼語音識別系統(tǒng)[J].微型機與應(yīng)用,2017,36(14):11-13.
2017-02-16)
陳潔群(1981-),女,本科,講師,主要研究方向:計算機系統(tǒng)結(jié)構(gòu)、軟件工程。