周炳良,鄧立新,洪民江
(南京郵電大學(xué) 通信與信息工程學(xué)院,江蘇 南京 210003)
語音識別即讓機(jī)器接收、識別和理解語音信號,能夠“聽懂”會話中的語音語義并執(zhí)行人類意圖。常用的識別方法包括動態(tài)時間規(guī)整(DTW)、隱馬爾可夫模型(HMM)和人工神經(jīng)網(wǎng)絡(luò)(ANN)等。在孤立詞語音識別中,動態(tài)時間規(guī)整是最簡單有效的方法。DTW算法基于動態(tài)規(guī)劃(DP)的思想,能夠較好地解決孤立詞識別時說話速度不均勻的難題。相較于傳統(tǒng)的語音線性伸縮匹配的方法,DTW方法有效提高了孤立詞語音識別系統(tǒng)的識別率,因此在特定場合下得到了較好的應(yīng)用。
近年來,為了提高孤立詞語音識別系統(tǒng)的效率,使其廣泛適用于市場和各類服務(wù)領(lǐng)域,科研人員提出了許多新的基于DTW的語音識別算法。
文獻(xiàn)[1]提出了基于音節(jié)個數(shù)的高效動態(tài)時間規(guī)整算法(SEDTW),該算法利用彝語語音信號音節(jié)個數(shù)從1個到7個不等的特點,預(yù)先檢測出彝語語音信號中的音節(jié)個數(shù),并將其只與含有相同音節(jié)個數(shù)的模板進(jìn)行最優(yōu)匹配,減少了系統(tǒng)的計算開銷,提高了系統(tǒng)的識別效率。但該算法利用雙門限檢測法分辨語音信號的各個音節(jié),對門限閾值精度要求很高,一旦閾值設(shè)置不準(zhǔn)確,系統(tǒng)識別效率將大幅降低,且該算法只適用于彝語語音信號識別,適用率較低。
文獻(xiàn)[2]提出了改善局部路徑限制的DTW算法,該算法改善了局部路徑節(jié)點前進(jìn)的范圍,有利于解決測試語音特征矢量與模板矢量均勻變化劇烈的匹配問題,加快了兩矢量匹配的過程。但該算法增加了系統(tǒng)局部路徑搜索的復(fù)雜度和內(nèi)存消耗,且不利于解決兩矢量均勻變化平緩的匹配過程。
文獻(xiàn)[3]提出了增設(shè)參考模板閾值的DTW算法,該算法在進(jìn)行測試語音特征矢量與模板矢量匹配時,一旦計算出部分失真度大于預(yù)先增設(shè)的模板閾值,將終止對該模板繼續(xù)運算,轉(zhuǎn)入對其他模板繼續(xù)匹配運算。由于是中途停止對模板的匹配運算,因此可以節(jié)省部分計算開銷,提高了系統(tǒng)的識別效率。該算法的識別效率優(yōu)于文獻(xiàn)[2]的算法,但是算法必須要為每一個模板找到一個合理的閾值,否則將無法減少系統(tǒng)的運算量,甚至大幅度降低系統(tǒng)的識別率。
在識別階段,傳統(tǒng)的DTW算法在測試語音特征矢量與所有參考模板矢量之間進(jìn)行的是全長度最優(yōu)路徑匹配,一旦系統(tǒng)的參考模板數(shù)量較大,系統(tǒng)的計算量和內(nèi)存消耗將加劇,從而嚴(yán)重影響識別系統(tǒng)的效率。針對上述問題,提出了一種加快DTW模板匹配的改進(jìn)算法:預(yù)先對提取得到的測試語音特征矢量進(jìn)行部分長度截取,并將得到的部分特征矢量與模板矢量進(jìn)行最優(yōu)路徑匹配,排除掉匹配度較小的部分模板。如此快速反復(fù)進(jìn)行語音部分匹配和模板排除,直至模板數(shù)量唯一。通過實驗對該算法的識別效率進(jìn)行了驗證。
DTW技術(shù)是一種把時間規(guī)整和距離測度計算結(jié)合起來的非線性規(guī)整技術(shù),通過不斷地計算測試語音特征矢量和模板特征矢量的距離來搜索兩者之間的最優(yōu)時間規(guī)整(最優(yōu)匹配路徑),保證它們之間存在最大的聲學(xué)相似特性。假設(shè)待測語音共有N幀矢量,參考模板共有M幀矢量,分別記為T和R,且N≠M,則動態(tài)時間規(guī)整就是要找一個時間規(guī)整函數(shù)m=w(n),將測試語音特征矢量的時間軸n非線性地映射到模板的時間軸m上,并使函數(shù)w滿足式(1):
(1)
其中,d[T(n),R(w(n))]是第n幀矢量T(n)和第m=w(n)幀模板矢量R(m)之間的距離測度;D是處于最優(yōu)時間規(guī)整情況下兩矢量的累積距離[4]。
實際上,DTW算法本質(zhì)就是搜索測試語音特征矢量與模板矢量的最優(yōu)匹配路徑并求出兩者之間最小累積距離D?,F(xiàn)實應(yīng)用中,由于說話人對同一語音的發(fā)音速率相差一般不超過2倍,為了滿足這一實際特性,搜索最優(yōu)匹配路徑時,應(yīng)該將最優(yōu)匹配路徑全局(任意節(jié)點與起點或止點的連線)限制在兩邊斜率分別為1/2和2的平行四邊形中[5-6],如圖1所示,且止點(N,M)滿足式(2):
(2)
圖1 最優(yōu)路徑全局限制示意圖
同時對其局部路徑(任意節(jié)點與前續(xù)節(jié)點的連線)也應(yīng)加以限制,確保搜索路徑中節(jié)點的前續(xù)節(jié)點在一定范圍內(nèi),典型的一種局部路徑限制方式[7-8]如圖2所示。
圖2 最優(yōu)路徑局部限制示意圖
為了找到滿足最小測度距離D的最優(yōu)匹配路徑,DTW算法采用逆序決策過程,即節(jié)點的前續(xù)節(jié)點決定該節(jié)點的最小累積距離。假設(shè)路徑的任意節(jié)點(x,y),搜尋出所有其可能的前續(xù)節(jié)點,并選擇其中累積距離最小節(jié)點作為前續(xù)節(jié)點,則到達(dá)該點路徑的最小累積距離計算公式為:
D(x,y)=d(T(x),R(y))+min{D(x-1,y),
D(x-1,y-1),D(x-1,y-2)}
(3)
式中節(jié)點滿足圖2的局部路徑限制方式,且測試語音特征矢量作為橫軸,模板矢量作為縱軸。這樣從起點(1,1)開始搜索路徑,利用式(2)反復(fù)遞推后續(xù)節(jié)點的最小累積距離,經(jīng)過N步后到止點(N,M)結(jié)束,即兩矢量全長度最優(yōu)路徑匹配,則D(N,M)為測試語音特征矢量與模板矢量的最小累積距離。
傳統(tǒng)孤立詞識別系統(tǒng)基于上述DTW算法,分別搜索出測試語音特征矢量與所有庫模板矢量的最優(yōu)匹配路徑并計算出兩者的最小累積距離D,然后選擇其中D最小的模板所表示的語音作為判別結(jié)果[8-9],具體算法流程如圖3所示。
圖3 傳統(tǒng)全長度匹配流程
由上一節(jié)知道,傳統(tǒng)孤立詞語音識別時,需要將測試語音特征矢量與所有的庫模板都進(jìn)行全長度最優(yōu)路徑匹配。如果孤立詞語音庫模板量較大,系統(tǒng)的計算量將急劇上升,嚴(yán)重影響系統(tǒng)的識別效率。這個現(xiàn)象在一詞多模板的非特定人識別系統(tǒng)中尤其突出。
假設(shè)測試語音特征矢量表示的是實際孤立詞V,則與模板庫中其他孤立詞模板相比,它的起始部分長度與模板庫中同樣表示孤立詞V的模板的起始部分長度之間匹配失真度相對較小。反之,如果將測試語音特征矢量V的起始部分長度與所有庫模板矢量進(jìn)行最優(yōu)路徑匹配,那么只需要保留部分匹配失真度相對較小的庫模板矢量就可以將表示孤立詞V的模板矢量保留下來。由于匹配過程中只需要測試語音特征矢量的起始部分長度進(jìn)行匹配運算,便可以排除匹配失真度較大的部分模板,因此系統(tǒng)減少了部分計算量。
綜合以上想法,提出了測試語音特征矢量與庫模板矢量部分長度最優(yōu)路徑匹配的DTW算法,具體思路如下:先截取提取得到的測試語音特征矢量的起始部分長度(百分比),并從起點(1,1)開始搜索它們與各個模板矢量的最優(yōu)匹配路徑,采用松弛端點檢測[10]的方法找到最優(yōu)匹配路徑的止點并求出各自的最小累積距離D,即找出各模板矢量與截取語音特征矢量匹配度最大的起始部分長度并求出相應(yīng)的D,然后選擇D相對較小的部分模板進(jìn)行保留,排除D相對較大的模板。如此循環(huán),采用這種方法對剩余的模板進(jìn)行部分長度匹配和排除,直至剩余模板數(shù)量唯一,該算法流程如圖4所示。
圖4 部分長度匹配流程
改進(jìn)的DTW算法中測試語音特征矢量的截取方式和模板矢量保留方式需要預(yù)先設(shè)置,具體方法如下:每次截取的語音特征矢量都從起點開始,長度逐次增加。由于每次截取的測試語音特征矢量表示的語音可能與多個模板矢量起始部分表示的語音相同,所以每次部分長度匹配后保留的剩余模板一般大于1個(最后一次除外)。假設(shè)系統(tǒng)中有2個庫模板矢量,分別表示語音“三”和“四”,它們的語音在起始端有相同的部分:‘s’。如果截取的語音特征矢量表示的語音在‘s’范圍內(nèi),一旦系統(tǒng)只保留一個模板,就有可能錯判。為了保證部分長度匹配算法的識別率,每次部分長度匹配后采用如下方法估計保留模板個數(shù):假設(shè)庫模板總數(shù)為l,截取所有庫模板矢量的起始部分,截取長度(百分比)與此次截取測試語音長度(百分比)一致,并將截取的各個模板矢量的起始部分表示為語音,則語音總數(shù)為l。選擇其中一個截取語音,統(tǒng)計出庫模板表示的語音中首部包含該語音的總數(shù),記為該語音與庫模板語音的相似數(shù)c1。同理,分別為其他截取語音統(tǒng)計出相似數(shù),記為c2c3…cl。比較所有相似數(shù)并取其中最大值cmax,則cmax與l的比值就是該次部分長度匹配后保留模板的百分比。
改進(jìn)DTW算法的步驟如下所述:
(1)將訓(xùn)練模板存入內(nèi)存,總數(shù)記為c,同時進(jìn)行識別階段預(yù)設(shè)工作:設(shè)置測試語音特征矢量的截取方式,包括截取次數(shù)m和各次截取長度a1,a2,…,am(百分比);設(shè)置各次最優(yōu)路徑匹配后訓(xùn)練模板的保留個數(shù)b1,b2,…,bm-1(百分比且最后一次取一個模板,bm可忽略);
(2)輸入測試語音信號,經(jīng)過語音信號預(yù)處理(預(yù)加重、分幀加窗和端點檢測)之后,提取出測試語音特征矢量;
(3)利用式(2)的條件排除部分訓(xùn)練模板,保留滿足條件的訓(xùn)練模板;
(4)設(shè)某一保留訓(xùn)練模板矢量與測試語音特征矢量的幀匹配失真度矩陣為d和累積失真度矩陣為D=Realmax,其中d和D的大小均為N*M且橫向表示待測語音幀,縱向表示訓(xùn)練模板幀。計算該訓(xùn)練模板矢量第一幀與測試語音特征矢量第一幀的失真度(歐氏距離),并保存到d(1,1)和D(1,1)中。同理,計算所有保留訓(xùn)練模板矢量第一幀與測試語音特征矢量第一幀的失真度(歐氏距離),并分別保存到各自的幀失真度矩陣與累積失真度矩陣相同的位置;
(6)計算搜索到的訓(xùn)練模板矢量幀與待測語音s~f幀之間的幀失真度(歐氏距離),并利用式(3)遞推相交幀的累積失真度,分別保存到d與D相應(yīng)的位置;
(7)找出累積失真度矩陣f列中最小的值,記為該訓(xùn)練模板矢量的最優(yōu)部分匹配失真度Dmin;
(8)重復(fù)步驟5~7,計算并找出所有保留訓(xùn)練模板矢量的最優(yōu)部分匹配失真度Dmin。將保留的訓(xùn)練模板矢量按照各自的Dmin從小到大排序,并保留前c*bn(四舍五入取整)個模板;
(9)判決c*bn1?若是,則轉(zhuǎn)入步驟10執(zhí)行;若否,則轉(zhuǎn)入步驟11執(zhí)行;
(10)判決n (11)將步驟8中已排序的訓(xùn)練模板矢量中的第一個訓(xùn)練模板矢量表示的語音判決為測試語音,結(jié)束。 假設(shè)孤立詞語音識別系統(tǒng)中有N個模板,平均測試語音提取參數(shù)的時間為t0,識別時間為t1,則全長度匹配需要的時間為N*(t0+t1)。在保證系統(tǒng)識別率基本不變的情況下,部分長度匹配需要的時間粗略計算如式(4): (4) 其中,a1,a2,…,am逐次增加且b1,b2,…,bm-1逐次減小。由式(4)可得,T的值始終小于N*(t0+t1)。當(dāng)a1與b1取值很小時,系統(tǒng)采用部分長度匹配算法所需的識別時間接近N*(t0+t1*(a1+b1-a1*b1)),遠(yuǎn)小于采用全長度匹配算法所需的時間N*(t0+t1)。 為了檢驗上述部分長度匹配DTW算法在降低系統(tǒng)識別時間方面的有效性,進(jìn)行了兩組仿真實驗:比較部分長度匹配DTW算法與傳統(tǒng)全長度匹配DTW算法,以及部分長度匹配DTW算法與文獻(xiàn)[3]中增設(shè)參考模板閾值的DTW算法。實驗中語音數(shù)據(jù)采自于28位男生,12位女生,內(nèi)容包括0~9十個漢語發(fā)音的數(shù)字。其中每個人對各個數(shù)字重復(fù)發(fā)音2次,總共800組數(shù)據(jù)。由于實驗數(shù)據(jù)來自于非特定人,實驗采用聚類的方法訓(xùn)練模板[11-13],即對每個數(shù)字所有人的第一遍發(fā)音(40組數(shù)據(jù))進(jìn)行聚類訓(xùn)練出3個或6個模板,10個數(shù)字共30個或60個模板。其中語音參數(shù)采用36維Mel系數(shù)(12維Mel系數(shù)+12維一階差分參數(shù)+12維二階差分參數(shù))[14-17]。語音采樣頻率為16 kHz,預(yù)加重系數(shù)μ=0.937 5。采用漢明窗進(jìn)行分幀,幀長256個樣點,幀移80個樣點。 實驗中部分長度匹配DTW算法采用將測試語音特征矢量依次截取3部分(10%,70%,100%)的方式進(jìn)行匹配,同時每次匹配后保留部分模板(20%,10%)作為下次部分匹配的參考模板,截取過程中矢量長度或模板個數(shù)的小數(shù)部分四舍五入取整。仿真結(jié)果如表1和表2所示。 從表1中的數(shù)據(jù)可以看出,在保證系統(tǒng)識別率基本不變的情況下,采用部分長度匹配算法的識別時間大約是傳統(tǒng)全長度匹配DTW算法的1/3,大幅降低了孤立詞語音識別系統(tǒng)的識別時間。 從表2可以看出,相較于采用增設(shè)參考模板閾值的DTW算法,采用部分長度匹配DTW算法的識別時間也有明顯降低。而且采用部分長度匹配DTW算法避免了增設(shè)參考模板閾值的DTW算法額外設(shè)立合理閾值的問題,減少了識別系統(tǒng)的額外工作量。 表1 部分長度匹配算法與傳統(tǒng)DTW算法的識別性能比較 表2 部分長度匹配算法與文獻(xiàn)[3]中DTW算法的識別性能比較 為了提高孤立詞語音識別系統(tǒng)的識別效率,提出了測試語音特征矢量與模板矢量部分長度最優(yōu)路徑匹配的算法。在算法中,每一次進(jìn)行部分長度匹配時只需截取一段測試語音特征矢量與剩余的模板矢量進(jìn)行匹配,便可以大量排除匹配失真度較大的模板。仿真結(jié)果表明,與傳統(tǒng)DTW算法相比,該算法在保證系統(tǒng)識別精度基本不變的情況下,減少了系統(tǒng)的工作運算量,有效降低了系統(tǒng)的識別時間。 參考文獻(xiàn): [1] 余 煒,周 婭,萬代立,等.基于改進(jìn)DTW的彝語孤立詞識別研究[J].昆明理工大學(xué)學(xué)報:自然科學(xué)版,2014,39(5):47-53. [2] ZHANG Z,TAVENARD R,BAILLY A,et al.Dynamic time warping under limited warping path length[J].Information Sciences,2017,393:91-107. [3] 張寶峰.基于DSP的語音識別算法研究與實現(xiàn)[D].蘭州:蘭州理工大學(xué),2011. [4] 陳泉坤.基于DSP5509A的DTW語音識別系統(tǒng)設(shè)計與實現(xiàn)[D].成都:電子科技大學(xué),2012. [5] 吳佳龍,李 坤,劉 中.孤立詞語音識別算法研究與設(shè)計[J].電子科技,2015,28(2):22-25. [6] 陳立萬.基于語音識別系統(tǒng)中DTW算法改進(jìn)技術(shù)研究[J].微計算機(jī)信息,2006,22(2-2):267-269. [7] 朱淑琴,趙 瑛.DTW語音識別算法研究與分析[J].微計算機(jī)信息,2012,28(5):150-151. [8] 廖振東.基于DTW的孤立詞語音識別系統(tǒng)研究[D].昆明:云南大學(xué),2015. [9] 蘇 昊,王 民,李 寶.一種改進(jìn)的DTW語音識別系統(tǒng)[J].中國西部科技,2011,10(1):38-39. [10] 文 翰,黃國順.語音識別中DTW算法改進(jìn)研究[J].微計算機(jī)信息,2010,26(7-1):195-197. [11] ABDULLA W H,CHOW D,SIN G.Cross-words reference template for DTW-based speech recognition systems[C]//Tencon conference on convergent technologies for the Asia-pacific Region.[s.l.]:[s.n.],2003:1576-1579. [12] 封伶剛,王秀萍.一種新的基于LBG和DTW的模板訓(xùn)練算法[J].計算機(jī)工程與應(yīng)用,2005,41(26):85-88. [13] 李 燕,陶定元,林 樂.基于DTW模型補(bǔ)償?shù)膫窝b語音說話人識別研究[J].計算機(jī)技術(shù)與發(fā)展,2017,27(1):93-96. [14] 甄 斌,吳璽宏,劉志敏,等.語音識別和說話人識別中各倒譜分量的相對重要性[J].北京大學(xué)學(xué)報:自然科學(xué)版,2001,37(3):371-378. [15] DHINGRA S D,NIJHAWAN G,PANDIT P.Isolated speech recognition using MFCC And DTW[J].International Journal of Advanced Research in Electrical Electronics & Instrumentation Engineering,2013,2(8):4085-4092. [16] LIMKARA M,RAOB R,SAGVEKARC V.Isolated digit recognition using MFCC And DTW[J].International Journal of Advanced Electrical & Electronics Engineering,2012,1(1):59-64. [17] MUDA L,BEGAM M,ELAMVAZUTHI I.Voice recognition algorithms using mel frequency cepstral coefficient (MFCC) and dynamic time warping (DTW) techniques[J].Journal of Computing,2010,2(3):138-143.2.4 改進(jìn)算法的識別性能評估
3 實驗結(jié)果及分析
4 結(jié)束語