摘 要: 引入幀跳躍的概念,,從而改進了傳統(tǒng)的端點檢測算法和DTW算法,,實現(xiàn)了一個改進的實時語音識別系統(tǒng),并在計算機上進行了模擬仿真,。實驗結(jié)果表明,,改進后的算法能有效提高孤立詞的識別速度和識別精度。
關(guān)鍵詞: 語音識別,;動態(tài)時間規(guī)整,;端點檢測
通過語言進行交流是人類最基本也是最廣泛使用的交流方式。語音識別是指讓機器通過識別和理解過程把人類的語言信號轉(zhuǎn)變?yōu)橄鄳?yīng)的文本或命令的技術(shù)[1],,其本質(zhì)上是一種模式識別的過程,,主要包含特征提取技術(shù)、模型訓(xùn)練技術(shù)及模式匹配技術(shù)3個方面,。其基本思路是提取語音信號中能代表語音內(nèi)容的特征向量,,訓(xùn)練過程通過特定算法建立模板庫,識別過程按照一定的規(guī)則將提取出的特征與模板庫中的參考模板相對比得出識別結(jié)果,。
語音識別系統(tǒng)一般包含預(yù)處理模塊,、特征提取模塊、訓(xùn)練模塊和識別模塊[2],。其中預(yù)處理模塊實現(xiàn)讀入語音信號并對信號進行濾波,、預(yù)加重,、分幀、加窗和端點檢測等功能,;特征提取模塊則是對針對每一幀進行運算,,提取出每一幀的時域參數(shù)或者頻域參數(shù);訓(xùn)練模塊是將帶識別語音模板通過計算得到模板向量并存入數(shù)據(jù)庫,;識別模塊是將待識別語音序列同模板庫進行比較并得出識別結(jié)果,,識別算法多用的是動態(tài)時間規(guī)整DTW(Dynamic Time Warping)算法。DTW是把時間規(guī)整和距離測度計算結(jié)合起來的一種非線性規(guī)整技術(shù),,它盡管對大詞匯量,、連續(xù)語音和非特定人語音識別效果較差,但對孤立詞語音識別和較為簡潔,,正確識別率也較高,,因此,DTW算法在孤立詞語音識別系統(tǒng)有較廣泛的應(yīng)用[3],,因而對其進一步地研究以提高其正確識別速度具有很強的實用價值,。一個典型的孤立詞語音識別系統(tǒng)流程圖如圖1所示。
識別精度和識別速度是評價孤立詞語音識別系統(tǒng)性能的兩個最主要的參數(shù),,而端點檢測和模板匹配算法是影響這兩個參數(shù)的最主要的原因,。端點檢測的目的是從包含語音的一般信號中確定出語音的起點以及終點,有效的端點檢測不僅能使處理時間最小,,而且能排除無聲段的噪聲干擾,,從而使識別系統(tǒng)具有良好的識別性能。模板匹配的目的是匹配輸入向量和模板向量并得到結(jié)果,,它是整個系統(tǒng)中最耗時,、耗資源的一個環(huán)節(jié),因此模板匹配算法的性能好壞將直接影響整個系統(tǒng)的性能優(yōu)劣,。
本文就提高孤立詞語音識別系統(tǒng)的識別精度和識別速度展開討論,,提出了一種改進的端點檢測方法和改進的DTW算法,通過實驗證明將兩種算法結(jié)合起來能提高整個系統(tǒng)的識別精度和識別速度,,取得了預(yù)期的效果,。
1 改進語音識別算法
1.1 端點檢測
1.1.1 傳統(tǒng)端點檢測
傳統(tǒng)端點檢測算法采用短時時域分析方法,通過短時能量和短時過零率來判斷端點位置,。短時能量是基于幀進行計算的,,如式(1)所示。短時過零率指一幀語音信號中語音波形通過零電平的次數(shù),,其定義如式(2)所示,。對于連續(xù)的語音信號,過零是指時域波形穿過時間軸,;對于離散信號,,相鄰的取樣值改變符號則稱為過零,。
端點檢測主要使用的方法有以下兩種。
(1)雙門限端點檢測[4]:即分別為短時能量和短時過零率各設(shè)置一個高門限和一個低門限,,低門限被超過基本值可以確定進入了過渡段,;高門限用于確定語音真正的起始端點,僅高門限被成功檢測未必就是語音的起始端點,,也有可能是短時的噪音,,但是噪聲一般持續(xù)時間比較短,可以用持續(xù)時間來決定是噪聲還是語音,。
(2)動態(tài)窗長語音端點檢測[5]:語音端點檢測時,,語音為靜音段,采用較長的窗,;語音和靜音的過渡段采用較小的窗,,可以確切判斷語音的起始點;一旦確定語音的起始點就改用常規(guī)窗長,,因為漢語音節(jié)末尾都是濁音,只用短時能量就可以較好地判斷一個語音的末點,。
1.1.2 改進端點檢測
一般在一段語音信號中,,無聲段會占據(jù)相當(dāng)一部分比例,這樣進行端點檢測時,,會造成一部分計算資源浪費在檢測無聲段上,。并且雙門限檢測方法窗口每滑動一次就要對兩個參數(shù)進行計算和比較,因此所需要的計算資源比較大,。語音段和過渡段相對于靜音段的短時過零率和短視能量要高出許多,,并且隨著靜音段結(jié)束和語音段開始,中間過渡段的短時過零率和短視能量呈單調(diào)遞增趨勢,?;谶@個特性,本文提出一種基于跳躍幀的端點檢測方法,,在動態(tài)窗長的基礎(chǔ)上引入幀跳躍這一概念,,形成一種新的端點檢測方法。實驗證明,,該方法能有效地降低端點檢測的時間以及提高端點檢測的精確度,。
端點檢測算法流程如圖2所示。進行端點檢測時,,對于剛開始檢測的無聲階段,,采用較長的窗長并且在計算和比較第一幀之后直接將窗口向前移動N幀,直到判斷為進入了過渡段或者語音段,。當(dāng)檢測到語音進入過渡段時,,首先將窗口后退N幀并且改為使用較小的窗長,,然后開始逐幀進行比較以精確確定語音的起始端點,之后進入語音段后就改為使用常規(guī)大小的窗長,。語音末尾端點的檢測與起始端點檢測類似,。這里關(guān)鍵的就是N的取值問題,N取得太大或者太小雖然不會影響算法的準(zhǔn)確性,,但是對算法的速度有比較明顯的影響,。根據(jù)實驗結(jié)果比較可以得出,取N=10時算法的效率最高,。圖3為語音“零”的改進前后端點檢測結(jié)果比較,。
1.2 DTW算法
1.2.1 DTW原理
在語音識別中解決語音信號特征參數(shù)序列比較問題時,不能簡單地將輸入模板和相應(yīng)的參考模板直接進行比較,,因為語音信號具有較大的隨機性,,即使是同一個人在不同的時候說話,也不能具有完全相同的時間長度,,因此時間歸正處理是必不可少的[6],。為此,日本學(xué)者板倉將動態(tài)規(guī)劃(DP)算法的概念用于解決語音識別中孤立詞識別時說話速度不均勻的問題,,提出了著名的DTW算法,。DTW算法是一種將全局最優(yōu)化問題轉(zhuǎn)化為局部最優(yōu)問題的算法,是把時間規(guī)整和距離測度計算結(jié)合起來的一種非線性規(guī)整技術(shù),。其具體實現(xiàn)原理如下,。
將輸入信號和參考信號經(jīng)過特征提取和訓(xùn)練之后分別得到一組模板序列。這里假設(shè)輸入信號模板序列用X={x1,,tx1,,x2,tx2,,…,,xm,txm}表示,,參考信號模板序列用Y={y1,,ty1,y2,,ty2,,…,yn,,tyn}表示,。其中xi、yi,,為音高序列,,txi,、tyi為其對應(yīng)的音長。它們之間的相似度用其之間的距離D(X,,Y)來度量,,距離越小表示相似度越高。為了度量這一距離,,就要從X,、Y中各個幀的對應(yīng)點之間的距離算起。設(shè)m,、n為分別從X,、Y中任意選擇的一幀信號,則D(Xm,,Yn)就表示為這兩幀特征矢量之間的距離,。
如圖4所示,橫軸是輸入信號模板X的各幀號m=1~M,,縱軸上是參考信號模板Y的幀號n=1~N,,其中N≠M,網(wǎng)格中的每一個交叉點表示兩個模板中的樣點匹配,,匹配時從第一個點D(1,,1)開始,一直計算到最后一個點D(M,,N)結(jié)束。利用動態(tài)規(guī)劃算法可以尋找到這樣的一條路徑,,但是這條路徑不是隨意選擇的,。
DTW算法的目標(biāo)是尋找這樣一條路徑:該路徑從起始點出發(fā)依次通過各個交叉點并最終到達終止點結(jié)束,這條路徑能使得該路徑上所有交叉點的累計失真最小,,即保證兩個模板間存在最大的相似性,,失真越小,相似度越高,。為了避免盲目搜索,,一般對于DTW的搜索路徑會有如下限制。
?。?)路徑要通過起始點和終止點,。
(2)為使路徑不至于過分傾斜,,一般對路徑的最大和最小斜率會做適當(dāng)?shù)南拗?,一般取最大斜率?,最小斜率為0.5,。
?。?)具有連續(xù)性,。在動態(tài)伸縮路徑中,下一點與當(dāng)前點一定是相鄰的,,下一個點可以位于當(dāng)前點的正上方,、正右方或者是右上方對角線,但是不允許跨越一個點至下一個點,。
?。?)具有單調(diào)性。動態(tài)伸縮路徑的延伸的方向一定是向右或者向上,,反方向的延伸是不被允許的,。
傳統(tǒng)DTW算法主要有以下幾個缺點。
?。?)計算量過大,。由于要找出最佳的匹配點,因此程序會考慮多種情況,,從而使計算量加大,。
(2)識別性能過分依賴于端點檢測,。端點檢測會受到不同的環(huán)境因素影響,,DTW算法的識別準(zhǔn)確度也會受到影響。
?。?)沒有充分利用語音信號的時域特征信息,。
1.2.2 改進DTW算法
由于DTW的計算量非常巨大,如果對于所有的參考模板進行全部完全匹配,,則會耗費大量的計算資源,。使用搜索寬度限制和放寬搜索寬度可以減低DTW的時間復(fù)雜度。本文在此基礎(chǔ)上提出一種簡單的改進策略,,具體如下:由于輸入信號模板與參考信號模板不可能完全相同,,通過DTW算法所要尋找的是與輸入信號最相似的參考信號,因此可以在比較之前先計算一下兩個序列的長度,,如果兩個序列長度相差過多,,那么基本可以確定兩個序列不為相似序列,直接跳過此次匹配過程,;接著可以設(shè)置一個相似度的閾值下限,,在匹配過程中一旦這個相似度低于閾值,就表明輸入模板基本不可能與參考模板匹配,,則立即停止此次匹配進入下一輪匹配,。實驗證明,當(dāng)參考信號模板數(shù)據(jù)庫足夠大時,使用這種策略能夠節(jié)省大量的時間,,并且檢測的精確度幾乎不受影響,。
2 實驗與結(jié)果
本系統(tǒng)采用改進的端點檢測方法和改進的DTW匹配算法實現(xiàn)語音識別,并且采用MFCC(Mel Frequency Cepstral Coefficient)特征提取,。語音采樣頻率為8 kHz,,16 bit量化精度,窗函數(shù)采用Hamming窗,。實驗參考模板數(shù)據(jù)內(nèi)容為數(shù)字語音“0”到“99”,,輸入模板為10組語音數(shù)據(jù)。
實驗主要分為3組,,第1組主要比較改進前后端點檢測及生成模板庫的時間,,第2組主要比較輸入的10組語音數(shù)據(jù)的識別速度,第3組主要比較輸入的10組語音數(shù)據(jù)的識別正確率,。具體實驗結(jié)果如表1所示,。
通過表1可以發(fā)現(xiàn),改進后的算法在識別準(zhǔn)確率上與原有算法相當(dāng),,但是在模板庫生成時間和識別速度上要比原有算法分別有接近10%和17%的提升,,進一步驗證了算法的可行性。
本文研究了一個孤立詞語音識別系統(tǒng),,提出了一種新的端點檢測改進策略和DTW算法匹配改進策略,,并將兩者結(jié)合運用于語音識別系統(tǒng)。實驗表明,,改進的語音識別系統(tǒng)在語音的識別速度和識別精度上都得到了較大程度的提高,,達到了比較良好的性能。
參考文獻
[1] 張亞歌,,張?zhí)?一種基于雙幀動態(tài)時間規(guī)整的語音識別新方法[J].微電子學(xué)與計算機,,2010(11):17-19+24.
[2] RABINER L R, LEVINSON S E. Isolated and connected word recognition-theory and selected applications[J]. IEEE Transactions on Communications,, 1981,,COM-29(5):621-659.
[3] 胡金平,,陳若珠,,李戰(zhàn)明.語音識別中DTW改進算法的研究[J].微型機與應(yīng)用,2011(3):30-32.
[4] 李景川,,董慧穎.一種改進的基于短時能量的端點檢測算法[J].沈陽理工大學(xué)學(xué)報,,2008(3):37-39.
[5] 陳立萬.基于語音識別系統(tǒng)中DTW算法改進技術(shù)研究[J].微計算機信息,2006(5):267-269.
[6] 吳艷艷.孤立詞語音識別的關(guān)鍵技術(shù)研究[D].青島:青島大學(xué),,2012.