潘智剛 姚敏鋒 張晶
摘要:論文旨在研究基于MATLAB平臺(tái)的特定人孤立詞小詞匯量的語音識(shí)別系統(tǒng)的實(shí)現(xiàn)。文章分別對(duì)語音信號(hào)的預(yù)處理過程、語音信號(hào)的特征提取及語音信號(hào)的識(shí)別算法等方面進(jìn)行深入研究和分析在端點(diǎn)檢測(cè)過程中,使用短時(shí)能量和過零率雙門限進(jìn)行檢測(cè),應(yīng)用識(shí)別率較高的MFCC作為特征參數(shù),針對(duì)傳統(tǒng)DTW算法在語音識(shí)別中測(cè)試語音與參考語音模板匹配所需時(shí)間較長的問題,提出搜索路徑改進(jìn)算法,使得算法的運(yùn)算速度有所提升。為了提升DTW的識(shí)別率,提出改進(jìn)的模板匹配方法——多模板匹配方法。實(shí)驗(yàn)結(jié)果證明,采用改進(jìn)算法的語音識(shí)別系統(tǒng)有效地降低了識(shí)別時(shí)間,提高了系統(tǒng)的識(shí)別率。
關(guān)鍵詞:語音識(shí)別;動(dòng)態(tài)時(shí)間規(guī)整;端點(diǎn)檢測(cè);多模板優(yōu)化
中圖分類號(hào):TP18 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)01-0146-04
Multiple Templates in Speech Recognition Algorithm
PAN Zhi-gang, YAO Min-feng, ZHANG Jing
(Cisco Information Institute , Guangdong University of Foreign Studies , Guangzhou 5100061,China)
Abstract:The thesis aims at realizing a speech recognition system, which can recognize single word of a specific person based on MATLAB. The thesis will introduce the system from the following aspects: preprocessing stage, voice signal extraction and speech recognition algorithm. The system uses short-time energy and zero-crossing rate as two restraints, MFCC which has a higher recognition rate as the characteristic parameter, high-efficiency DTW algorithm and multiple models to recognize speech and gains a comparatively high recognition rate.
Key words:speech recognition; DTW; endpoint detection; multi templates optimization
隨著語音識(shí)別技術(shù)的進(jìn)步,其應(yīng)用越來越廣泛,尤其是孤立詞語音識(shí)別系統(tǒng)的應(yīng)用前景非常廣闊,如語音控制系統(tǒng),為人們?cè)谑謩?dòng)控制以外提供了一種更安全、更方便的控制方法,特別是當(dāng)系統(tǒng)工作在一些特定的環(huán)境或針對(duì)一些特殊用戶的時(shí)候;如語音輸入系統(tǒng),用口述代替鍵盤向計(jì)算機(jī)輸入文字,會(huì)給辦公自動(dòng)化和出版界帶來革命性的變化;基于對(duì)話系統(tǒng)的數(shù)據(jù)庫查詢系統(tǒng),為用戶提供了更加友好便捷的數(shù)據(jù)庫檢索或查詢,可以廣泛運(yùn)用在銀行、交易所、民航等機(jī)構(gòu);除此之外,語音識(shí)別還可以用于口語翻譯系統(tǒng)、計(jì)算機(jī)輔助教學(xué)、自動(dòng)身份確認(rèn)等領(lǐng)域。因此,針對(duì)特定人的孤立詞語音識(shí)別系統(tǒng)具有廣泛的實(shí)際意義。
從目前語音識(shí)別理論發(fā)展現(xiàn)狀來看,非特定人、大詞匯量、連續(xù)語音識(shí)別是語音識(shí)別領(lǐng)域的三大難點(diǎn)。相對(duì)而言,特定人小詞匯量孤立詞語音識(shí)別的理論和實(shí)踐都已較為成熟完善。因此研制一些有限詞匯(有限命令集)識(shí)別系統(tǒng)對(duì)于將語音識(shí)別技術(shù)擴(kuò)大應(yīng)用范圍、推向市場(chǎng)以服務(wù)于社會(huì)有著非常重大的意義。該文在研究實(shí)現(xiàn)了特定人孤立詞小詞匯量的語音識(shí)別,采用了一種多模板匹配的方法,主要是針對(duì)特定人發(fā)聲可能產(chǎn)生的微小差異所采取的一種增加識(shí)別正確率的方法。
1 語音信號(hào)預(yù)處理
1.1 語音預(yù)加重
語音信號(hào)的平均功率譜由于受聲門激勵(lì)和口鼻輻射的影響,高頻端大約在800Hz以上按6dB/Oct(倍頻程)衰減,因此,在求語音信號(hào)譜時(shí),頻率越高相應(yīng)的成分越小,高頻部分的頻率比低頻部分的難求。因此,預(yù)加重的目的是加強(qiáng)語音中的高頻共振峰,使語音信號(hào)的短時(shí)頻譜變得更為平坦,便于進(jìn)行頻譜分析和聲道參數(shù)分析。通常的方法是使用一階零點(diǎn)數(shù)字濾波器實(shí)現(xiàn)預(yù)加重,其形式為式(1)
[H(z)=1-μz-1,0.90≤μ≤0.98] (1)
其中,[μ]為預(yù)加重系數(shù),通常取0.9~0.98之間。本系統(tǒng)取[μ]值為0.9375。
1.2 語音信號(hào)分幀、加窗
在本設(shè)計(jì)系統(tǒng)中,取幀長為30ms(每幀包含240個(gè)采樣點(diǎn)),采樣頻率為8KHz。矩形窗,主瓣較窄,具有較高的頻率分辨率,但具有較高的旁瓣,相鄰諧波干擾比較嚴(yán)重,相鄰諧波間隔內(nèi)有時(shí)疊加有時(shí)抵消而產(chǎn)生嚴(yán)重泄露。與矩形窗相比,海明窗得到的頻譜卻要平滑得多,而且海明窗也是用最為普遍的。論文中選用海明窗對(duì)語音信號(hào)進(jìn)行加窗。在求MFCC系數(shù)時(shí)對(duì)語音添加了海明窗。
1.3 語音信號(hào)的端點(diǎn)檢測(cè)
本系統(tǒng)選取短時(shí)能量和短時(shí)過零率兩個(gè)值共同作用確定語音信號(hào)的起點(diǎn)和終點(diǎn)。在開始進(jìn)行端點(diǎn)檢測(cè)前,首先為短時(shí)能量和過零率分別確定兩個(gè)門限。一個(gè)是比較低的門限,其數(shù)值比較小,對(duì)信號(hào)的變化比較敏感,很容易就會(huì)被超過。另一個(gè)是比較高的門限,數(shù)值比較大,信號(hào)必須達(dá)到一定的強(qiáng)度,該門限才可能被超過。低門限被超過未必就是語音的開始,有可能是時(shí)間很短的噪聲引起的。高門限被超過則可以基本確信是由于語音信號(hào)引起的。整個(gè)語音信號(hào)的端點(diǎn)檢測(cè)可以分為四段:靜音、過渡段、語音段、結(jié)束。程序中使用一個(gè)變量status來表示當(dāng)前所處的狀態(tài)。在靜音段,如果能量或過零率超越了低門限,就應(yīng)該開始標(biāo)記起始點(diǎn),進(jìn)入過渡段。在過渡段中,由于參數(shù)的數(shù)值比較小,不能確信是否處于真正的語音段,因此只要兩個(gè)參數(shù)的數(shù)值都回落到低門限以下,就將當(dāng)前狀態(tài)恢復(fù)到靜音狀態(tài)。而如果在過渡段中兩個(gè)參數(shù)中的任何一個(gè)超過了高門限,就可以確信進(jìn)入語音段了。一些突發(fā)性的噪聲也可以引起短時(shí)能量或過零率的數(shù)值很高,但是往往不能維持足夠長的時(shí)間,如門窗的開關(guān)、物體的碰撞等引起的噪聲,這些都可以通過設(shè)定最短時(shí)間門限來判別。當(dāng)前狀態(tài)處于語音段時(shí),如果兩個(gè)參數(shù)的數(shù)值降低門限以下,而且總的計(jì)時(shí)長度小于最短時(shí)間門限,則認(rèn)為這事一段噪音,繼續(xù)掃描以后的語音數(shù)據(jù)。否則就標(biāo)記好結(jié)束端點(diǎn),并返回。圖1為英語單詞“orange”進(jìn)行端點(diǎn)檢測(cè)的有關(guān)圖示。最上面的為原始語音幅度進(jìn)行規(guī)整后的圖形。中間的圖形為短時(shí)能量圖,最后一幅為過零率圖。由三幅圖可以清晰的得到端點(diǎn)檢測(cè)的結(jié)果。
2 語音特征的提取
特征提取的實(shí)質(zhì)是對(duì)經(jīng)過預(yù)處理的語音信號(hào)經(jīng)過某種變換,去掉冗余部分,把代表語音信號(hào)本質(zhì)的特征參數(shù)抽取剝離出來.語音特征參數(shù)是分幀提取的,每幀特征參數(shù)一般構(gòu)成一個(gè)矢量,形成一個(gè)矢量序列,再經(jīng)過數(shù)據(jù)壓縮后便成為語音的模板。特征參數(shù)提取主要包括三種方法:線形預(yù)測(cè)編碼系數(shù)(LPC),以及當(dāng)前流行的兩種特征參數(shù)提取方法:線性預(yù)測(cè)倒譜系數(shù)(LPCC)和美爾頻標(biāo)倒譜系數(shù)(MFCC)。后兩者都是將語音信號(hào)從時(shí)域轉(zhuǎn)換到倒譜域上加以利用。論文采用MFCC特征提取算法。
3 動(dòng)態(tài)時(shí)間規(guī)整算法(DTW)
在孤立詞語音識(shí)別中,最為簡單有效的方法是采用DTW(Dynamic Time Warping,動(dòng)態(tài)時(shí)間歸整)算法,該算法基于動(dòng)態(tài)規(guī)劃(DP)的思想,解決了發(fā)音長短不一的模板匹配問題,是語音識(shí)別中出現(xiàn)較早、較為經(jīng)典的一種算法。用于孤立詞識(shí)別,DTW算法與HMM算法在訓(xùn)練階段需要提供大量的語音數(shù)據(jù),通過反復(fù)計(jì)算才能得到模型參數(shù),而DTW算法的訓(xùn)練中幾乎不需要額外的計(jì)算。所以在孤立詞語音識(shí)別中,DTW算法仍然得到廣泛的應(yīng)用。
3.1 改進(jìn)的DTW算法
傳統(tǒng)的DTW算法的缺點(diǎn)是模板匹配的運(yùn)算量太大,求累積距離時(shí),對(duì)測(cè)試模板的各幀給予了相等的權(quán)重,當(dāng)兩個(gè)模板數(shù)增加較快時(shí),訓(xùn)練和識(shí)別算法的運(yùn)算量也快速增大。根據(jù)給定匹配路徑的限定規(guī)整斜率,在矩形內(nèi)許多網(wǎng)絡(luò)點(diǎn)是無法達(dá)到的,可以看成平行四邊形外的網(wǎng)格點(diǎn)不需計(jì)算的,如圖2所示,需要運(yùn)算的交點(diǎn)都在平行四邊行內(nèi)。這樣減少了需要保存的匹配距離矩陣和累積距離矩陣,減少資源的消耗。改進(jìn)型DTW算法大大提高了運(yùn)算效率,它的方法實(shí)際是把路徑分為三段,分別進(jìn)行處理:三段路徑為:[(1,Xa),(Xa+1,Xb),(Xb+1,N)],其中,根據(jù)坐標(biāo)計(jì)算可得出:
[Xa=13(2M-N)] (1)
[Xb=23(2N-M)] (2)
[Xa]和[Xb]都取最相近的整數(shù)。由此得出了對(duì)M和N長度的限制條件:
[2M-N≥32N-M≥2] (3)
當(dāng)限制條件不滿足時(shí),不進(jìn)行動(dòng)態(tài)匹配,利用這一條件的判斷,減少了對(duì)認(rèn)為是相差條件太軟的模板之間的匹配,減少了系統(tǒng)開支。
在X坐標(biāo)軸上的每一幀與Y坐標(biāo)軸上[[ymin,ymax]]間的幀做比較,[ymin,ymax]的計(jì)算公式如(4) (5) 。
[ymin12x 0≤x≤Xb2x+(M-2N) Xb [ymax2x 0≤x≤Xa12x+(M-12N) Xa 同理,若出現(xiàn)[Xa>Xb]的情況,此時(shí)匹配的路徑三段為[(1,Xb),(Xb+1,Xa),(Xa+1,N)].對(duì)于X坐標(biāo)軸每前進(jìn)一幀,雖然所要比較的Y坐標(biāo)軸的幀數(shù)不同,但規(guī)整特性是一致的,累積距離如式(6) 所示。 [D(x,y)=d(x,y)+minD(x-1,y),D(x-1,y-1),D(x-1,y-2)] (6) 其中D和d分別表示累積距離和幀匹配距離。 3.2 基于DTW算法的語音多模板匹配 3.2.1模板優(yōu)化概述 模板優(yōu)化的思想為:取兩個(gè)模板為一個(gè)小組,采用動(dòng)態(tài)規(guī)整的方法得到兩模板的匹配路徑。然后兩模板根據(jù)匹配路徑,讓對(duì)應(yīng)幀的特征參數(shù)相加之后取平均得到一個(gè)新模板。然后所有小組產(chǎn)生的新模板相加取平均,得到優(yōu)化模板。這個(gè)優(yōu)化模板與三個(gè)原始模板的都有很強(qiáng)的相關(guān)性,這種相關(guān)性與個(gè)人的發(fā)音本質(zhì)相對(duì)應(yīng),3原始個(gè)模板與優(yōu)化是一般性與特殊性的關(guān)系。這樣一來,優(yōu)化模板就很好地結(jié)合了多模板參與匹配的人性化思想,同時(shí)優(yōu)化模板只有一個(gè),又有了單模板匹配的簡潔快速的特性。 3.2.2尋找匹配路徑 下面以[ai]與[bi]這個(gè)模板組為例來討論尋找匹配路徑的方法。設(shè)[ai(p)]為模板a的第i個(gè)信號(hào)的第p幀特征參數(shù),[Ni]為該信號(hào)的總幀數(shù);[bi(p)]為模板b的第i個(gè)信 號(hào)的第q幀特征參數(shù),[Mi]為該信號(hào)的總幀數(shù)。[Cipq]為到([ai(p),bi(p)])這個(gè)點(diǎn)的最小距離,[Dipq]為到([ai(p),bi(p)])這個(gè)點(diǎn)的前一個(gè)點(diǎn)的坐標(biāo)的縱坐標(biāo),使得其比前一幀的其他點(diǎn)到點(diǎn)([ai(p),bi(p)])距離小。 首先根據(jù)如下方法獲得[Dipq][(1≤p≤Ni,1≤q≤Mi,1≤i≤10)] 初始化: [Dipq=zeros(Ni,Mi)] [Cipq=ones(Ni,Mi)*realmax] [Ci11=d(ai(1),bi(1)),Ci21=d(ai(1),bi(1))+d(ai(2),bi(1))] [Ci22=d(ai(1),bi(1)+d(ai(2),bi(2))] [Di21=Di22=1] 迭代求值:[Cipq=d(ai(p),bi(q))+min(Ci(p-1)qCi(p-1)(q-1),CI(P-1)(Q-2))] [[u,g]=min(Ci(p-1)q,Ci(p-1)(q-1),Ci(p-1)(q-2))] [Dipq=q+1-g] [(2≤p≤Ni,3≤q≤Mi,1≤i≤10)] 然后用如下算法將最優(yōu)匹配路徑表達(dá)出來: [n=Ni] m=[Mi] [mathPathi](n)=m; p=n-1; q=m for k=n:-1:2 [mathPathi](p)=[Dikq]; q=[mathPathi](p); p=p-1; end
3.2.3優(yōu)化模板
根據(jù)匹配路徑[mathPathi],對(duì)模板組內(nèi)部以及模板組間進(jìn)行取平均,然后生成優(yōu)化模板。生成優(yōu)化模板的方法如下:
設(shè)[gi(x)]表示第i個(gè)信號(hào)的第x個(gè)模板組(共三個(gè)模板組)生成的模板,[fi]表示第i個(gè)信號(hào)的優(yōu)化模板,模板組內(nèi)部取平均:[gi(x)=(ai+bi(mathpathi',:))*0.5]; 模板間取平均:[fi=(gi(1)+gi(2)+gi(3))/3],即[fi]便為優(yōu)化模板。
4 基于MATLAB的界面設(shè)計(jì)與實(shí)現(xiàn)
本語音識(shí)別系統(tǒng)的的執(zhí)行界面如圖3所示。界面風(fēng)格簡潔明了。由五個(gè)按鈕以及面板和面板上的顯示圖片構(gòu)成。該界面的實(shí)現(xiàn)主要應(yīng)用了MATLAB 的GUI工具箱。在一個(gè)可視化界面下設(shè)計(jì)軟件界面。
界面上共有五個(gè)按鈕, “開始識(shí)別”按鈕主要用來現(xiàn)場(chǎng)讀入特定人的語音,生成測(cè)試模板,并與參考模板進(jìn)行匹配并返回識(shí)別結(jié)果?!敖Y(jié)束識(shí)別”按鈕則用來結(jié)束語音識(shí)別并關(guān)閉當(dāng)前窗口。訓(xùn)練模塊由“開始訓(xùn)練Z” 、“開始訓(xùn)練L” 、“開始訓(xùn)練D”三個(gè)按鈕來實(shí)現(xiàn)。這三個(gè)按鈕的主要功能通過調(diào)用按鈕的Callback回調(diào)函數(shù)實(shí)現(xiàn)。當(dāng)點(diǎn)擊其中任意一個(gè)按鈕時(shí),屏幕會(huì)彈出如圖4所示的進(jìn)度條,表示此時(shí)正在訓(xùn)練模板。此時(shí)系統(tǒng)會(huì)生成一個(gè)用來存放語音特征系數(shù)的數(shù)據(jù)文件dtwSamplessZ.mat(dtwSamplessL.mat、dtwSamplessL.mat與按鈕上的英文字符對(duì)應(yīng))。當(dāng)訓(xùn)練完成時(shí)會(huì)彈出一個(gè)消息對(duì)話框如圖5所示,表示此時(shí)訓(xùn)練已經(jīng)完成。
當(dāng)點(diǎn)擊“開始識(shí)別”按鈕時(shí),系統(tǒng)調(diào)用此按鈕的Callback回調(diào)函數(shù),則系統(tǒng)將執(zhí)行run testword;語句。該語句主要用來調(diào)用testword.m文件,并執(zhí)行文件中的代碼。而該文件主要用來進(jìn)行實(shí)時(shí)語音識(shí)別,即先通過wavrecord函數(shù)讀取實(shí)時(shí)語音數(shù)據(jù),然后調(diào)用vad端點(diǎn)檢測(cè)函數(shù)來確定實(shí)時(shí)錄入語音的起始點(diǎn)x1和結(jié)束點(diǎn)x2,接著調(diào)用mfcc函數(shù)得到實(shí)時(shí)語音的mfcc系數(shù)矩陣,系數(shù)保存在test矩陣中。最后通過調(diào)用dtw函數(shù),計(jì)算參考模板sampless與測(cè)試模板test之間的距離,并通過比較得到與測(cè)試模板距離最小的參考模板。最后通過彈出消息對(duì)話框顯示匹配結(jié)果如圖6所示(以英文單詞orange為例):
5 結(jié)束語
論文在總結(jié)和分析了現(xiàn)有語音識(shí)別技術(shù)的各關(guān)鍵階段理論及算法后,在基于PC平臺(tái)上使用MATLAB軟件設(shè)計(jì)和實(shí)現(xiàn)特定人孤立詞小詞匯量的語音識(shí)別系統(tǒng)。針對(duì)語音預(yù)處理,特征提取和模式匹配等幾個(gè)階段各種算法的選擇做了一定的研究工作,在實(shí)現(xiàn)系統(tǒng)中有一定的創(chuàng)新,主要的工作及相應(yīng)的創(chuàng)新點(diǎn)歸納為以下幾點(diǎn):
1)對(duì)傳統(tǒng)的語音識(shí)別技術(shù)理論作了大量的研究,對(duì)語音識(shí)別各階段算法通過分析進(jìn)行比較。在語音的端點(diǎn)檢測(cè)模塊選擇了能有效的維持系統(tǒng)魯棒性的短時(shí)能量-短時(shí)過零率雙門限的方法。使端點(diǎn)檢測(cè)結(jié)果更為準(zhǔn)確。
2) 通過對(duì)特征提取中的LPCC參數(shù)和MFCC參數(shù)的深入研究,最后選擇了識(shí)別效果較好的MFCC參數(shù)。通過對(duì)DTW算法的研究,使用了改進(jìn)的DTW算法,并加入了多模板匹配的思想,使匹配更加快捷和精準(zhǔn)。論文開發(fā)的系統(tǒng)基本達(dá)到了對(duì)于特定人的小詞匯量孤立詞語音識(shí)別的預(yù)期目標(biāo)。但是可以考慮進(jìn)行幾個(gè)方面的完善:
1) 系統(tǒng)使用的DTW算法雖然有其本身的優(yōu)勢(shì),但也存在缺點(diǎn),而且只使用于特定人中,因此若論文研究的課題往下發(fā)展應(yīng)該在以詞為單位的基礎(chǔ)上對(duì)適合使用在非特定人識(shí)別的HMM算法進(jìn)行研究。
2)系統(tǒng)著重在語音識(shí)別的準(zhǔn)確率上進(jìn)行改進(jìn),論文的多模板匹配雖然加強(qiáng)了識(shí)別的準(zhǔn)確度,但是卻增加了識(shí)別的復(fù)雜度。因此本系統(tǒng)還可以朝著提升語音識(shí)別的效率的方向進(jìn)行改進(jìn)。
參考文獻(xiàn):
[1] Bourlard H. Optimizing recognition and rejection performance in wordspotting systems[M]. ICA-SSP, 199914(2):358-364.
[2] Christoph B,Bernd P.Permutation entropy:a natural complexity measure for time series[M].Phys Rev Lett,2002,88(17):1741021-1741024.
[3] Dave Harrold. Industry Ethernet [J]. Control Engineering, 1999.
[4] 何強(qiáng),何英.MATLAB擴(kuò)展編程[M].北京:清華大學(xué)出版社,2006.
[5] 胡航.語音信號(hào)處理[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2000.
[6] 拉賓納.語音識(shí)別的基本原理[M].北京:清華大學(xué)出版社,2002.
[7] 羅承烈.近代語音識(shí)別[M].成都:電子科技大學(xué)出版社,1991:54-55.
[8] 李邵梅,劉力雄,陳鴻昶.實(shí)時(shí)說話人識(shí)別系統(tǒng)中改進(jìn)的DTW算法[J].計(jì)算機(jī)工程,2008(4):218-219.
[9] 樸春俊.噪聲環(huán)境下的語音識(shí)別性能研究[J].計(jì)算機(jī)測(cè)量與控制,2005,13(11):1276-1291.
[10] 萬春.基于DTw的語音識(shí)別應(yīng)用系統(tǒng)研究與實(shí)現(xiàn)[J].集美大學(xué)學(xué)報(bào):自然科學(xué)版,2002, 7(2):104-105.
[11] 王亞濤,樸春俊.強(qiáng)噪聲情況下的多種端點(diǎn)檢測(cè)方法研究[J].信息技術(shù),2005(2):43-45.
[12] 徐大為,吳邊,趙建偉,等.一種噪聲環(huán)境下的實(shí)時(shí)語音端點(diǎn)檢測(cè)算法.計(jì)算機(jī)工程與應(yīng)用[J],2003(1):115-117.
[13] 易克初,語音信號(hào)處理[M].北京:國防工業(yè)出版社,2000.
[14] [日]占井貞熙.數(shù)字聲音處理[M]. 朱家新,張國海,易武秀,譯.北京:人民郵電出版社,1993.
[15] 趙力.語音信號(hào)處理[M].北京:機(jī)械工業(yè)出版社,2003.
[16] 趙彥平.孤立詞小詞匯量抗噪聲語音識(shí)別方法的研究[D].吉林:吉林大學(xué),2006.
[17] 朱淑琴,裘雪紅.一種精確檢測(cè)語音端點(diǎn)的方法[J].計(jì)算機(jī)仿真,2004,22(3):214-216.