陳潔群
(廣東省培英職業技術學校,廣東 廣州 510630)
?
基于Viterbi改進算法的漢語數碼語音識別系統*
陳潔群
(廣東省培英職業技術學校,廣東 廣州 510630)
針對漢語語音識別中的一個分支——數碼語音識別(MDSR)系統做出了具體的分析,并實驗仿真了一個MDSR系統。在訓練和識別階段,引入了HMM模型的定義,為了提高識別的速度,還針對HMM系統中的核心識別算法Viterbi進行了改進,提出了一種累計積分判定的方法,對原Viterbi算法中的路徑進行了剪裁,減少了冗余狀態。使用MATLAB R2007a對此算法進行仿真實驗,證明在相同語音識別系統的環境下,改進的Viterbi算法可以更有效地提高計算速度,且識別差錯率沒有明顯的提高。
HMM模型;漢字語音識別;數碼語音識別系統;Viterbi算法
HMM是通過隨機進行狀態處理,實現對狀態、觀察值的狀態統計分析,實現狀態轉移的描述。在這個過程中需要對時變信號進行統計及概率分析[1]。在隱馬爾可夫模型中,狀態轉移是否需要和何時轉移主要取決于狀態統計的概率,這個概率可以稱之為狀態轉移概率;此外,觀察者狀態也主要取決于生成概率[2]。在模型的馬爾科夫鏈中不會看到狀態信息,可以看到觀察值,狀態信息需要通過隨機的方式來實現,因此,隱馬爾可夫模型是對以往馬爾科夫鏈進行改進得到的[3]。
在語音識別中采取隱馬爾可夫模型主要是利用短時模型特性,實現對語音信號的平穩描述,從一個平穩信號的狀態轉移到另外的短時平穩信號狀態中,可以有效地解決短時平穩信號段的問題[4]。
隱馬爾可夫模型中在匹配時需要經過大量的訓練來獲取特征向量參數,在進行訓練時需要解決如下幾個問題[5]:
(1)識別問題:主要是解決在一定條件下的觀察者輸出概率。
(2)尋找與給定觀察字符序列對應的最佳狀態序列。
(3)模型訓練問題:解決模型參數預測的問題。
1.1 Viterbi算法
Viterbi算法是一種廣泛應用于通信領域中的動態規劃算法[6]。該算法在語音識別中也得到了應用。利用全概率公式,可以計算出系統的輸出概率,但是無法找到一條最佳的狀態轉移路徑。而用Viterbi算法不僅可以找到足夠好的一個狀態轉移路徑,還可以得到該路徑所對應的輸出概率。同時,它計算輸出概率所需要的計算量要比全概率公式小很多。但是,“足夠好”并不是說“最優”。因為動態規劃算法得到的結果通常是滿意的[7],但并不保證它是最優的。算法實現主要步驟如下:
(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 改進的Viterbi算法
語音識別中經典的Viterbi算法在數學上用前向迭代的方法完美地解決了隱馬爾可夫模型的解碼問題。但在實際應用時,該算法所需的計算量仍然很大。改進的算法思想是,裁剪掉那些不可能或者得分低的路徑。判斷得分低的路徑有幾種方式,一種簡單的方法為:該路徑與最優路徑的差值大于一定門限。
具體做法是:在每一幀識別處理完成后,找出累計得分最高的路徑,其得分為:
(7)
(8)
實際上,只有滿足:PT(j)>Vb的路徑才需要保留到下一幀的處理中去。
而在實際應用中發現,用一個固定的常數b來求取門限的方法是不現實的。解決方法是動態生成調整門限值,在數學上通常采用黃金分割點的方法來設定這個門限:經比較得到當前幀所有路徑中得分最高和最低的路徑,記:
(9)
(10)
則
(11)
以上給出了HMM模型參數訓練的方法,但是在實際求解時,還有許多具體問題需要注意解決。解決這些問題的方法將在下面進行具體討論和說明。
(1)下溢問題及歸一化處理

(2)初值估計
目前關于如何估計參數的初值問題還沒有統一、直接的理論解決方案。對于初始狀態概率矢量π和狀態轉移概率矩陣A,初值比較容易確定。由迭代算法可知如果任何一個參數的初值為0,那么在以后的迭代運算中則恒為0。因此它們的處置一般設置為均勻分布或非0的隨機值。
對于B而言,如果是離散HMM,可以采取均勻分布或隨機設置的方法。如果是連續HMM,則采用分段K均值的方法。
2.1 原Viterbi算法識別結果
由于本文采用的samples.mat文件保留了語音的全部特征,沒有對其中的波形文件進行壓縮變換等操作,致使文件稍大。因此模型的訓練過程一般需要半個小時左右。在識別過程,將保存語音“零”到“九”的100個波形文件(其中每個語音10個樣本)分別命名為“0.wav”到“9.wav”,識別結果中0-7、2-8是易混淆數字對。此系統的正確識別率為93%,識別時間43.947 1 s。
2.2 改進的Viterbi算法識別結果
使用MATLAB R2007a對此算法進行仿真實驗,證明在相同語音識別系統的環境下,改進的Viterbi算法可以更有效地提高計算速度,且識別差錯率沒有明顯的提高。改進Viterbi算法后系統的正確識別率為92%,識別時間為41.465 s。
反復進行多次實驗。本文選取了20次實驗的數據進行比較,得到表1所示結果。

表1 原Viterbi算法與改進后的Viterbi算法實驗比較結果
由表1可以看出,在相同的語音識別環境下,使用改進后的Viterbi算法的正確識別率與經典的Viterbi算法很接近,但速度更快了。這說明改進的算法是有意義的。
接下來采取優化方法對前后響應時間進行仿真實驗,對所獲取的結果進行采集,并且在仿真實驗中將其中的詞匯對象的容量設定為100,對上述的詞匯對象進行語音識別處理,并且將其中的響應時間進行記錄和對比,其結果如圖1所示。

圖1 系統識別時采用優化與未優化的Viterbi算法的響應時間對比
在上述關于優化前后的響應時間對比結果中可以看到,在優化前,所需要花費的響應時間平均為240.8 ms。經過算法的優化之后,其性能得到一定程度的提高,所需要的響應時間得到降低,其平均的響應時間為157.4 ms,經過優化之后,在響應時間方面其性能提升了34.6%。使用MATLAB R2007a對此算法進行仿真實驗,證明在相同語音識別系統的環境下,改進的Viterbi算法可以更有效地提高計算速度,且識別差錯率沒有明顯的提高。
本文提出了一個改進算法的漢語數碼語音識別(MDSR)系統。MDSR系統使用美爾倒譜系數MFCC作為主要的語音特征參數,同時對應用于HMM模型語音識別系統中的動態規劃算法Viterbi進行了改進。改進的算法減少了原Viterbi算法中的冗余狀態,同時保證差錯率無明顯提高。
[1] 孫玲.漢語數字語音識別技術與實現方法研究[J].華中科技大學學報,2015,47(11):44-52.
[2] 朱璇,李虎生,劉加,等.高性能漢語數碼串快速識別算法的研究[J].微型機與應用,2014,38(7):845-850
[3] 劉潤生.改進漢語數碼語音識別中的語音特征提取性能[J].計算機系統應用,2015,28(11): 1-6.
[4] 董明,劉加,劉潤生.高性能漢語數碼語音識別芯片系統[J].清華大學學報(自然科學版),2013,53(6):1257-1260.
[5] 陸嘩.基于隱馬爾可夫算法的上海城市路名語音識別系統方法研究[J].華東師范大學學報,2015,39(11):36-47.
[6] 李虎生,劉加,劉潤生.高性能漢語數碼語音識別算法[J].清華大學學報(自然科學版),2013,47(10): 32-34.
[7] 侯周國.基于HMM的漢語數字語音識別系統研究[J].湖南師范大學學報,2015,37(11):39-61.
[8] 廖大強,印鑒,鄔依林,等.基于興趣傳播的用戶相似性計算方法研究[J].計算機應用與軟件,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
廣東省大數據分析與處理重點實驗室開放基金項目(2017013)
TP18; TP912.34
A
10.19358/j.issn.1674- 7720.2017.14.004
陳潔群.基于Viterbi改進算法的漢語數碼語音識別系統[J].微型機與應用,2017,36(14):11-13.
2017-02-16)
陳潔群(1981-),女,本科,講師,主要研究方向:計算機系統結構、軟件工程。