摘 要:通過對特征提取模塊2個重要部分:端點檢測和線性預測倒譜(LPCC)相關原理的介紹分析,闡述了一種以線性預測倒譜(LPCC)為基礎,進行特征提取的孤立詞語音識別的具體實現方法,并對該方法所描述的系統進行了軟件建模。通過分析研究,給出了提高識別率的具體改進方案。最后使用Matlab軟件對相關方法及結論進行了驗證,表明該方法確實在傳統方法的基礎上提高了識別率,且速度較快,具有實用性和良好的硬件可移植性,并討論了它在一些關鍵環節的未來實現及改進方向。關鍵詞:語音識別; 特征提取; LPCC; Matlab
中圖分類號:TN912.3-34文獻標識碼:A
文章編號:1004-373X(2010)16-0109-04
Realization and Improvement of Isolated Word Phonetic Recognition
LIU Li-yuan, YAN Jia-ming
(School of Electronic Information, Northwestern Polytechnical University, Xi’an 710129, China)
Abstract: An implementation method of the isolated word speech recognition with feature extraction based on the linear prediction cepstrum (LPCC) is elaborated by the analysis of the relevant principles of two important parts (the endpoint detection and LPCC) of the feature extraction module. The software modeling of the system which is described by the method is carried out. A specific improvement program to improve the recognition rate is given through the analysis. carried on the confirmation for the relevant method and conclusion are demonstrated with Matlab software. The demonstration shows that the method can raise the recognition rate indeed based on the traditional method, and has the characteristics of high-speed recognition, good practicability and hardware portability. The direction of the future implementation and improvement in some key links is discussed for the method.Keywords: phonetic recognization; feature extraction; LPCC; Matlab
收稿日期:2010-03-30
語音識別是機器通過識別和理解過程把語音信號轉變為相應的文本文件或命令的技術,而特征提取階段是其至關重要的一步。特征參數值選取的適當與否,提取時篩選的合適與否,直接影響識別正確率的高低。此階段主要包括2個方面:端點檢測和特征參數提取。
1 端點檢測
在語音識別系統中,語音信號是由語音、靜音和背景噪音混合而成的,在其中提取語音,準確地確定語音的起始點被稱之為端點檢測。端點檢測的作用有以下幾個方面[1]:檢測每幀信號是語音,還是背景噪聲;減少識別器的數據處理量;許多噪聲中的語音識別算法需要估計噪聲的頻譜特性。
當前方法中實用且普遍的應屬雙門限檢測。雙門限端點檢測法是在短時能量檢測方法的基礎上,加上短時平均過零率,利用兩者作為特征來進行檢測。首先為短時能量和過零率分別確定2個門限:一個是較低的門限,數值較小,對信號的變化比較敏感,很容易超過;另一個是比較高的門限,數值較大。低門限被超過未必是語音的開始,有可能是很短的噪聲引起的,高門限被超過,并且接下來的時間段內語音超過低門限,意味著信號開始[2-3]。
本文所采用的方法是該方法的簡易化,先算出背景噪聲能量與過零率的統計特性,確定能量高低門限、短時過零率門限,分別利用能量門限和過零率門限來提取出語音信息段,然后將兩者所篩選出的語段整合作為選擇出的語音段。該方法雖然簡單,但對于基于本實驗中較高信噪比的前提假設,仍能達到滿意效果。
2 特征參數提取算法
當前,最常用的2種特征參數是線性預測倒譜系數(LPCC)和Mel倒譜系數(MFCC)。研究結果表明,這2種方法對語音識別的性能而有所提高[4]。其中,最常用的方法之一是線性預測分析(LPC)法,這是因為它有效地解決了短時平穩信號的模型化問題[5],可把語音信號看成是由全極點模型產生的;能很好地逼近共振峰,提供譜估計;提供的語音信號模型參數簡潔而準確,計算量較小,便于實時處理;可用于低頻率傳輸的環境。
2.1 線性預測分析原理[6-7]
線性預測分析的基本模型是建立在語音產生的數字模型基礎之上的。其基本原理在此不再贅述。最終在最小均方誤差意義上計算一組最佳預測系數,定義短時預測均方誤差為:
En=∑ne2(n)=∑n[S(n)-∑Pi=1aiS(n-i)]2(1)
經過一系列數學推導可得:
∑pi=1aiφ(k,i)=φ(k,0),k=1,2,…,p(2)
求解式(2)就可得到線性預測系數估值1,2,…,p及最小預測均方誤差n。
2.2 線性預測分析的求解方法
欲解式(2),首先必須計算φ(k,i)。其中φ(k,i)定義為φ(k,i)=∑nx(n-k)x(n-i),這是一個模糊的定義,式中n的求和范圍沒有具體化。因此,當采用不同計算方法時,會存在不同的解法。最經典的2種解法為:自相關法和協方差法。在這2種方法中,其方程組系數矩陣[φ(k,i)]都具有特殊的性質,可用高效的方法來計算方程組的解。
本文采用自相關法[6-7]:定義n的求和范圍是一種較直接的方法,認為語音段外的數據為零,只計算范圍n以內(0≤ n ≤N)的語音數據,這相當于將語音加窗后再進行處理。此時,φ(k,i)可表示為:
φ(k,i)=∑N-1+pn=0xω(n-k)xω(n-i)(3)
式中:k=1,2,…,p;i=0,1,2,…,p;xω (n)為加窗后的語音數據。由于假定窗外的語音數據為零,顯然存在著誤差。加窗后的自相關函數可以表示為:
Rn(k)=∑n+N-k-1n=0xω(m)xω(m+k)(4)
式中:Rn(k)為短時自相關函數,且Rn(k-i)僅與(k,i)的相對值有關。因此,φ(k,i)可表示為:
φ(k,i)=Rn(k-i)=Rn(|k-i|)(5)
于是式(2)轉化為自相關方程組,將其轉換成矩陣形式:
Rn(0)Rn(1)…Rn(p-1)
Rn(1)Rn(0)…Rn(p-2)
Rn(2)Rn(1)…Rn(p-3)
Rn(p-1)Rn(p-2)…Rn(0)1
2
3
p=Rn(1)
Rn(2)
Rn(3)
Rn(p)(6)
式(6)為Yule-walker方程,其系數矩陣被稱為托布里茲(toeplitz)矩陣。對于這種方程組可用特殊的遞推算法來求解。其指導思想為:第i階方程組的解可以用第i-1階方程組的解來表示;第i-1階方程組的解又可以用第i-2階方程組的解來表示,依此類推。因此只要解出一階方程的解,就可以通過逐步遞推來解出任意方程組的解。
2.3 LPCC線性預測倒譜分析
LPCC參數是線性預測系數在倒譜域中的表示。標準的倒譜系數計算流程運算比較復雜。在實際計算中,基于LPC分析的倒譜,在獲得線性預測系數后,可以利用預測系數an及其復倒譜系數C(n)的遞推關系來簡化計算,或由LPC得到[7]:
CLPCC(n)=CLPC(n)+∑n-1k=1n-knCLPCC(n-k)CLPC(k)(7)
式中:C(n)為倒譜系數;an為預測系數;n為倒譜系數階數(n為l~p);p為預測系數的階數。
2.4 改進方案
2.4.1 提高階次
由分析可知,對語音信號進行線性預測分析的基本思想是:一個語音的采樣能夠用過去若干個語音采樣的線性組合來逼近。為使模型能夠很好地符合語音產生的模型,需要考慮如下2個因素:模型階數p的選擇。階數p應與共振峰的個數相吻合,通常一對極點對應一個共振峰。因此當共振峰數為5時,應取10。此外,當語音為鼻音和摩擦音時,聲道傳遞函數并不符合全極點模型的假定,而是一個既有極點又有零點的模型。但由于可以用多個極點來近似一個零點,所以仍然可以采用全極點模型的假定,但要求有足夠高的階數。通過預加重對高頻部分的提升。
2.4.2 還原解法自身相關性
由分析知,對LPC使用自相關法,不僅計算方便簡單,容易實現,而且能滿足求解方程組的要求。但是從解法自身不難發現,由于其需要加窗截取才能進行計算,而分幀這一操作又破壞了其本身所依賴的相關性,所以經仿真證明,其效果并不理想,而且受噪音的影響較大。經過反復試驗證明,在實際應用中,當N和p相當接近時,自相關法的誤差較大。所以人為地使N>>p,這時自相關法不但可以克服其誤差大的缺點,得到較好的識別率,而且具有高效遞推算法的優勢也非常明顯了。
所以在傳統的LPCC識別方法上,可以進行如下改進:一般傳統的LPCC方法經過最初的分幀,斷點檢測等一系列操作直接進行特征提取,而在本文仿真中雖在端點檢測之前對原始的語音信號進行了分幀加窗的處理,但此處理僅僅是為了提高端點檢測和整體語音識別的正確率所加的處理過程。當進行LPCC特征參數提取時,本文將經過端點檢測后確定的語音段的各幀還原為原始的連續語音序列向量后,再進行特征提取。這樣大大提高了識別的正確率。
3 軟件建模結果及分析
本文討論的是孤立詞、小詞匯量識別。按照識別原理模型,設計的整體結構框架如圖1所示。
圖1 語音識別總體結構框架設計圖
在試驗中,在建立模板庫時,選取了8條英語語句,進行模板訓練。本文基于Matlab R2007a的環境,下面對仿真主要模塊及代碼進行簡介:
(1) 語音輸入與輸出實現。在此采用軟件編寫函數直接輸入的方式,其實現代碼如下[8]:
y = wavrecord(n*fs, fs, type);%錄語音
wavplay(y);%播放指令
其中:n為錄音時間長度;fs為設定的采樣頻率;type為所指定的采樣精度。
(2) 語音段檢測。語音段檢測在本文實驗中包括2部分:一是對輸入的語音采樣序列進行分幀加窗,進行初步的分割便于以后處理操作;二是對分幀處理后的語音序列進行端點檢測,截取出有效語音段,為減少計算量,提高識別率服務。
① 語音的分幀、加窗處理。在Matlab環境下對信號進行分幀處理,可以使用voice box工具箱中的enframe函數:
y=enframe(x,FrameLen,Framelnc)
其中:x為原始信號;FrameLen為指定幀長;Framelnc為指定幀移;y為分幀后形成的二維數組。本文使用哈明窗,窗寬設定為256,幀移設定為80。
② 端點檢測。采用雙門限算法,在開始進行端點檢測之前。其中,門限的確定是通過對相應環境下的無語音噪聲進行與語音段相同的采集處理,計算其每幀的能量與過零率,根據經驗公式[9],計算出高門限Hig,低門限Low和過零率門限ZT。其相關實現代碼如下:
i1=min (0.03*(max (b)-min (b)) +c, 4*c);
i2=5*i1;Low=i1;Hig=i2;
整合滿足2種門限的語音采樣序列,從而實現門限檢測功能。對語音樣本進行端點檢測后的仿真圖像如圖2所示。圖2(a)是原始信號波形圖,圖2(b),(c)分別為篩選后的各幀短時能量和短時過零率圖。這便排除掉那些不必要的語音段,減少運算量,使識別更加準確、可靠,也縮短了運行時間。
圖2 語音樣本端點檢測圖
③ 特征參數提取。基于LPCC方法對所提及的3種方式分別進行了仿真對比:
傳統方式 直接進行特征提取及以后操作。
提高階次 分別將p值設定為8,10,12,14進行對比。
還原方法 雖在端點檢測之前對原始的語音信號進行了分幀加窗處理,當進行LPCC特征參數提取時,將經過端點檢測后確定的語音段的各幀還原為原始的連續語音序列向量后,再按照前文所述特征提取算法進行特征提取。
3種方式均可根據式(7)計算LPCC系數。
④ 模式匹配及模板訓練。采用DTW算法的模式匹配過程。DTW是孤立詞識別系統的主流識別方法。從目前來看基于動態時間歸整匹配的DTW算法,可能是一個最為小巧的語音識別算法,系統開銷小,識別速度快,在小詞匯量的語音命令控制系統中是一個非常有效的算法[10]。
對每一幀語音信號提取LPCC特征參數以后,便得到一組LPCC特征向量。語音識別是將測試語音的特征向量同模板庫中的語音特征向量進行模式匹配,尋找最短距離模式作為識別結果。設測試語音特征矢量序列為T={t1,t2,…,tN},參考模板特征矢量序列為R={r1,r2,…,rM}。它們之間的相似度用它們之間的距離D[T,R]來度量,距離越小,相似度越高。DTW就是要尋找一個時間規整函數m=W(n),它將測試矢量的時間軸n非線性地映射到模板的時間軸m上,使w滿足[11]:
D=minw(n)∑Ln=1d{Q(n),M[w(n)]} (8)
⑤ 結果對比如下:
提高階次 LPC階數對識別率的影響見表1。可見,當階次到達一定值時,提高階次,不但識別率提高不明顯,而且可影響識別率,如表1所示。
表1 不同階次的識別率比較
p階數識別率/%p階數識別率/%
8階84.212階90.9
10階92.114階80.6
還原法 經過反復試驗總結驗證,傳統檢測方式的識別率為70.6%,而本設計的語音識別程序其識別率能到達92.1%左右,且速度較快。這表明當N和p相當接近時,人為地使N>>p,這時自相關法不但克服其誤差大的缺點,得到較好的識別率,而且其高效遞推算法的優勢就非常明顯了。
4 結 語
依據小碼本孤立詞的語音識別系統模型完成了對LPCC 算法的基本原理仿真驗證,并對傳統方法給予了改進討論,驗證其有效性,同時為應用系統的硬件實現提供了一定的參考價值。
在設計中,隨著對數字信號處理及語音音頻處理技術等方面的深入研究不難發現,語音識別的實現有許多選擇可作為以后的改進:一是端點檢測方面,除本文選擇的方法外,還有一些新的方法也能取得較好的識別效果,如:語音的短時能頻值;二是特征參數提取方法還有一種比較成熟的算法,如MFCC算法;三是匹配算法,時下比較流行的匹配算法還有隱馬爾可夫模型(HMM)和人工神經網絡(ANN);四是應用方面隨著數字信號處理技術、嵌入式技術、集成電路的迅速發展,將語音識別技術應用到硬件上是必然趨勢,也是推動語音識別技術全面走進人類生活的基礎。將語音識別更為高效地與硬件結合,將是長期發展的方向。
參考文獻
[1]王志強.孤立詞語音識別系統關鍵問題的研究[D].北京:北京郵電大學,2006.
[2]GERVEN S, XIE FEI. A comparative study of speech detection method[C]. EUROSPEECH, Greece, 1997:1015-1020.
[3]夏敏磊.語音端點技術研究[D].江蘇:浙江大學,2005.
[4]GU H,TSENG C,LEE L. Isolated-utterance speech recognition using hidden markov models with bounded states durations[J]. IEEE Transaction onSP,l991,39(8):1743-1752.
[5]肖江南.漢語孤立詞識別系統開發與研究[D].桂林:廣西師范大學,2004.
[6]易出克,田斌,付強.語音信號處理[M].北京:國防工業出版社,2003.
[7]韓紀慶,張磊,鄭鐵然.語音信號處理[M].北京:清華大學出版社,2004.
[8]韓利竹,王華.Matlab 電子仿真與應用[M].北京:國防工業出版社,2007.
[9]胡光銳.語音處理與識別[M].上海:上海科學技術文獻出版社,1994.
[10]SILVERMAN H F, PMORGAN D. The application of dynamic programming to connected speech recognition[J]. IEEE Assp Mag., 1990,17(7): 6-25.
[11]趙力.語音信號處理[M].北京:機械工業出版社,2009.