劉艷輝
(三門峽職業(yè)技術學院 信息傳媒學院,河南 三門峽 472100)
端點檢測是語音識別的關鍵性技術,準確地確定語音的起始點和結束點,方可為語音識別系統(tǒng)的后續(xù)環(huán)節(jié)節(jié)省空間,提高語音識別系統(tǒng)的性能。語音端點檢測方法分為基于參數(shù)的端點檢測和基于模型的端點檢測,基于參數(shù)的端點檢測方法計算簡便、運算量少,是最普遍的檢測方式。
經典的基于短時能量和短時過零率的特征檢測方法通過語音和噪聲的能量進行比較,以及語音信號圍繞零點的上下振動次數(shù)來判別信號;雙門限判別檢測方法[1]設定閾值進行判別,確定語音段與噪聲段;基于倒譜[2]、分形維數(shù)、譜熵[3]、LMS[4]、譜減[5]等的端點檢測方法,根據(jù)語音信號與噪聲信號特征參數(shù)的不同表現(xiàn),能夠很好地區(qū)分而進行檢測。這些檢測方法均基于閾值,即將特征參數(shù)與設定的閾值進行比較,在噪聲環(huán)境單一或較安靜的情況下有較好的識別效果,但在信噪比較低的情況下,檢測效果較差。本研究針對低信噪比時檢測效果差的問題提出改進的多特征端點檢測方法,結合譜減法及自適應濾波,一邊進行降噪,一邊進行語音增強,以提高信噪比,并進一步改進譜減法的特征參數(shù),從而增強端點檢測效果。
譜減法是利用噪聲的統(tǒng)計平穩(wěn)性及加性噪聲與語音不相關的特點提出來的一種語音增強方法,該方法的運算量小且易于實現(xiàn)。譜減法工作原理見圖1。
圖1 譜減法工作原理
將無語音段的噪聲功率譜作為期望值,可以較好地得到增強后的語音信號。假設x(i)為帶噪語音信號,s(i)為無噪聲的純凈語音信號,n(i)為疊加在語音信號上的加性噪聲信號,在考慮噪聲時,認為噪聲疊加在語音信號波形上,故語音信號可以用以下公式來表示:
x(i)=s(i)+n(i)。
(1)
(2)
(3)
基于此進行語音降噪,但噪聲的功率譜|N(ω)|2無法直接獲得,故經常選取帶噪語音信號前100 ms的平均功率譜作為噪聲的初始估計值。由此可知,通過譜減法得到的語音信號功率譜可表示如下:
(4)
譜減法語音增強效果見圖2。
圖2 譜減法語音增強效果
對比圖2(a)至(d)可知,譜減法得到的期望信號功率譜在經過傅里葉反變換后,對語音降噪起到了一定作用,但效果相對有限。
實際的噪聲環(huán)境是復雜多變的,所以應在譜減法的基礎上對噪聲進行自適應平滑,即使用子帶譜熵的閾值確定初始閾值進行比較,并在確定為噪聲段后,使用當前噪聲幀的頻譜分量Y(l,k)與前一幀的頻譜分量λ(l,k-1)做加權求和并進行更新:
(5)
式中:μ取值為0.8[6];λ(l,k-1)表示經過噪聲平滑后第l幀信號的第k個頻譜分量;Y(l,k)表示當前第l幀語音信號的第k個頻譜分量;λ(l,k-1)表示第l幀語音信號的第k-1個頻譜分量。
經過式(5)的運算,對每一幀的頻譜分量進行了自適應平滑處理,進一步提高了噪聲的實時估計,在信噪比較低、噪聲情況較復雜的情況下,可以很好地對噪聲進行檢測。
針對實際的噪聲環(huán)境使用改進的譜減公式[7]:
(6)
公式(6)為公式(4)的變形,當參數(shù)α=2、β=1時,改進譜減法降為基本譜減法,即變?yōu)楣?4)。引入的參數(shù)α和β分別為信號修正系數(shù)和噪聲修正系數(shù)。
首先,對這兩個參數(shù)進行修正。若減少參數(shù)比重,則會殘留更多的噪聲,無檢測效果;若增大參數(shù)比重,則可能會濾除一部分語音信號,出現(xiàn)語音失真的現(xiàn)象,影響后續(xù)的識別。接下來對參數(shù)α和β進行進一步修正:
α=2(1+SNR),
(7)
(8)
式中:SNR為信噪比。
引入信噪比及自適應噪聲平滑來進一步改進參數(shù)α和β,針對式(7)和式(8)中的SNR,采用噪聲平滑的方式進行處理,這樣可以使SNR的值更加精準,詳見公式(5)。
基于改進譜減法與噪聲平滑的多特征端點檢測方法如下:
(1)對語音信號x(t)進行采樣,得到信號x(n)。對采樣的語音信號x(n)進行分幀,幀長為256,幀移為80,運用漢明窗w(n)對語音信號做加窗處理,得到分幀后的語音信號:
s(n,m),n=1,2,…;m=1,2,…,q,
(9)
式中:s(n,m)為第m幀語音信號;q為幀數(shù)。
(2)對求得的分幀后的語音信號s(n,m)做快速傅里葉變換,得到每一幀語音信號的功率譜,并求得此時語音信號的相位:
(10)
式中:X(k,m)為第m幀語音信號經過快速傅里葉變換后的第k個分量;N為幀長。
(11)
式中:XE(k,m)為X(k,m)的能量值。
(4)將頻域中的語音信號XE(k,m)第m幀語音信號每4點放在一起,求得子帶譜熵:
(12)
式中:Eb(l,m)為第m幀語音信號的第l個子帶能量;Nb為子帶數(shù)。
子帶譜熵概率
(13)
式中:分母為當前m幀語音信號的總能量。
子帶譜熵
(14)
(5)對子帶譜熵的結果進行噪聲預估計,可得到噪聲的估計值Ts,計算方法如下:
(15)
式中:η為前5幀語音信號的譜熵均值;Hb(l)為第l幀語音信號的譜熵值。
(16)
式中:σ為前5幀語音信號的譜熵方差值。
Ts=η+α*σ,
(17)
式中:Ts為噪聲估計值;α為加權值。
進行噪聲估計時,將前5幀語音信號的譜熵均值與譜熵方差值進行取加權平均計算,其中α=1.25。
(6)將計算所得Ts作為初始噪聲估計值,并與帶噪語音信號的子帶譜熵每一幀信號進行比較,當信號的譜熵值小于噪聲的初始估計值時,開始進行噪聲平滑,以獲得更新的噪聲值。信噪比
(18)
(7)運用改進譜減法對帶噪語音信號進行降噪:
(19)
對參數(shù)α、β運用公式(18)及先驗信噪比進行更新:
(20)
(21)
(8)通過上述步驟得到經過語音增強的降噪語音信號功率譜,并對該功率譜進行傅里葉反變換得到分幀語音信號。
(9)從處理過的語音信號中抽取出最終的語音序列。
(10)使用譜熵法對得到的語音信號進行語音端點檢測,得到端點檢測結果。
仿真實驗基于MATLAB R2013a軟件進行,其中語音信號為NOISEX-92噪聲庫、NOIZEUS語音庫的純凈語音信號、噪聲信號及各種信噪比情況下的含噪語音信號,加入不同信噪比的含噪語音信號進行端點檢測研究。
實驗1選取的是一段加入5 dB白噪聲的語音信號,分別運用基本譜減法和本改進算法進行仿真比較,結果見圖3和圖4。
圖3 加入5 dB白噪聲信號的基本譜減法檢測結果
圖4 加入5 dB白噪聲信號的改進算法檢測結果
觀察圖3和圖4發(fā)現(xiàn),本改進算法在低信噪比情況下,對添加了5 dB白噪聲的語音信號具有更好的濾波效果。
實驗2選取的是一段添加5 dB火車噪聲的語音信號,運用譜減法和本改進算法進行仿真比較,結果見圖5和圖6。
觀察圖5和圖6發(fā)現(xiàn),本改進算法具有更好的濾波效果。
圖5 加入5 dB火車噪聲信號的基本譜減法檢測結果
圖6 加入5 dB火車噪聲信號的改進算法檢測結果
實驗3選取一段加入5 dB白噪聲的語音信號,根據(jù)改進型語音端點檢測算法來進行端點檢測,結果如圖7和圖8所示。
圖7 加入5 dB白噪聲信號的改進算法檢測結果
圖8 改進算法的語音信號端點檢測結果
仿真結果表明,改進型多特征語音端點檢測算法在低信噪比情況下,對語音信號有較好的檢測效果。
本研究在基本譜減算法的基礎上提出了結合改進譜減法與噪聲平滑的多特征端點檢測算法。仿真結果顯示,運用改進算法降噪后進行端點檢測有很好的效果,而且在低信噪比情況下仍有較好的濾波效果,具有很好的適用性和有效性。