劉 靜,王 儒,曲金玉,李東榮
(山東理工大學(xué)交通與車輛工程學(xué)院山東淄博255091)
基于DTW改進(jìn)算法的孤立詞語音識別仿真
劉 靜,王 儒,曲金玉,李東榮
(山東理工大學(xué)交通與車輛工程學(xué)院山東淄博255091)
為提高識別率和識別效率,采用雙門限過零率和短時能量作為端點(diǎn)檢測的依據(jù),提取Mel頻率倒譜系數(shù)作為語音特征參數(shù),并使用DTW算法進(jìn)行模式匹配.由于傳統(tǒng)DTW算法計算量大,所以采用局部路徑約束和區(qū)域約束進(jìn)行改進(jìn),并用Matlab對改進(jìn)后的DTW算法進(jìn)行了仿真.實(shí)驗(yàn)證明該算法對孤立詞語音識別能夠達(dá)到較好的識別結(jié)果.
孤立詞;語音識別;Matlab;DTW
語音識別研究開始于20世紀(jì)50年代,貝爾實(shí)驗(yàn)室的Davis等人研制了特定說話人孤立數(shù)字識別系統(tǒng)[1].20世紀(jì)60年代末,RAC實(shí)驗(yàn)室的Martin等人開始研究語音信號時間尺度不統(tǒng)一的解決辦法,開發(fā)了一系列的時間規(guī)正方法,明顯地改變了識別性能[2].1972年,Sakoe提出了DTW算法,DTW是把時間歸正和距離測度計算結(jié)合起來的一種非線性歸正技術(shù),也是語音識別中一種很成功的匹配算法,掀起了語音識別研究的熱潮[3].
孤立詞語音識別是語音識別的一個重要研究領(lǐng)域,不僅比連續(xù)語音識別靈活性好,而且具有很高的應(yīng)用價值[4],主要應(yīng)用于自動控制,如駕駛、機(jī)器人操縱、儀器設(shè)備操縱及收集撥號、智能玩具、家用電器操縱,尤其當(dāng)人手已被占用或無法使用的情況下,進(jìn)行聲音控制可以起到不可替代的作用.
本系統(tǒng)基于Matlab軟件,系統(tǒng)主要功能有語音信號的采樣及量化、預(yù)處理、端點(diǎn)檢測、特征提取、訓(xùn)練和識別,系統(tǒng)的開發(fā)流程如圖1所示.
1.1 采樣及量化
Matlab軟件運(yùn)用wavrecord函數(shù)可進(jìn)行語音錄制,應(yīng)用wavread函數(shù)讀取錄制好的wav語音文件,采樣頻率為8k Hz.為了處理方便,先將信號進(jìn)行幅度歸一化處理,運(yùn)用命令x=x/max(abs(x))便可實(shí)現(xiàn).
圖1 語音識別系統(tǒng)流程圖
1.2 預(yù)處理
1)預(yù)加重
經(jīng)過采樣和量化過程后,還要對語音信號進(jìn)行預(yù)加重[2].預(yù)加重用具有6dB/倍頻程提升高頻特性的預(yù)加重數(shù)字濾波器實(shí)現(xiàn),其計算公式為
式中,u=0.95,預(yù)加重后的信號在分析處理之前要進(jìn)行去加重處理,即加上―6dB/倍頻程下降的頻率特性來還原成原來的特性.數(shù)字“6”預(yù)加重后的波形如圖2所示.
圖2 數(shù)字“6”預(yù)加重后的波形
2)加窗分幀
為了得到短時的語音信號,要對語音信號進(jìn)行加窗操作.本系統(tǒng)采用可以有效克服泄漏現(xiàn)象的漢明窗,漢明窗公式為
數(shù)字“6”加窗分幀后的波形如圖3所示.
圖3 數(shù)字“6”加窗分幀后的波形
1.3 端點(diǎn)檢測
語音的端點(diǎn)檢測就是確定語音的起點(diǎn)和終點(diǎn),從語音信號中排除無聲段[5],常用的檢測參數(shù)有短時能量和短時過零率等[6].本文采用雙門限端點(diǎn)檢測算法,利用短時能量來檢測濁音,利用短時過零率來檢測清音,兩者配合以實(shí)現(xiàn)可靠的端點(diǎn)檢測.
1)短時能量分析
由于短時能量是對信號進(jìn)行平方運(yùn)算,人為增加了高低信號之間的差距,因此采用短時平均幅度來表示能量的變化[7].短時能量的計算公式為
3)檢測語音起點(diǎn)和終點(diǎn)
用短時平均過零率區(qū)分無聲和清音在有些情況下不是很可靠[8],本文采用雙門限端點(diǎn)檢測法,將門限提高一些,這對于清音的影響不大,而在無背景噪聲的情況下,無聲段將不會穿越這一提高的電平,因此可以正確區(qū)分清音段和無聲段.
首先根據(jù)濁音情況下的短時平均幅度參數(shù)的概率密度函數(shù)P(M|V)確定一個閾值參數(shù)MH,MH= min(M1,max(M)/4).根據(jù)MH可判定輸入語音的前后兩個點(diǎn)A1和A2,但語音的精確起點(diǎn)還要在A1之前和A2之后仔細(xì)查找.再設(shè)定一個較低的閾值參數(shù)ML,由A1點(diǎn)向前找,當(dāng)短時平均幅度由大到小減至ML時,可以確定B1點(diǎn).類似地,可以確定B2點(diǎn).在A2和B2之間仍能肯定是語音段.數(shù)字“6”的端點(diǎn)檢測結(jié)果如圖4所示.
圖4 端點(diǎn)檢測結(jié)果
1.4 特征提取
特征提取是語音識別的一個重要步驟,本系統(tǒng)采用Mel頻率倒譜系數(shù)(MFCC,Mel-Frequency Cepstral Coefficients)進(jìn)行特征提取.Mel頻率表示公式為
Mel濾波器組如圖5所示,MFCC倒譜系數(shù)的計算過程如圖6所示.
圖5 Mel濾波器組
圖6 MFCC倒譜系數(shù)的計算流程圖
先將信號進(jìn)行預(yù)加重和漢明窗處理,然后進(jìn)行短時傅里葉變換得到其頻譜.求出頻譜平方,即能量譜,再用24個帶通濾波器進(jìn)行濾波,得到功率譜.將每個濾波器的輸出取對數(shù)并進(jìn)行反離散余弦變換,得到15個MFCC系數(shù),MFCC系數(shù)計算公式為
用公式(7)求一階和二階差分參數(shù),得到相應(yīng)的動態(tài)特征.
1.5 模板匹配
在孤立詞語音識別中,最為簡單有效的方法是采用DTW算法,該算法基于動態(tài)規(guī)劃(DP)的思想,解決了發(fā)音長短不一的模板匹配問題,是語音識別中出現(xiàn)較早、較為經(jīng)典的一種算法[9].
假設(shè)參考模板的特征矢量序列為
輸入語音特征矢量序列為
DTW算法就是要尋找一個最佳的時間歸正函數(shù),使待測語音的時間軸j非線性地映射到參考模板的時間軸i上,使總的累計失真量最小.
設(shè)時間歸正函數(shù)為
式中,N為路徑長度,c(n)表示第n個匹配點(diǎn)對是由參考模板的第i(n)個特征矢量與待測模板的第j(n)個特征矢量構(gòu)成的匹配點(diǎn)對.兩者之間的距離稱為局部匹配距離.DTW算法就是通過局部最優(yōu)化的方法實(shí)現(xiàn)加權(quán)距離總和最小,即
為了提高識別速度,給時間規(guī)正函數(shù)如圖7(a)所示的局部路徑約束和如圖7(b)所示的平行四邊形區(qū)域約束Reg.平行四邊形有兩個位于(1,1)和(N,M)的頂點(diǎn),相鄰兩條邊的斜率分別為2和1/2.
求累計距離的遞推公式為
圖7 局部路徑約束和區(qū)域約束
對于圖7(a)所示的局部路徑,一般取距離加權(quán)值為Wn(1)=Wn(3)=1,Wn(2)=2.
程序運(yùn)行后,首先讀入wav文件,用vad函數(shù)對其進(jìn)行端點(diǎn)檢測,用mfcc函數(shù)獲得其MFCC參數(shù),并保存語音部分的MFCC參數(shù)到參考模板的結(jié)構(gòu)數(shù)組ref(i).mfcc中或測試模板的結(jié)構(gòu)數(shù)組test (i).mfcc中.
在模板匹配階段,計算所有測試模板和參考模板之間的距離,保存到矩陣中,將最后的匹配分?jǐn)?shù)用min函數(shù)找到最小值對應(yīng)的模板.
表1為測試語音與標(biāo)準(zhǔn)模板庫之間的匹配矩陣,圖中行表示數(shù)字“1~10”的標(biāo)準(zhǔn)模板庫,列表示數(shù)字“1~10”的測試語音.語音樣本“1~10”均和模板庫中的模板“1~10”有最小的距離,因此具有較好的相似性,即都取得了較好的識別效果.
表1 測試語音與標(biāo)準(zhǔn)模板庫之間的匹配矩陣
本文在Matlab編程上實(shí)現(xiàn)了簡單詞的語音識別.DTW算法較HMM算法運(yùn)算量小,在孤立詞小詞匯量的語音識別系統(tǒng)有著較為廣泛的應(yīng)用.實(shí)驗(yàn)結(jié)果證明,通過提高端點(diǎn)檢測結(jié)果的準(zhǔn)確率和運(yùn)用改進(jìn)的DTW算法,系統(tǒng)取得了較好的識別效果.后續(xù)可以通過完善語音數(shù)據(jù)庫來提高模板搜尋匹配的效率和可靠性,通過改進(jìn)語音識別算法來提高識別的精度和準(zhǔn)確性.
[1]韓紀(jì)慶,張磊,鄭鐵然.語音信號處理[M].北京:清華大學(xué)出版社,2004.
[2]楊曦,蘇娟,彭勇群.孤立詞語音識別系統(tǒng)的MATLAB實(shí)現(xiàn)[J].微計算機(jī)信息,2007,23(3-1):288-290.
[3]吳黎明,王桂堂,吳正光.語音信號及單片機(jī)處理[M].北京:科學(xué)出版社,2007.
[4]彭輝,魏瑋,陸建華.特定人孤立詞的語音識別系統(tǒng)研究[J].控制工程,2011,5(3):397-400.
[5]朱蕊楠.車載藍(lán)牙語音控制系統(tǒng)的語音識別算法研究與設(shè)計[D].長春:吉林大學(xué),2011.
[6]江官星,王建英.一種改進(jìn)的檢測語音端點(diǎn)的方法[J].微計算機(jī)信息,2006,22(5-1):138-139.
[7]劉志偉,盧文科.孤立詞的語音識別[J].微計算機(jī)信息,2011,27 (6):181-182.
[8]劉長明,任一峰,語音識別中DTW特征匹配的改進(jìn)算法研究[J].中北大學(xué)學(xué)報:自然科學(xué)版,2007,27(1):37-40.
[9]肖春華,黃樟欽,侯義斌,等.基于孤立詞語音識別系統(tǒng)的DTW硬件實(shí)現(xiàn)[J],微計算機(jī)信息,2010,26(11-2):114-117.
(編輯:郝秀清)
Design of isolated words speech recognition system based on improved DTW algorithm
LIU Jing,WANG Ru,QU Jin-yu,LI Dong-rong
(School of Traffic and Vehicle Engineering,Shandong University of Technology,Zibo 255091,China)
To improve recognizing rate and recognizing efficiency,double-threshold zero-crossing rate is adopted in the endpoint detection,Mel-Frequency Cepstral Coefficients is obtained as speech characteristic parameters,and DTW algorithm is used for matching of the model.For the large amount of data in the matching process,DTW algorithm is improved by using local constraints and global constraints and it was simulated by Matlab.The experiment shows that this algorithm can achieved good results in isolated word speech recognition.
isolated word;speech recognition;Matlab;DTW
1672―6197(2013)01―0063―04
TP391.42
A
2012- 12- 27
劉靜,女,15064360598@126.com;通信作者:曲金玉,男,qujinyu@sina.com