《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計(jì)應(yīng)用 > 語音識(shí)別中DTW改進(jìn)算法的研究
語音識(shí)別中DTW改進(jìn)算法的研究
來源:微型機(jī)與應(yīng)用2011年第3期
胡金平,陳若珠,李戰(zhàn)明
(蘭州理工大學(xué) 電氣工程與信息工程學(xué)院,甘肅 蘭州 730050)
摘要: 動(dòng)態(tài)時(shí)間規(guī)整DTW是語音識(shí)別中的一種經(jīng)典算法。對(duì)此算法提出了一種改進(jìn)的端點(diǎn)檢測(cè)算法,特征提取采用了Mel頻率倒譜系數(shù)MFCC,并采用計(jì)算量相對(duì)較小的改進(jìn)的動(dòng)態(tài)時(shí)間規(guī)整算法實(shí)現(xiàn)語音參數(shù)模板匹配,能夠?qū)崿F(xiàn)孤立詞、特定人、小詞匯量的語音識(shí)別,并用Matlab進(jìn)行了算法仿真。試驗(yàn)結(jié)果表明,改進(jìn)后的算法能夠有效地提高系統(tǒng)對(duì)語音的識(shí)別率。
Abstract:
Key words :

摘  要: 動(dòng)態(tài)時(shí)間規(guī)整DTW是語音識(shí)別中的一種經(jīng)典算法。對(duì)此算法提出了一種改進(jìn)的端點(diǎn)檢測(cè)算法,特征提取采用了Mel頻率倒譜系數(shù)MFCC,并采用計(jì)算量相對(duì)較小的改進(jìn)的動(dòng)態(tài)時(shí)間規(guī)整算法實(shí)現(xiàn)語音參數(shù)模板匹配,能夠?qū)崿F(xiàn)孤立詞、特定人、小詞匯量的語音識(shí)別,并用Matlab進(jìn)行了算法仿真。試驗(yàn)結(jié)果表明,改進(jìn)后的算法能夠有效地提高系統(tǒng)對(duì)語音的識(shí)別率。
關(guān)鍵詞: 語音識(shí)別;端點(diǎn)檢測(cè);Mel倒譜參數(shù);動(dòng)態(tài)時(shí)間規(guī)整

 在孤立詞語音識(shí)別中,最為簡(jiǎn)單有效的方法是采用動(dòng)態(tài)時(shí)間規(guī)整DTW(Dynamic Time Warping)算法,該算法基于動(dòng)態(tài)規(guī)劃(DP)的思想,解決了發(fā)音長短不一的模板匹配問題,是語音識(shí)別中出現(xiàn)較早、較為經(jīng)典的一種算法。DTW是把時(shí)間規(guī)整和距離測(cè)度計(jì)算結(jié)合起來的一種非線性規(guī)整技術(shù),算法較為簡(jiǎn)潔,正確率也較高,在語音識(shí)別系統(tǒng)中有較廣泛的應(yīng)用。
 本文對(duì)DTW算法提出了一種改進(jìn)的端點(diǎn)檢測(cè)算法,對(duì)提高系統(tǒng)的識(shí)別率有很好的實(shí)用價(jià)值[1]。
1 語音識(shí)別系統(tǒng)與DTW算法原理    
 本質(zhì)上講,語音識(shí)別就是語音信號(hào)模式識(shí)別[2],它由訓(xùn)練和識(shí)別兩個(gè)過程完成。訓(xùn)練過程是從某一說話人大量語音信號(hào)中提取出該說話人的語音特征,并形成參考模式。識(shí)別過程是從待識(shí)語音中提取特征形成待識(shí)模式,與參考模式進(jìn)行模式匹配、比較和判決,從而得出識(shí)別結(jié)果。本系統(tǒng)的結(jié)構(gòu)如圖1所示。

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


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

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

2.2 語音識(shí)別的DTW高效算法
 通常,路徑函數(shù)Φ(ni)被限制在一個(gè)平行四邊形內(nèi),平行四邊形的一條邊斜率為2,另一條邊的斜率為1/2。路徑函數(shù)的起點(diǎn)為(1,1),終止點(diǎn)為(N,M)。Φ(ni)的斜率為0、1或2。這是一種簡(jiǎn)單的路徑限制,如圖5所示。

   本文的目的是尋找一個(gè)路徑函數(shù),在平行四邊形內(nèi)由點(diǎn)(1,1)到點(diǎn)(N,M)具有最小代價(jià)函數(shù)。由于對(duì)路徑進(jìn)行了限制,在匹配過程中許多格點(diǎn)實(shí)際上是到達(dá)不了的,因此,平行四邊形之外的格點(diǎn)對(duì)應(yīng)的幀匹配距離是不需要計(jì)算的。另外,也沒有必要保存所有的幀匹配距離矩陣和累積距離矩陣,因?yàn)槊恳涣懈鞲顸c(diǎn)上的匹配計(jì)算只用到了前一列的3個(gè)網(wǎng)格。利用這兩個(gè)特點(diǎn)可以減少計(jì)算量和存儲(chǔ)空間的需求。

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

 本文研究了語音識(shí)別DTW算法和理論,在應(yīng)用中對(duì)雙門限端點(diǎn)檢測(cè)算法作了延長可容忍靜音的改進(jìn),在說話語音識(shí)別算法上對(duì)DTW進(jìn)行了改進(jìn)和設(shè)計(jì),實(shí)驗(yàn)結(jié)果表明,該算法可以有效地提高系統(tǒng)的識(shí)別率。
參考文獻(xiàn)
[1]  何強(qiáng),何英.MATLAB 擴(kuò)展編程 [M].北京:清華大學(xué)出 版社,2002.
[2] CHANWOO K, KWANG D S. Robust DTW-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] 劉金偉,黃樟欽,侯義斌.基于片上系統(tǒng)的孤立詞語音識(shí)別算法設(shè)計(jì)[J]計(jì)算機(jī)工程,2007,33(13):25-27.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。