胡金平,陳若珠,李戰明
(蘭州理工大學 電氣工程與信息工程學院,甘肅 蘭州 730050)
語音識別中DTW改進算法的研究
胡金平,陳若珠,李戰明
(蘭州理工大學 電氣工程與信息工程學院,甘肅 蘭州 730050)
動態時間規整DTW是語音識別中的一種經典算法。對此算法提出了一種改進的端點檢測算法,特征提取采用了Mel頻率倒譜系數MFCC,并采用計算量相對較小的改進的動態時間規整算法實現語音參數模板匹配,能夠實現孤立詞、特定人、小詞匯量的語音識別,并用Matlab進行了算法仿真。試驗結果表明,改進后的算法能夠有效地提高系統對語音的識別率。
語音識別;端點檢測;Mel倒譜參數;動態時間規整
在孤立詞語音識別中,最為簡單有效的方法是采用動態時間規整 DTW(Dynamic Time Warping)算法,該算法基于動態規劃(DP)的思想,解決了發音長短不一的模板匹配問題,是語音識別中出現較早、較為經典的一種算法。DTW是把時間規整和距離測度計算結合起來的一種非線性規整技術,算法較為簡潔,正確率也較高,在語音識別系統中有較廣泛的應用。
本文對DTW算法提出了一種改進的端點檢測算法,對提高系統的識別率有很好的實用價值[1]。
本質上講,語音識別就是語音信號模式識別[2],它由訓練和識別兩個過程完成。訓練過程是從某一說話人大量語音信號中提取出該說話人的語音特征,并形成參考模式。識別過程是從待識語音中提取特征形成待識模式,與參考模式進行模式匹配、比較和判決,從而得出識別結果。本系統的結構如圖1所示。

假設測試和參考模板分別用T和R表示,它們之間的相似度用其之間的距離D[T,R]來度量,距離越小相似度越高[3]。為了計算這一失真距離,要從T、R中各個對應幀之間的距離算起。設n、m分別是T、R中任意選擇的幀號,d[T(n),R(m)]表示這兩幀特征矢量之間的距離(在DTW算法中通常采用歐式距離)。
如圖2所示,橫軸上標出的是測試模板T的各個幀號n=1~N,縱軸上是參考模板 R的各個幀號m=1~M,N≠M。網格中的每一個交叉點(n,m)表示測試模式中某一幀與訓練模式中某一幀的交匯點。DP算法就是尋找一條通過此網格中若干個格點的路徑。路徑不是隨意選擇的,首先任何一種語音的發音快慢都有可能變化,但是其各部分的先后次序不可能改變,因此所選的路徑必定是從左下角出發,在右上角結束。

圖2 DTW算法搜索路徑
假 設 路 徑 通 過 的 格 點 依 次 為 :(n1,m1),… ,(ni,mi),…,(nN,mM),其中(n1,m1)=(1,1),(nN,mN)=(N,M)。 路徑可以用函數 mi=Φ(ni)來描述,其中 ni=i,i=1,2,…,N,Φ(1)=1,Φ(N)=M。為了使路徑不至于過分傾斜,約束斜率設在0.5~2 的范圍內。如果路徑已通過了格點(ni-1,mi-1),那么下一個通過的格點(ni,mi)只可能是(ni-1+1,mi-1+2)、(ni-1+1,mi-1+1)和(ni-1+1,mi-1)。用 η 表示這種約束條件,求最佳路徑的問題則可以歸結為滿足約束條件η時,求最佳路徑函數mi=(ni),使得沿路徑的積累距離達到最小,即:

從(n1,m1)=(1,1)開 始 往 下 搜 索(n2,m2),再 搜 索(n3,m3)......,對每一個(ni,mi)都存儲相應的前一格點(ni-1,mi-1)及相應的幀匹配距離 d[ni,mi]。 搜索到(nN,mM)時,只保留一條最佳路徑。由于DTW不斷地計算測試矢量與模板矢量的距離以尋找最優的匹配路徑,所以得到的兩個矢量匹配是累計距離最小的路徑函數,這保證了它們之間存在最大的聲學相似特性。
一個好的端點檢測算法可以在一定程度上提高系統的識別率。輸入的語音信號x(l),加窗分幀處理后得到的第n幀語音信號為xn(m)(w(m)為漢明窗),則:

其中,m=0~N-1(N 為幀長);n=0,T,2T(T 為幀移)。
第n幀語音信號xn(m)的短時能量En為:

一幀信號中波形穿越零電平的次數稱為過零率。定義xn(m)的短時過零率Zn為:

式中,sgn[]是符號函數。
為了提高端點檢測的精度,采用短時能量和過零率進行端點檢測[4]。語音采樣頻率為8kHz,量化精度為16 bit。數字PCM碼首先經過預加重濾波器H(z)=1-0.95z-1,再進行分幀和加窗處理。在實驗中發現,雙門限端點檢測算法對于兩個漢字和三個漢字的語音命令端點檢測效果不好。以語音“你好”為例,如圖3語音波形圖中,端點檢測只能檢測到第1個字。

