吳佳龍,李 坤,劉 中
(西安電子科技大學(xué)電子工程學(xué)院,陜西西安 710071)
在孤立詞語(yǔ)音識(shí)別中,主要的研究方法有動(dòng)態(tài)時(shí)間規(guī)整(Dynamic Time Warping,DTW)算法、隱馬爾科夫模型(HMM)和人工神經(jīng)元網(wǎng)絡(luò)等。但HMM算法復(fù)雜,需通過(guò)反復(fù)計(jì)算才能得到模型參數(shù)。而DTW算法是語(yǔ)音識(shí)別中出現(xiàn)最早、較為經(jīng)典的一種算法,該算法的訓(xùn)練中無(wú)需額外計(jì)算,且在孤立詞語(yǔ)音識(shí)別中,DTW算法與HMM算法在相同環(huán)境條件下,識(shí)別效果相差較小。另外,MFCC的提出對(duì)語(yǔ)音識(shí)別做出了重大貢獻(xiàn),該算法模擬人耳處理語(yǔ)音的機(jī)制,具有較好的魯棒性和識(shí)別效果,成為語(yǔ)音識(shí)別系統(tǒng)中的主要特征參數(shù)[1]。文中使用梅爾倒譜系數(shù)作為特征參數(shù),采用動(dòng)態(tài)時(shí)間規(guī)整技術(shù)進(jìn)行模式匹配,是孤立詞語(yǔ)音識(shí)別的有效解決方法。
孤立詞語(yǔ)音識(shí)別的本質(zhì)為模式識(shí)別,其基本算法框架如圖1所示[2]。包括對(duì)語(yǔ)音信號(hào)的預(yù)處理單元、端點(diǎn)檢測(cè)單元、特征參數(shù)提取單元、參考模板庫(kù)建立單元和模式匹配單元等。
圖1 非特定人孤立詞語(yǔ)音識(shí)別算法框架
圖1中,預(yù)處理單元對(duì)輸入語(yǔ)音進(jìn)行數(shù)字化和高通濾波處理;端點(diǎn)檢測(cè)單元使用短時(shí)能零差分法判斷語(yǔ)音信號(hào)的始末點(diǎn),獲得真實(shí)語(yǔ)音信號(hào);特征參數(shù)提取單元?jiǎng)t采用 Mel倒譜系數(shù)(Mel Frequency Cepstral Coefficient,MFCC)提取能代表語(yǔ)音最基本特征的參數(shù);參考模板庫(kù)建立單元通過(guò)基于平均路徑長(zhǎng)度的訓(xùn)練方法,建立參考特征參數(shù)模板庫(kù);模式匹配單元,指通過(guò)動(dòng)態(tài)時(shí)間規(guī)整技術(shù)(Dynamic Time Warping,DTW)計(jì)算測(cè)試特征參數(shù)與參考特征參數(shù)之間的歐式距離,以獲得識(shí)別結(jié)果。
傳統(tǒng)的端點(diǎn)檢測(cè)算法通過(guò)判斷語(yǔ)音信號(hào)幀的短時(shí)能量或短時(shí)平均過(guò)零率閾值來(lái)判定語(yǔ)音幀的起始點(diǎn)和終止點(diǎn)。文中使用一種改進(jìn)的結(jié)合短時(shí)能量和短時(shí)平均過(guò)零率差分閾值的端點(diǎn)檢測(cè)算法,即短時(shí)能零差分法。
用En表示第n幀信號(hào) xn(m)的短時(shí)能量,如式(1)所示,En為由信號(hào)幅度值平方?jīng)Q定的函數(shù)[2]
用Mn表示短時(shí)平均幅度函數(shù),如式(2)所示,Mn僅由信號(hào)幅度值決定,信號(hào)中噪聲的影響明顯減小
一幀語(yǔ)音信號(hào)中波形通過(guò)零電平的次數(shù)稱(chēng)為短時(shí)過(guò)零率。過(guò)零率在語(yǔ)音信號(hào)中表現(xiàn)為,高頻段的過(guò)零率相比低頻段高,因此用短時(shí)平均過(guò)零率對(duì)清音和濁音進(jìn)行區(qū)分。第n幀信號(hào)xn(m)的短時(shí)過(guò)零率Zn如式(3)所示
式中,sgn[]是符號(hào)函數(shù),即
語(yǔ)音信號(hào)幀的非語(yǔ)音部分,短時(shí)能量Mn和短時(shí)平均過(guò)零率Zn變化緩慢,而在非語(yǔ)音和語(yǔ)音的過(guò)渡部分這兩個(gè)參數(shù)的變化急劇增大,因此通過(guò)判斷這兩個(gè)參數(shù)便可找到語(yǔ)音信號(hào)的起始點(diǎn)和終止點(diǎn)[5]。語(yǔ)音信號(hào)有清音和濁音之分,濁音的短時(shí)能量和短時(shí)過(guò)零率特征均較為明顯,而清音信號(hào)只有短時(shí)過(guò)零率變化明顯。因此,本文采用短時(shí)能零差分法進(jìn)行端點(diǎn)檢測(cè),算法的基本框架如圖2所示。
圖2 短時(shí)能零差分法框架
短時(shí)能零差分法檢測(cè)步驟如下:
(1)對(duì)輸入的語(yǔ)音信號(hào)預(yù)處理,并根據(jù)語(yǔ)音信號(hào)的短時(shí)平穩(wěn)性進(jìn)行分幀,每幀長(zhǎng)度為32 ms。
(2)分別計(jì)算前5幀語(yǔ)音數(shù)據(jù)的平均短時(shí)能量Pa和平均短時(shí)過(guò)零率Pb。
(3)假設(shè)短時(shí)能量差分的高、低閾值分別為ε2、ε1,短時(shí)平均過(guò)零率差分的閾值為γ1。
尋找邊界點(diǎn):
(4)從語(yǔ)音信號(hào)的第6幀數(shù)據(jù)開(kāi)始,每5幀組成一組(如第6~10幀為一組,第11~15為一組等),將每組最后1幀(如第10幀,第15幀等)的短時(shí)能量與Pa求差分,得差分值m。將m與短時(shí)能量差分的低閾值相比較,若m<ε1,則說(shuō)明還未進(jìn)入有效語(yǔ)音部分,重復(fù)執(zhí)行第(4)步驟;若差分值m>高閾值ε2,則表明該幀已是有效語(yǔ)音幀,接著執(zhí)行步驟(5)尋找該組中具體有效語(yǔ)音部分的真正起始點(diǎn);若ε1≤m≤ε2,則按m<ε1處理,即認(rèn)定尚未進(jìn)入有效語(yǔ)音段。
(5)向前搜索。將第(4)步中找到的語(yǔ)音信號(hào)起始點(diǎn)所在組的每一幀數(shù)據(jù)的短時(shí)能量均與Pa求差分,得出差分值m,并將m與低閾值ε1相比較,若m>ε1,則認(rèn)為該幀確定進(jìn)入語(yǔ)音段。同時(shí),為了防止漏檢清音起始點(diǎn),需向前計(jì)算每一幀數(shù)據(jù)的短時(shí)平均過(guò)零率與Pb的差分值n,也將n與過(guò)零率差分的閾值γ1比較,若n<γ1的幀位置為X,即可認(rèn)為該幀為本次輸入語(yǔ)音的起始點(diǎn)。若該組中每一幀的n值均>γ1,則需繼續(xù)向前搜索,直至找出語(yǔ)音信號(hào)的真正起始點(diǎn)為止。
(6)向后搜索。查找語(yǔ)音信號(hào)的結(jié)束點(diǎn)。繼續(xù)向后計(jì)算每組數(shù)據(jù)最后一幀的短時(shí)能量與Pa的差分值m,若m<ε1,即可認(rèn)為該幀數(shù)據(jù)為語(yǔ)音信號(hào)的終止點(diǎn)Y。
判斷端點(diǎn):
(7)根據(jù)以上步驟得出的數(shù)據(jù)計(jì)算語(yǔ)音信號(hào)的長(zhǎng)度L=Y-X,然后與預(yù)先設(shè)置的語(yǔ)音信號(hào)段的最小長(zhǎng)度Lmin相比較,若L<Lmin,則認(rèn)為X到Y(jié)是一個(gè)脈沖噪音段,重新執(zhí)行步驟(4),從Y的下一幀組數(shù)據(jù)開(kāi)始繼續(xù)檢測(cè)語(yǔ)音信號(hào)起始點(diǎn)。若檢測(cè)到的語(yǔ)音信號(hào)長(zhǎng)度L大于最小長(zhǎng)度Lmin,則此時(shí)的段就是有效語(yǔ)音段。
將語(yǔ)音數(shù)據(jù)“救命”通過(guò)Matlab進(jìn)行端點(diǎn)檢測(cè)算法的仿真,圖3所示為其端點(diǎn)檢測(cè)結(jié)果。
如圖3所示,語(yǔ)音信號(hào)被準(zhǔn)確的分為了兩個(gè)字,除去了無(wú)語(yǔ)音信號(hào)段,檢測(cè)出有效語(yǔ)音信號(hào),且頻譜前后基本無(wú)變化。
孤立詞語(yǔ)音信號(hào)的特征參數(shù)提取是指根據(jù)某種算法從語(yǔ)音信號(hào)中提取出能表征該語(yǔ)音信號(hào)最基本特征的參數(shù)。提取特征參數(shù)的目的是去掉冗余的、無(wú)用的信息及噪聲,僅保留能反映語(yǔ)音特征的最基本信息,以實(shí)現(xiàn)對(duì)孤立詞語(yǔ)音信號(hào)的識(shí)別。
描述語(yǔ)音信號(hào)特征時(shí),需考慮人耳的聽(tīng)覺(jué)特征。耳蝸是人耳的主要組成部分,其本質(zhì)類(lèi)似一個(gè)濾波器組,且在對(duì)數(shù)頻率單位上實(shí)現(xiàn)其濾波性能。臨界頻率帶寬隨著頻率的變化而變換,頻率在0~1 kHz時(shí),為線性尺度,帶寬約為100 Hz;1 kHz以上則為對(duì)數(shù)尺度??紤]到人的聽(tīng)覺(jué)感受,定義新的接近耳蝸特性的梅爾(Mel)頻率為單位[3]。Mel頻率與線性頻率Hz的關(guān)系為
Mel頻率和物理頻率的坐標(biāo)圖,如圖4所示。
圖3 基于短時(shí)能零差分法的“救命”端點(diǎn)檢測(cè)結(jié)果
圖4 Mel頻率與物理頻率坐標(biāo)圖
Mel濾波器組,如圖5所示。其是語(yǔ)音頻譜范圍內(nèi)設(shè)置的若干帶通濾波器hm(k),m=1,…,M;k=0,…,N/2。其中,M為濾波器的個(gè)數(shù),N為一幀語(yǔ)音信號(hào)中的采樣點(diǎn)數(shù),該濾波器的傳遞函數(shù)如式(6)所示。
圖5 Mel頻率濾波器組
其中,f(m)為中心頻率,計(jì)算公式如式(7)所示
式中,F(xiàn)s為采樣頻率;fl和fh為濾波器組的最低頻率與最高頻率;M為濾波器組的數(shù)目。
MFCC參數(shù)提取具體計(jì)算過(guò)程如下:
(1)根據(jù)式(5)將實(shí)際物理頻率轉(zhuǎn)化成Mel頻率。
(2)對(duì)輸入語(yǔ)音幀進(jìn)行端點(diǎn)檢測(cè)后作FFT變換得到其頻譜,將時(shí)域信號(hào)轉(zhuǎn)化為頻域信號(hào)。
(4)對(duì)所有三角形帶通濾波器的輸出求對(duì)數(shù),并做DCT變換,得到MFCC
圖6所示為孤立詞語(yǔ)音信號(hào)“救命”所提取的MFCC特征參數(shù)。
動(dòng)態(tài)時(shí)間規(guī)整(DTW)技術(shù)利用動(dòng)態(tài)規(guī)劃方式,將繁雜的全局優(yōu)化問(wèn)題轉(zhuǎn)換為多個(gè)局部?jī)?yōu)化問(wèn)題進(jìn)行解決[7]。對(duì)于有M幀數(shù)據(jù)矢量參考模板R和有N幀數(shù)據(jù)的矢量測(cè)試模板T,各幀號(hào)組成一個(gè)網(wǎng)格,網(wǎng)格中的任何一個(gè)交叉點(diǎn)(n,m)均表示測(cè)試模板與參考模板的匹配比較點(diǎn),且該交叉點(diǎn)語(yǔ)音信號(hào)幀的失真度為d(T(n),R(m)),路徑通過(guò)的所有交叉點(diǎn)組合成測(cè)試模板與參考模板的總距離。動(dòng)態(tài)時(shí)間規(guī)整法的搜索路徑,如圖7所示。
DTW遵循一定的搜索規(guī)則,根據(jù)語(yǔ)音信號(hào)在時(shí)間上的連貫性,認(rèn)為所有路徑均是從第一幀出發(fā),即m=n=1,然后在(N,M)結(jié)束。路徑中間各點(diǎn)的斜率必須約束為η為0、1/2、1或2。由此可知,若路徑通過(guò)格點(diǎn)(ni-1,mi-1),則將要通過(guò)的下一個(gè)格點(diǎn)(ni,mi)為式(10)中3種情況的一種
最優(yōu)路徑為在滿足約束條件的基礎(chǔ)上,計(jì)算路徑累計(jì)距離的最小值,即滿足
最優(yōu)路徑通過(guò)在匹配過(guò)程中限定彎折斜率來(lái)實(shí)現(xiàn)。如圖8所示,先作出一個(gè)菱形,圈出可能計(jì)算的點(diǎn)來(lái)節(jié)省計(jì)算時(shí)間,同時(shí)也能減少存儲(chǔ)空間。
圖8 DTW匹配約束條件
DTW算法的實(shí)現(xiàn)步驟如下:
(1)假設(shè)M<N,將曲線分成三折,拐點(diǎn)分別為(1,X),(X+1,X)及(X+1,N)。其中,X=(2M-aabbaN),X=(2N-m);X、X均四舍五入取整。若測(cè)bab試模板與參考模板的幀長(zhǎng)不符合(8)所列規(guī)則,則可不用計(jì)算該模板,即距離不匹配
(2)按式(13)和式(14)計(jì)算 Y 軸上[ymin,ymax]
(3)由式(15)計(jì)算出當(dāng)前幀的最小累計(jì)距離
由于在X軸上前進(jìn)一幀,只用到之前幀的累計(jì)距離,因此只需用矢量D保存前列幀的累計(jì)距離,用矢量d保存當(dāng)前列數(shù)據(jù)的累計(jì)距離。每前進(jìn)一幀數(shù)據(jù)均需要更新,按照式(15)將前一列數(shù)據(jù)的累計(jì)距離D(x,y)和當(dāng)前列所有幀數(shù)據(jù)進(jìn)行匹配,獲得匹配距離d(x,y),即可計(jì)算出當(dāng)前語(yǔ)音幀的累計(jì)距離并存于矢量d中。然后將新的累計(jì)距離d賦給D,作為新的累計(jì)距離,在下一列幀計(jì)算累計(jì)距離時(shí)使用。如圖9所示,循環(huán)執(zhí)行到X軸上的最后一列數(shù)據(jù),則矢量D的第M個(gè)元素便是參考模板與測(cè)試模板間動(dòng)態(tài)時(shí)間彎折的最小匹配距離。
圖9 累積距離的動(dòng)態(tài)更新圖
文中使用一種基于平均路徑長(zhǎng)度的訓(xùn)練方法,該方法為每個(gè)孤立詞籌備N(xiāo)(N≤10)個(gè)語(yǔ)音樣本,計(jì)算這N個(gè)語(yǔ)音樣本的特征參數(shù)矢量沿DTW的平均路徑長(zhǎng)度。設(shè)置初始參考模板,其路徑長(zhǎng)度最接近平均路徑長(zhǎng)度;對(duì)其余模板在DTW中進(jìn)行匹配,保證這些矢量模板的路徑長(zhǎng)度和初始參考模板相同。最后計(jì)算每幀中已成功匹配模板的均值,即可獲得參考模板。
最終參考模板的計(jì)算過(guò)程如下:
(1)初始參考模板與第一個(gè)模板相匹配,計(jì)算出最佳規(guī)整函數(shù) w(i),1≤i≤I。
(2)從最后一幀數(shù)據(jù)開(kāi)始向前搜索,直至第一幀,在w(i)上尋找每幀信號(hào)先前可能通過(guò)路徑的斜率,有3種可能:1)斜率為1。語(yǔ)音信號(hào)幀保持不變。2)斜率為2。重復(fù)的語(yǔ)音信號(hào)幀,即w(i-1)與w(i)表示相同幀。3)斜率為0.5。計(jì)算兩個(gè)連續(xù)語(yǔ)音幀的平均值,即w(i-1)與w(i)的平均值。
(3)對(duì)其余的語(yǔ)音參考模板重復(fù)步驟(2),得到長(zhǎng)度相同的一組模板。
(4)對(duì)按以上方法求得的每幀語(yǔ)音信號(hào)中的模板計(jì)算均值,即可獲得最終參考模板。
文中主要對(duì)孤立詞語(yǔ)音識(shí)別系統(tǒng)中各個(gè)模塊進(jìn)行研究及Matlab仿真。從斷點(diǎn)檢測(cè)看出,該方法能準(zhǔn)確檢測(cè)出起始點(diǎn)和終止點(diǎn),為信號(hào)的特征參數(shù)提取做準(zhǔn)備工作;而特征參數(shù)提取通過(guò)MFCC算法也能較好地提取對(duì)信號(hào)識(shí)別的參數(shù)值;研究了DTW算法的原理與實(shí)現(xiàn),通過(guò)對(duì)一些孤立詞語(yǔ)音進(jìn)行識(shí)別驗(yàn)證,證明了該系統(tǒng)在實(shí)際應(yīng)用中具有較好的可行性。
[1]楊熙.基于DSP的非特定人孤立詞語(yǔ)音識(shí)別系統(tǒng)的研究和設(shè)計(jì)[D].長(zhǎng)沙:湖南大學(xué),2007.
[2]潘夏英.圖像邊緣檢測(cè)技術(shù)的研究[D].西安:西安科技大學(xué),2011.
[3]丁愛(ài)明.作為說(shuō)話人識(shí)別特征參量的MFCC的提取過(guò)程[J].信息化研究,2006,32(1):51 -53.
[4]王炳錫,屈丹,彭煊.實(shí)用語(yǔ)音識(shí)別基礎(chǔ)[M].北京:國(guó)防工業(yè)出版社,2005.
[5]魏峰.特定人孤立詞語(yǔ)音識(shí)別方法的研究[D].長(zhǎng)沙:湖南大學(xué),2007.
[6]孫振超.基于FPGA的說(shuō)話人識(shí)別系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:武漢理工大學(xué),2012.
[7]劉長(zhǎng)明,任一峰.語(yǔ)音識(shí)別中DTW特征匹配的改進(jìn)算法研究[J].中北大學(xué)學(xué)報(bào):自然科學(xué)版,2006,27(1):37-40.