吳 雷 周 萍
(1.桂林電子科技大學 認知無線電與信息處理教育部重點實驗室,廣西 桂林 541004; 2.桂林電子科技大學 信息與通信學院,廣西 桂林 541004;3.桂林電子科技大學 電子工程與自動化學院,廣西 桂林 541004)
在語音識別系統(tǒng)中,輸入信號通常由原始語音信號和各類噪聲信號混合而成。將各個語音信號時段與非語音信號時段區(qū)分開并對語音信號開始位置進行精確定位被稱作端點檢測(Voice Activity Detection,VAD)。端點檢測是語音信號處理的一個基本問題,語音端點檢測的目的是在一段含噪語音中提取出語音段的起點和終點[1]。
在對連續(xù)語音檢測和去噪時,可以利用濁音的周期性將語音和噪聲分離,但是將清音和寬帶平穩(wěn)噪聲進行區(qū)分時卻存在一定的困難,語音信號容易被噪聲淹沒。文獻[2]中采用基于短時幅度和短時過零特征的端點檢測方法在同一個門限下對一些清音信號進行檢測時,可能會出現(xiàn)虛檢、漏檢現(xiàn)象,從而導致系統(tǒng)發(fā)生錯誤識別。基于奈奎斯特定理的其他端點檢測算法(譜熵法、自相關參數(shù)法、獨立分量分析法、高階統(tǒng)計量)在解決這一問題時能取得一定的效果,但通常其數(shù)據(jù)處理量大,大多數(shù)情況下不利于語音信號的實時分析與處理[3]。
2006年,Donoho[4]等人提出了壓縮感知CS(Compressed Sensing)理論。該方法能以低于奈奎斯特速率對信號進行快速采樣,這也使CS理論逐漸成為信號處理領域的研究熱點[5]。文獻[3]中提出了基于壓縮感知觀測序列的倒譜距離檢測方法,利用語音信號的稀疏性通過構建稀疏基從而得到信號的稀疏表示。在觀測序列上采用倒譜距離算法進行端點檢測,這種方法大大減少了數(shù)據(jù)運算量。但是,由于其未對原始語音信號恢復重構,此端點檢測方法不適用于語音識別系統(tǒng)。文獻[6]開始將Mel 頻率倒譜系數(shù)(Mel Frequency Coefficient,MFCC)作為分類特征用于語音/非語音的檢測。Wang[7]等人采用MFCC倒譜相識度作為語音/非語音的分類特征。在此基礎上本文提出了基于壓縮感知和MFCC的語音端點檢測算法,利用噪聲不能在DCT域近似稀疏,在觀測壓縮過程中會部分丟失的原理,對語音信號進行壓縮感知與重構,恢復后的語音信號信噪比得以提高。在重構信號基礎上,提取MFCC倒譜特征,采用倒譜距離進行語音端點檢測。實驗結果證明,在連續(xù)語音檢測中該方法能取得很好的效果。另外,由于MFCC特征參數(shù)能用于后續(xù)的識別,節(jié)約了系統(tǒng)的運行資源,有利于語音識別系統(tǒng)的集成化。
壓縮感知(CS)理論通過極少數(shù)的稀疏表示便能重建該信號。由此看來,CS不僅是一種信號采樣方式,也是一種信息提取方法。壓縮感知理論主要分為稀疏表示、壓縮觀測和恢復重構三部分。其數(shù)學模型闡述如下。
(1) 稀疏表示。
(1)
式中,y=[y1,y2,…,yM]T,y=〈x,Ψi〉,y中非零元素個數(shù)記作‖y‖0。若‖y‖0=K,且K≤N,則稱信號x是K稀疏的。
(2) 壓縮觀測。
s=Φx
(2)
(3) 恢復重構。
(3)
(4)
(5)
圖1 重構算法流程圖
于迎霞和史家蒯等將倒譜特征應用于帶噪端點檢測方法并取得了很好的效果。由于Mel倒譜特征參數(shù)其本身能保持一定的特性,因此在語音識別中得到廣泛的應用[11]。通過大量實驗驗證,該種檢測算法更加適用于高倍噪聲環(huán)境[12]。Mel倒譜特征參數(shù)是基于聽覺模型的特征參數(shù)提取方法,將耳蝸當作是一個濾波器組,當頻率小于1 kHz時,耳蝸以線性形式進行濾波;而當頻率大于1 kHz時,耳蝸以對數(shù)形式進行濾波。根據(jù)人耳耳蝸的這一特性,研究人員設計了Mel頻率濾波器組,經過倒譜運算后就能得到Mel頻率倒譜系數(shù)。MFCC參數(shù)的計算以Mel頻率為基準,其與實際頻率的轉換關系可用式(6)表示:
(6)
而 MFCC的求取過程是首先把求得的頻率特性通過式(6)計算出Mel頻率特性,隨后將其變換到倒譜空間中[13]。MFCC計算框圖如圖2所示。
圖2 MFCC計算框圖
MFCC計算過程如下:
① 對輸入語音信號進行預處理,包括分幀、加窗等步驟,然后將語音幀進行DFT變換,依據(jù)式(7)計算得語音的頻率特性。
(7)
式中,x(n)為輸入語音信號;N為傅里葉變換的長度。
② 對Xa(k)求平方,將其作為輸入通過一組含有M個三角形濾波器的濾波器組,該濾波器組的中心頻率為f(m),m=0,1,2,…。
③ 設Hm(k)為三角濾波器的頻率響應特性,將濾波器組的輸出進行對數(shù)變換,其計算公式如下:
(8)
④ 將S(m)進行DCT變換,所得C(n)即為 MFCC系數(shù)。
(9)
在對語音信號提取MFCC參數(shù)時,一般選取12階倒譜系數(shù),由于第0階的倒譜系數(shù)表現(xiàn)出的是一種能量的特性,通常C(0)被當作能量系數(shù),而不作為倒譜系數(shù)。
在實際環(huán)境下,絕大部分信號的信噪比比較低,單純的語音端點檢測技術準確率較低且難以達到預期的檢測效果。大量實驗表明,在對信號進行檢測時,必須先對其進行去噪處理。本文采用壓縮感知重構對語音信號去噪,利用倒譜距離對重構信號進行端點檢測,如圖3所示。
圖3 端點檢測算法框圖
基于壓縮感知和MFCC的語音端點檢測,其算法具體步驟如下:
① 利用語音在離散余弦變換(Discrete Cosine Transform,DCT)域下的稀疏性,采用性能表現(xiàn)最優(yōu)的Hadamard矩陣壓縮測量帶噪語音,然后通過改進的正交匹配跟蹤算法(Orthogonal Matching Pursuit,OMP)進行語音信號恢復。
② 利用漢寧窗對重構后的信號進行分幀,假定重構的語音信號的前10幀為噪聲信號,對前10幀MFCC參數(shù)求平均,得到噪音的Mel倒譜初始值。
(10)
③ 最后利用滑動平均求取每幀語音的Ci離Cmn的倒譜距離。設MFCC系數(shù)的序列為Ci,i=1,2,…,n,則滑動平均式[14]為
(11)
式中,C(i)為語音信號第i幀的MFCC倒譜距離。根據(jù)MFCC系數(shù)距離曲線,取T1=0.22,T2=0.12。當C(i)≥T1且C(i+1)≥T1時,就可以認為第i幀是一個語音信號,當隨后C(i)≤T2時即認為語音結束。
④ 為了保證檢測的實時性,噪聲Mel倒譜初始值按式(12)更新:
Cmn=λCmn+(1-λ)Ci
(12)
式中,Cmn為前面10幀噪聲的MFCC均值矢量;Ci為當前幀的MFCC矢量;λ為更新速度。
為了檢驗該算法在帶噪連續(xù)語音的檢測效果,使用錄音筆在實驗室安靜的環(huán)境下錄制純凈的語音信號,其中信號的采樣率為16 kHz,每幀256個采樣點,幀移為80個采樣點。圖4給出了純凈語音信號“我到北京去”的時域波形圖,使用標準噪音庫noisex-92里的白噪聲信號對其干擾,圖5為疊加高斯白噪聲后的帶噪信號波形。
圖4 純凈語音信號
圖5 帶噪語音信號(信噪比10dB)
首先,采用傳統(tǒng)的雙門限法進行仿真,使用語音信號的短時能量和短時平均過零率來進行端點檢測,圖6為語音信號短時能量檢測結果,圖7為語音信號短時平均過零率檢測結果。從圖6、圖7可以看出,使用雙門限法檢測時,其采用歸一化處理,在同一門限下進行檢測。由于濁音的短時能量遠大于清音的短時能量,在清音“北”字語音段上信號幅度突然變小,該方法將一段語音檢測成為了兩段語音,很顯然發(fā)生了誤檢現(xiàn)象。
然后,采用壓縮感知與MFCC端點檢測方法對同一帶噪語音“我到北京去”進行檢測。依據(jù)上述步驟對原始信號進行壓縮感知與重構后,信號波形如圖8所示,從圖中可以看出,采用壓縮感知和改進的OMP算法對帶噪語音信號進行壓縮觀測和重構,重構信號不僅能較好地恢復原始語音信號波形,而且取得了良好的降噪效果。
圖6 短時能量檢測結果
圖7 短時平均過零率檢測結果
圖8 重構的語音信號
圖9為傳統(tǒng)雙門限端點檢測算法和CS-MFCC端點檢測算法在不同信噪比情況下的檢測結果。從圖中可以看出,在信噪比大于5 dB時,兩種檢測算法都可以進行有效的端點檢測,但當信噪比低于5 dB時,傳統(tǒng)雙門限檢測算法性能明顯下降,已無法有效進行端點檢測,特別是測試樣本中的后3個字符,幾乎完全被淹沒在噪聲信號中,嚴重影響檢測準確率。
在連續(xù)語音檢測過程中出現(xiàn)幅值急劇變化時,基于本文改進的CS-MFCC端點檢測算法不但可以在大于5 dB的高信噪比環(huán)境下有效檢測出語音幀的起始與結束,而且在信噪比為0 dB的惡劣環(huán)境下仍然可以保持有效的工作,能適用于連續(xù)語音識別系統(tǒng)進行帶噪語音端點檢測,具有良好的魯棒性。
實驗中采用傳統(tǒng)的雙門限端點檢測算法和本文改進的CS-MFCC端點檢測算法分別對語音信號進行端點檢測,并改變信噪比的值,統(tǒng)計在不同信噪比條件下兩種算法的端點檢測結果如表1所示。準確率定義為:
錯誤幀數(shù)=語音誤判為噪聲幀數(shù)+噪聲誤判為語音幀數(shù)
準確率=(總幀數(shù)-錯誤幀數(shù))/總幀數(shù)
當準確率低于70%時,則對應的算法被認為無效。
圖9 CS-MFCC端點檢測結果
端點檢測方法信噪比(SNR)0dB5dB10dB20dB30dB傳統(tǒng)雙門限算法失效失效94.2595.7396.18本文改進算法91.6391.7596.3296.1694.63
通過統(tǒng)計實驗結果可知,在信噪比大于10 dB的情況下,傳統(tǒng)雙門限算法和本文改進算法都能保持94%以上的準確率,但當信噪比低于10 dB時,傳統(tǒng)雙門限算法性能表現(xiàn)不穩(wěn)定,幾乎無法有效地工作,而本文改進的CS-MFCC端點檢測算法依然可以保持91%以上的準確率。由此可見,傳統(tǒng)雙門限檢測算法雖簡單易實現(xiàn),但是抗噪性能太差,特別是在檢測弱摩擦音和結尾音符時存在明顯不足,無法在低信噪比環(huán)境下有效工作。而本文改進算法利用壓縮感知與重構進行了降噪處理,同時采用 MFCC倒譜距離進行端點檢測,具有較強的抗噪性能和魯棒性,在強噪聲等惡劣環(huán)境下亦可保持有效工作。
文獻[15]提出的改進的自適應倒譜距離檢測算法是在傳統(tǒng)倒譜距離端點檢測算法基礎上引入倒譜距離乘數(shù)和門限增量系數(shù),進一步提高了端點檢測準確率,但是在低信噪比環(huán)境下存在漏檢、誤檢現(xiàn)象,特別是針對強度較弱的信號或者清音信號,而本文提出的改進CS-MFCC端點檢測算法有效地改善了這一現(xiàn)象。圖10為兩種改進算法在SNR=-10 dB環(huán)境下的端點檢測結果。
圖10 CS-MFCC和改進倒譜距離端點檢測結果
由圖10可知,文獻[15]提出的改進算法漏檢了測試樣本的后兩個字符,特別是最后一個尾音字符,多次測試均為漏檢,而本文提出的CS-MFCC算法則依然可以有效檢測出語音端點。
本文將壓縮感知理論和MFCC倒譜系數(shù)相結合的方法應用于連續(xù)語音端點檢測。在端點檢測之前利用壓縮感知與重構進行了降噪處理。通過實驗證明,采用 MFCC倒譜距離對帶噪語音進行語音端點檢測,較好地解決了傳統(tǒng)的雙門限算法在不同字間由于幅度變化大會產生誤判的問題,解決了傳統(tǒng)雙門限檢測方法在連續(xù)帶噪語音情況和低信噪比環(huán)境下端點檢測的不足。本文算法引入了壓縮感知理論進行語音降噪,利用噪聲與語音信號在DCT域的差異性,去除語音的噪聲干擾,提高端點檢測算法的噪聲敏感性,很好地解決了文獻[15]在強度較弱的語音信號或清音信號下可能出現(xiàn)的丟失或誤檢問題,為連續(xù)語音識別系統(tǒng)提供了可靠的基礎。