如果語音命令中兩個字的間隔過長,使用雙門限端點檢測法會發生只檢測到第一個字的情況,從而可能造成語音匹配錯誤。為避免該錯誤,把可容忍的靜音區間擴大到15幀,如15幀內一直沒有能量和過零率超過最低門限,則認為語音結束;如發現仍然有話音,則把能量和過零率計算在內[5]。
整個語音信號的端點檢測流程設計為四個階段:靜音段、過渡段、語音段和語音結束。在靜音段,如果能量或過零率超越低門限,就開始標記起始點,進入過渡段。在過渡段,由于參數的數值較小,不能確信是否處于語音段,因此只要兩個參數的數值都回落到低門限以下,就將當前狀態恢復到靜音狀態;而如果在過渡段中兩個參數中的任何一個超過了高門限,就可以確信進入語音段。在語音段,如果兩個參數的數值降低到低門限以下,且一直持續15幀,則語音進入停止;如果兩個參數的數值降低到低門限以下,但并沒有持續到15幀,后續又有語音超越過低門限,則認為還沒有結束;如果檢測出的這段語音總長度小于可接受的最小的語音幀數(設為15幀),則認為是一段噪音而放棄。
采用改進后的端點檢測算法,對單個漢字或多個漢字的語音命令均識別正常。圖4為語音“你好”的端點檢測圖。

通常,路徑函數Φ(ni)被限制在一個平行四邊形內,平行四邊形的一條邊斜率為2,另一條邊的斜率為1/2。路徑函數的起點為(1,1),終止點為(N,M)。 Φ(ni)的斜率為0、1或2。這是一種簡單的路徑限制,如圖5所示。

本文的目的是尋找一個路徑函數,在平行四邊形內由點(1,1)到點(N,M)具有最小代價函數。由于對路徑進行了限制,在匹配過程中許多格點實際上是到達不了的,因此,平行四邊形之外的格點對應的幀匹配距離是不需要計算的。另外,也沒有必要保存所有的幀匹配距離矩陣和累積距離矩陣,因為每一列各格點上的匹配計算只用到了前一列的3個網格。利用這兩個特點可以減少計算量和存儲空間的需求。
把實際的動態彎折分為三段:(1,Xa)、(Xa+1,Xb)和(Xb+1,N),其中:

由于 Xa、Xb取最相近的整數,由此得出對 M、N長度的限制條件:

當不滿足以上條件時,認為兩者差別實在太大,無法進行動態彎曲匹配。在X軸上的每一幀不再需要與Y軸上的每一幀進行比較,而只是與 Y軸上[ymin,ymax]間的幀進行比較。ymin、ymax的計算如下:

如果出現Xa>Xb的情況,此時彎折匹配的三段為(1,Xb)、(Xb+1,Xa)和(Xa+1,N)。 沿 X 軸上每前進一幀,雖然所要比較的Y軸上的幀數不同,但彎折特性是一樣的,累積距離的更新都是用下式實現:D(x,y)=d(x,y)+min[D(x-1,y),D(x-1,y-1),D(x-1,y-2)]
由于X軸上每前進一幀,只需要用到前一列的累積距離,所以只需要兩個列矢量D和d分別保存前一列的累積距離和計算當前列的累積距離,而不用保存整個距離矩陣,這樣可達到減少存儲量和存儲空間的目的。
本系統采用改進的端點檢測方法,采用MFCC(Mel Frequene Cepstrum Coeffiients)特征提取和DTW算法來實現語音識別。語音采樣頻率為8 kHz,16 bit量化精度,預加重系數a=0.95,語音每幀為 30 ms,240點為一幀,幀移為80,窗函數采用Hamming窗。采集5個女生,10個男生的數據。共分為兩組,第一組是對0~9十個數字的識別,第二組是對孤立詞的識別,試驗數據如表1所示。

表1 試驗數據
本文研究了語音識別DTW算法和理論,在應用中對雙門限端點檢測算法作了延長可容忍靜音的改進,在說話語音識別算法上對DTW進行了改進和設計,實驗結果表明,該算法可以有效地提高系統的識別率。
[1] 何強,何英.MATLAB 擴展編程[M].北京:清華大學出版社,2002.
[2]CHANWOO K,KWANG D S.RobustDTW-based recognition algorithm for hand-held consumer devices[J].IEEE Transactions on Consumer Electronics,2005,51(2):699-709.
[3]MIZUHARA Y,HAYASHI A,SUEMATSU N.Embedding of time series data by using dynamic time warping distances[J].Systems and Computers in Japan,2006,37(3):1-9.
[4]BDULLA A,CHOW W H,SIN D,G.Cross-words reference template for DTW-based speech recognition systems[C].Conference on Convergent Technologies for the Asia-Pacific Region,TENCON,2003,2003:1576-1579.
[5]劉金偉,黃樟欽,侯義斌.基于片上系統的孤立詞語音識別算法設計[J]計算機工程,2007,33(13):25-27.
Discussion of improved DTW algorithm in speech recognition
Hu Jinping,Chen Ruozhu,Li Zhanming
(College of Electric and Information Engineering,Lanzhou University of Science and Technology,Lanzhou 730050,China)
Dynamic time warping is a kind of classical programming in speech recognition.It adopts the improved endpoint detection algorithm and Mel frequence cepstrum coeffiients to catch speech characteristic parameters and introduces dynamic time wrapping arithmetic to realize speech pattern matching.It is proved that this article designs a small vocabulary,isolated word speech recognition system,arithmetic of speech recognize simulate with Matlab software,the results show that the modified algorithm can provide a better performance in the speech recognition rate.
speech recognition;endpoint detection;MFCC;DTW
TP391.42
A
1674-7720(2011)03-0030-03
2010-09-04)
陳若珠,女,1963年生,高級工程師,主要研究方向:語音識別,嵌入式。
胡金平,男,1985年生,碩士研究生,主要研究方向:語音識別,嵌入式研究。