胡金平,陳若珠,李戰(zhàn)明
(蘭州理工大學(xué) 電氣工程與信息工程學(xué)院,甘肅 蘭州 730050)
語(yǔ)音識(shí)別中DTW改進(jìn)算法的研究
胡金平,陳若珠,李戰(zhàn)明
(蘭州理工大學(xué) 電氣工程與信息工程學(xué)院,甘肅 蘭州 730050)
動(dòng)態(tài)時(shí)間規(guī)整DTW是語(yǔ)音識(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)語(yǔ)音參數(shù)模板匹配,能夠?qū)崿F(xiàn)孤立詞、特定人、小詞匯量的語(yǔ)音識(shí)別,并用Matlab進(jìn)行了算法仿真。試驗(yàn)結(jié)果表明,改進(jìn)后的算法能夠有效地提高系統(tǒng)對(duì)語(yǔ)音的識(shí)別率。
語(yǔ)音識(shí)別;端點(diǎn)檢測(cè);Mel倒譜參數(shù);動(dòng)態(tài)時(shí)間規(guī)整
在孤立詞語(yǔ)音識(shí)別中,最為簡(jiǎn)單有效的方法是采用動(dòng)態(tài)時(shí)間規(guī)整 DTW(Dynamic Time Warping)算法,該算法基于動(dòng)態(tài)規(guī)劃(DP)的思想,解決了發(fā)音長(zhǎng)短不一的模板匹配問(wèn)題,是語(yǔ)音識(shí)別中出現(xiàn)較早、較為經(jīng)典的一種算法。DTW是把時(shí)間規(guī)整和距離測(cè)度計(jì)算結(jié)合起來(lái)的一種非線性規(guī)整技術(shù),算法較為簡(jiǎn)潔,正確率也較高,在語(yǔ)音識(shí)別系統(tǒng)中有較廣泛的應(yīng)用。
本文對(duì)DTW算法提出了一種改進(jìn)的端點(diǎn)檢測(cè)算法,對(duì)提高系統(tǒng)的識(shí)別率有很好的實(shí)用價(jià)值[1]。
本質(zhì)上講,語(yǔ)音識(shí)別就是語(yǔ)音信號(hào)模式識(shí)別[2],它由訓(xùn)練和識(shí)別兩個(gè)過(guò)程完成。訓(xùn)練過(guò)程是從某一說(shuō)話人大量語(yǔ)音信號(hào)中提取出該說(shuō)話人的語(yǔ)音特征,并形成參考模式。識(shí)別過(guò)程是從待識(shí)語(yǔ)音中提取特征形成待識(shí)模式,與參考模式進(jìn)行模式匹配、比較和判決,從而得出識(shí)別結(jié)果。本系統(tǒng)的結(jié)構(gòu)如圖1所示。
假設(shè)測(cè)試和參考模板分別用T和R表示,它們之間的相似度用其之間的距離D[T,R]來(lái)度量,距離越小相似度越高[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(fèi)。網(wǎng)格中的每一個(gè)交叉點(diǎn)(n,m)表示測(cè)試模式中某一幀與訓(xùn)練模式中某一幀的交匯點(diǎn)。DP算法就是尋找一條通過(guò)此網(wǎng)格中若干個(gè)格點(diǎn)的路徑。路徑不是隨意選擇的,首先任何一種語(yǔ)音的發(fā)音快慢都有可能變化,但是其各部分的先后次序不可能改變,因此所選的路徑必定是從左下角出發(fā),在右上角結(jié)束。
圖2 DTW算法搜索路徑
假 設(shè) 路 徑 通 過(guò) 的 格 點(diǎn) 依 次 為 :(n1,m1),… ,(ni,mi),…,(nN,mM),其中(n1,m1)=(1,1),(nN,mN)=(N,M)。 路徑可以用函數(shù) mi=Φ(ni)來(lái)描述,其中 ni=i,i=1,2,…,N,Φ(1)=1,Φ(N)=M。為了使路徑不至于過(guò)分傾斜,約束斜率設(shè)在0.5~2 的范圍內(nèi)。如果路徑已通過(guò)了格點(diǎn)(ni-1,mi-1),那么下一個(gè)通過(guò)的格點(diǎn)(ni,mi)只可能是(ni-1+1,mi-1+2)、(ni-1+1,mi-1+1)和(ni-1+1,mi-1)。用 η 表示這種約束條件,求最佳路徑的問(wèn)題則可以歸結(jié)為滿足約束條件η時(shí),求最佳路徑函數(shù)mi=(ni),使得沿路徑的積累距離達(dá)到最小,即:
從(n1,m1)=(1,1)開(kāi) 始 往 下 搜 索(n2,m2),再 搜 索(n3,m3)......,對(duì)每一個(gè)(ni,mi)都存儲(chǔ)相應(yīng)的前一格點(diǎn)(ni-1,mi-1)及相應(yīng)的幀匹配距離 d[ni,mi]。 搜索到(nN,mM)時(shí),只保留一條最佳路徑。由于DTW不斷地計(jì)算測(cè)試矢量與模板矢量的距離以尋找最優(yōu)的匹配路徑,所以得到的兩個(gè)矢量匹配是累計(jì)距離最小的路徑函數(shù),這保證了它們之間存在最大的聲學(xué)相似特性。
一個(gè)好的端點(diǎn)檢測(cè)算法可以在一定程度上提高系統(tǒng)的識(shí)別率。輸入的語(yǔ)音信號(hào)x(l),加窗分幀處理后得到的第n幀語(yǔ)音信號(hào)為xn(m)(w(m)為漢明窗),則:
其中,m=0~N-1(N 為幀長(zhǎng));n=0,T,2T(T 為幀移)。
第n幀語(yǔ)音信號(hào)xn(m)的短時(shí)能量En為:
一幀信號(hào)中波形穿越零電平的次數(shù)稱為過(guò)零率。定義xn(m)的短時(shí)過(guò)零率Zn為:
式中,sgn[]是符號(hào)函數(shù)。
為了提高端點(diǎn)檢測(cè)的精度,采用短時(shí)能量和過(guò)零率進(jìn)行端點(diǎn)檢測(cè)[4]。語(yǔ)音采樣頻率為8kHz,量化精度為16 bit。數(shù)字PCM碼首先經(jīng)過(guò)預(yù)加重濾波器H(z)=1-0.95z-1,再進(jìn)行分幀和加窗處理。在實(shí)驗(yàn)中發(fā)現(xiàn),雙門(mén)限端點(diǎn)檢測(cè)算法對(duì)于兩個(gè)漢字和三個(gè)漢字的語(yǔ)音命令端點(diǎn)檢測(cè)效果不好。以語(yǔ)音“你好”為例,如圖3語(yǔ)音波形圖中,端點(diǎn)檢測(cè)只能檢測(cè)到第1個(gè)字。
如果語(yǔ)音命令中兩個(gè)字的間隔過(guò)長(zhǎng),使用雙門(mén)限端點(diǎn)檢測(cè)法會(huì)發(fā)生只檢測(cè)到第一個(gè)字的情況,從而可能造成語(yǔ)音匹配錯(cuò)誤。為避免該錯(cuò)誤,把可容忍的靜音區(qū)間擴(kuò)大到15幀,如15幀內(nèi)一直沒(méi)有能量和過(guò)零率超過(guò)最低門(mén)限,則認(rèn)為語(yǔ)音結(jié)束;如發(fā)現(xiàn)仍然有話音,則把能量和過(guò)零率計(jì)算在內(nèi)[5]。
整個(gè)語(yǔ)音信號(hào)的端點(diǎn)檢測(cè)流程設(shè)計(jì)為四個(gè)階段:靜音段、過(guò)渡段、語(yǔ)音段和語(yǔ)音結(jié)束。在靜音段,如果能量或過(guò)零率超越低門(mén)限,就開(kāi)始標(biāo)記起始點(diǎn),進(jìn)入過(guò)渡段。在過(guò)渡段,由于參數(shù)的數(shù)值較小,不能確信是否處于語(yǔ)音段,因此只要兩個(gè)參數(shù)的數(shù)值都回落到低門(mén)限以下,就將當(dāng)前狀態(tài)恢復(fù)到靜音狀態(tài);而如果在過(guò)渡段中兩個(gè)參數(shù)中的任何一個(gè)超過(guò)了高門(mén)限,就可以確信進(jìn)入語(yǔ)音段。在語(yǔ)音段,如果兩個(gè)參數(shù)的數(shù)值降低到低門(mén)限以下,且一直持續(xù)15幀,則語(yǔ)音進(jìn)入停止;如果兩個(gè)參數(shù)的數(shù)值降低到低門(mén)限以下,但并沒(méi)有持續(xù)到15幀,后續(xù)又有語(yǔ)音超越過(guò)低門(mén)限,則認(rèn)為還沒(méi)有結(jié)束;如果檢測(cè)出的這段語(yǔ)音總長(zhǎng)度小于可接受的最小的語(yǔ)音幀數(shù)(設(shè)為15幀),則認(rèn)為是一段噪音而放棄。
采用改進(jìn)后的端點(diǎn)檢測(cè)算法,對(duì)單個(gè)漢字或多個(gè)漢字的語(yǔ)音命令均識(shí)別正常。圖4為語(yǔ)音“你好”的端點(diǎn)檢測(cè)圖。
通常,路徑函數(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)行了限制,在匹配過(guò)程中許多格點(diǎn)實(shí)際上是到達(dá)不了的,因此,平行四邊形之外的格點(diǎn)對(duì)應(yīng)的幀匹配距離是不需要計(jì)算的。另外,也沒(méi)有必要保存所有的幀匹配距離矩陣和累積距離矩陣,因?yàn)槊恳涣懈鞲顸c(diǎn)上的匹配計(jì)算只用到了前一列的3個(gè)網(wǎng)格。利用這兩個(gè)特點(diǎn)可以減少計(jì)算量和存儲(chǔ)空間的需求。
把實(shí)際的動(dòng)態(tài)彎折分為三段:(1,Xa)、(Xa+1,Xb)和(Xb+1,N),其中:
由于 Xa、Xb取最相近的整數(shù),由此得出對(duì) M、N長(zhǎng)度的限制條件:
當(dāng)不滿足以上條件時(shí),認(rèn)為兩者差別實(shí)在太大,無(wú)法進(jìn)行動(dòng)態(tài)彎曲匹配。在X軸上的每一幀不再需要與Y軸上的每一幀進(jìn)行比較,而只是與 Y軸上[ymin,ymax]間的幀進(jìn)行比較。ymin、ymax的計(jì)算如下:
如果出現(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ǔ)空間的目的。
本系統(tǒng)采用改進(jìn)的端點(diǎn)檢測(cè)方法,采用MFCC(Mel Frequene Cepstrum Coeffiients)特征提取和DTW算法來(lái)實(shí)現(xiàn)語(yǔ)音識(shí)別。語(yǔ)音采樣頻率為8 kHz,16 bit量化精度,預(yù)加重系數(shù)a=0.95,語(yǔ)音每幀為 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所示。
表1 試驗(yàn)數(shù)據(jù)
本文研究了語(yǔ)音識(shí)別DTW算法和理論,在應(yīng)用中對(duì)雙門(mén)限端點(diǎn)檢測(cè)算法作了延長(zhǎng)可容忍靜音的改進(jìn),在說(shuō)話語(yǔ)音識(shí)別算法上對(duì)DTW進(jìn)行了改進(jìn)和設(shè)計(jì),實(shí)驗(yàn)結(jié)果表明,該算法可以有效地提高系統(tǒng)的識(shí)別率。
[1] 何強(qiáng),何英.MATLAB 擴(kuò)展編程[M].北京:清華大學(xué)出版社,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]劉金偉,黃樟欽,侯義斌.基于片上系統(tǒng)的孤立詞語(yǔ)音識(shí)別算法設(shè)計(jì)[J]計(jì)算機(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年生,高級(jí)工程師,主要研究方向:語(yǔ)音識(shí)別,嵌入式。
胡金平,男,1985年生,碩士研究生,主要研究方向:語(yǔ)音識(shí)別,嵌入式研究。
網(wǎng)絡(luò)安全與數(shù)據(jù)管理2011年3期