張皓然,王學淵,李小霞
(特殊環(huán)境機器人技術四川省重點實驗室(西南科技大學信息工程學院),四川綿陽 621010)
(?通信作者電子郵箱121053406@qq.com)
現(xiàn)實環(huán)境下,聲信號不可避免地會受背景噪聲的干擾,導致聲信號的質(zhì)量下降,尤其在低信噪比(Signal-to-Noise Ratio,SNR)環(huán)境下。對聲信號進行降噪處理,并從帶噪聲信號中提取出純凈聲信號,改善聲信號質(zhì)量、提升可懂度,常用的降噪算法有譜減法[1]、自適應濾波[2]、維納濾波[3]等。
其中,譜減法具有運算量小和容易實時實現(xiàn)的優(yōu)點;但是也存在著沒有對目標聲信號頻譜進行假設的問題,因此譜減法在對目標聲信號降噪后,會帶來“音樂噪聲”[4]。自適應濾波能夠自動迭代優(yōu)化自身的濾波器參數(shù),在對白噪聲的處理上有很好的效果;如果噪聲是非平穩(wěn)或者為有色噪聲,則會嚴重影響目標聲信號的降噪效果,而且降噪后的信號也含有明顯的“音樂噪聲”[5]。維納濾波算法是在最小均方準則下實現(xiàn)對目標聲信號估計的一種濾波器,具有降噪后的殘留噪聲類似于白噪聲而非“音樂噪聲”的優(yōu)點;但是由于沒有考慮到聲信號頻譜分量的幅度對人的聽覺的重要性,在低信噪比下降噪后的信號會存在一定的失真[6]。
針對降噪算法中在低信噪比情況下存在的信號失真和產(chǎn)生音樂噪聲等問題[7],Ephraim 等[8]提出了一種基于最小均方誤差對數(shù)譜幅度估計的新算法。由于人耳對聲音強度的感受是與譜幅度的對數(shù)成正比的,因此在處理聲信號幅度譜時,采用對數(shù)譜的最小均方誤差準則更為適合,可在低信噪比環(huán)境下具有更好的降噪效果,并大幅度地抑制音樂噪聲[9]。Bahrami等[10]將對數(shù)幅度譜估計上升到廣義冪指數(shù),在廣義譜中進行降噪處理,可以更有效地抑制噪聲。
然而,在實時處理中背景噪聲幅度譜的估計尤為重要,直接決定了降噪算法的性能[11]。傳統(tǒng)的MMSE-LSA算法通常取前5 幀幅度譜作為噪聲參考,由于實時情況下,目標聲信號前5 幀會通常含有非噪聲部分,導致過減情況的產(chǎn)生,在實時處理上有著很大局限性,并不能得到準確的背景噪聲幅度譜作為參考噪聲。因此如何準確地提取出噪聲幅度譜一直是聲信號降噪研究中的難點和重點之一。而活動語音檢測(Voice Activity Detection,VAD)檢測作為語音檢測常用的方法,能夠?qū)⒃肼暥魏湍繕寺曅盘柖畏蛛x開來,把噪聲段通過短時傅里葉變?yōu)樵肼暦茸V來作為降噪的參考噪聲[12]。但是由于傳統(tǒng)的VAD 檢測一般使用的是固定閾值,而在不同背景環(huán)境下,使用固定閾值可能會導致VAD檢測失效。
為此,本文提出了一種自適應閾值VAD 算法,利用能量概率最大值的概率統(tǒng)計來進行噪聲段的提取,能得到更精確的背景噪聲,并進行保存;然后結合最小均方誤差對數(shù)譜幅度估計(Minimum Mean-Square Error Log-Spectral Amplitude estimation,MMSE-LSA)算法實現(xiàn)對噪聲幅度譜的實時估計,從而更好地還原真實聲信號。
針對如何準確地提取出噪聲幅度譜的問題,VAD 作為常用的語音檢測算法,能夠在目標信號和背景噪聲分離過程中起到較好的作用。
VAD 在本實驗中的作用主要是找出帶噪聲信號的背景段,為后續(xù)降噪處理提供最佳的參考噪聲,來提升降噪算法的降噪性能。常用的VAD 可以通過能量、過零率、倒譜等特征來進行對聲信號和噪聲段的判別,本文采用的是基于單參數(shù)雙門限VAD檢測。
設聲信號加窗分幀后為xi(m),其中下標i表示聲信號的第i幀,幀長為N,總幀數(shù)為m。則第i幀的短時能量[13]為:
單參數(shù)雙門限檢測法判決[14]如圖1所示,具體步驟如下:
1)根據(jù)在聲信號短時能量包絡線上選取的一個較高閾值T2(圖1(b)中以水平虛線表示)進行一次初級判定,如果信號的短時能量高于閾值T2,則將該段信號判定為目標聲信號(CD段為目標聲信號)。
2)在平均能量上確定一個較低的閾值T1(圖1(b)中以水平實線表示),并從C點往左、從D點往右搜索,分別找到短時能量包絡與閾值T1相交的兩個點B和E,則BE段就是用雙門限法根據(jù)短時能量所判定的目標聲音段的起止點位置。然而,實際情況下,一段聲音中有時候會存在小段靜默,導致能量譜低于T1的情況,所以需要一小段拖尾,來避免將同一信號分成兩段,對應到圖1中把BE段延長到AF段處。
將VAD用于聲信號降噪預處理時,傳統(tǒng)VAD算法在進行能量檢測時,選用固定能量作為閾值[15]。而現(xiàn)實環(huán)境中,不同場景下的背景噪聲差距很大,所以采用固定閾值,常出現(xiàn)將噪聲和聲信號誤判的情況,為此本文提出了一種基于概率最大值的自適應閾值VAD檢測方法。
圖1 雙門限判決示意圖Fig.1 Schematic diagram of double threshold decision
考慮到噪聲段的長度遠大于目標信號段的長度,所以提出對閾值作自適應調(diào)整。對獲得的每幀能量進行概率最大值的統(tǒng)計,提取出現(xiàn)概率最大的能量值作為門限參考T,并基于此T實時調(diào)整高低門限閾值。
但是在信噪比非常低的情況下,可能導致VAD 無法判別出聲信號與噪聲,故在實時處理中把獲得的背景噪聲保存進噪聲庫中,當VAD 生效時,用最近一段的背景噪聲作為后續(xù)降噪算法的噪聲幅度譜參考。通過該方法,使VAD 能根據(jù)實際情況準確得到背景噪聲段。
自適應閾值單參數(shù)雙門限VAD算法步驟如下:
1)利用式(1)對輸入的聲信號進行分幀加窗處理并求取每幀的短時能量,再進行歸一化。
2)對每幀的能量進行統(tǒng)計,得到所有幀的能量概率,即繪制出能量的概率直方圖。從概率直方圖中找到最大值所對應的能量T,即取出概率最大值的能量。
3)根據(jù)概率最大值的能量T來設置高門限T2和低門限T1。根據(jù)大量實驗的比較,得到經(jīng)驗值,其中,T2=T+0.01,T1=T+0.001。
4)利用單參數(shù)雙門限VAD 進行檢測,將能量高于雙門限的部分作為帶噪聲信號,而將能量低于雙門限的部分作為背景噪聲部分,將帶噪聲信號和背景噪聲進行分離,并將背景噪聲保存在背景數(shù)據(jù)庫中。
VAD 聲信號檢測和背景噪聲截取的具體流程如圖2所示。
本文的自適應閾值VAD 檢測算法,可以在不同環(huán)境中通過實時提取到的概率最大的能量值來自適應設定高低門限,能夠更加精確地分離目標信號以及背景噪聲,并為MMSELSA降噪算法提供準確的背景噪聲,提高降噪性能。
圖2 VAD算法流程Fig.2 Flowchart of VAD algorithm
設x(t)為純凈聲信號,d(t)為加性噪聲,帶噪聲信號y(t)可以表示為:
雖然大部分聲信號是時變的,但是通常在10~30 ms 區(qū)間段可認為是近似平穩(wěn)的,可以對帶噪信號進行分幀加窗處理,然后進行傅里葉變換[16]。鑒于人耳對聲信號相位不敏感,則只考慮短時譜的幅度[17],即式(2)的短時譜為:
其中:Yk(m,ω)表示帶噪聲信號第m幀的短時幅度譜;Xk(m,ω)表示純凈聲信號第m幀的短時幅度譜;D(ω)表示噪聲短時幅度譜。
通過帶噪信號幅度譜和噪聲幅度譜可以得到后驗信噪比γk(m):
由于只利用后驗信噪比進行降噪的效果有限,未能消除干凈的噪聲會轉(zhuǎn)變成明顯的音樂噪聲。為抑制音樂噪聲以提高降噪效果,提出利用先驗信噪比ξk(m)來進行降噪。利用直接判決法[18]對先驗信噪比進行估計:
其中:Yk(m -1,ω)為上一幀帶噪聲信號;G(γk -1,ξk -1)為上一幀的增益函數(shù);α為平滑系數(shù)?;谙闰炐旁氡鹊膶?shù)譜估計增益函數(shù)能較好地消除音樂噪聲,利用對數(shù)估計器得增益函數(shù)[19]:
其中vk定義為:
通過增益函數(shù)可求得降噪后的純凈聲信號的短時幅度譜,如式(8)所示:
用離散快速傅里葉反變換(Inverse Fast Fourier Transform,IFFT)運算將Xk(m,ω)變換為時域信號(t)。
針對傳統(tǒng)算法在低信噪比情況下產(chǎn)生的過減和降噪效果差的問題,本文提出來一種基于實時的MMSE-LSA降噪算法,圖3為降噪算法流程。
圖3 基于實時的MMSE-LSA降噪算法流程Fig.3 Flowchart of real-time based MMSE-LSA noise reduction algorithm
傳統(tǒng)的MMSE-LSA算法中對噪聲譜的估計常用的是截取信號的前5 幀進行短時傅里葉變化并求幅度譜均值。由于信號前5 幀可能會含有有用信息,導致參考噪聲幅度譜估計偏差很大,存在著過減和降噪性能差等問題。對帶噪聲信號進行自適應閾值VAD 檢測,獲取到背景噪聲段來作為參考噪聲d(t);當聲信號信噪比過低,會導致VAD 算法失效,則返回到背景噪聲數(shù)據(jù)庫中,選用最近一段的背景噪聲作為后續(xù)降噪算法的背景噪聲參考d(t),保證降噪算法能有最佳的參考噪聲。為了更好估計噪聲譜,對噪聲譜的每一幀進行實時更新,通過指數(shù)平滑得到自適應噪聲譜。
其中:β為平滑系數(shù);Dk(m-1,ω)為上一幀的噪聲幅度譜。對噪聲譜的實時更新可以更好滿足降噪的需求。
實時MMSE-LSA算法流程如下:
1)對帶噪信號進行自適應閾值VAD檢測,并判斷VAD是否生效。當VAD 未生效時,從背景數(shù)據(jù)庫中提取出最近一段的背景噪聲作為參考噪聲d(t)。
2)對帶噪信號和參考噪聲進行分幀加窗處理,然后進行傅里葉變換,分別得到短時幅度譜。
3)利用式(4)中的帶噪信號幅度譜和噪聲幅度譜可以得到第m幀的后驗信號比γk(m) 。
4)利用式(5)的直接判決法對第m幀先驗信噪比進行估計,再根據(jù)式(9)的指數(shù)平滑對噪聲譜進行實時的更新,并將更新的噪聲譜返回到式(3)中。
5)利用式(6)的先驗信噪比得到第m幀增益函數(shù)G(γk,ξk),并將增益函數(shù)返回到式(4)中。
6)利用式(8)的增益函數(shù)可求得降噪后的純凈聲信號的短時幅度譜,并用IFFT 運算將變換為時域信號(t)。
本實驗采用硬件設備為HUSHAN(湖山)MH510M 音頻播放系統(tǒng)(功放設備1 個和音箱2 個),自由場麥克風套件MPA661(含MP661 傳聲器及MA802 前置放大器),NI PXI-4472B 數(shù)據(jù)采集設備(102.4 kS/s,0.5 Hz 交流/直流耦合,5 輸入PXI 聲音與振動模塊);麥克風離音響的垂直距離為7 m、7 m、11.5 m、12 m、12 m,麥克風的距地面的高度為1.5 m,麥克風和音響位置如圖4 所示,音響1 播放純凈的音頻,音響2播放白噪聲。
本實驗處理的是現(xiàn)實實驗場景所錄制的音頻(樓道內(nèi)功放4 種聲信號+白噪聲,采樣率為16 kHz),4 種聲音分別為人聲、腳步聲、時鐘聲和發(fā)動機聲。噪聲模型相當于樓道中的背景噪聲(包括有色噪聲和混響)+播放的白噪聲,而且從揚聲器中播出的白噪聲不再是純粹的白噪聲,更類似于有色噪聲。實驗中幀長為256點,幀移128點,采用漢明窗進行加窗,平滑系數(shù)設置為0.98。對比原始的MMSE-LSA 的降噪效果,本文改進的算法使噪聲基本得到了消除,信噪比有明顯的提升。圖5、圖6 分別為人聲與發(fā)動機聲的實驗音頻的時域和時頻圖。
圖4 現(xiàn)實實驗場景麥克風位置Fig.4 Microphone positions in real experimental scene
對比圖5~6 可以發(fā)現(xiàn),傳統(tǒng)MMSE-LSA 降噪算法在真實實驗中對人聲中的背景噪聲有明顯的削弱,但是在發(fā)動機聲處理上存在著明顯的過減情況。相較于傳統(tǒng)的MMSE-LSA的取前5 幀取進行的噪聲幅度譜估計,本文的自適應閾值VAD檢測能夠提取到準確的噪聲幅度譜作為MMSE-LSA的參考噪聲,再經(jīng)過實時MMSE-LSA 降噪處理,沒有產(chǎn)生過減的問題,而且降噪性能相對于傳統(tǒng)算法而言更好。表1 給出了4 類聲信號降噪前后的信噪比,更能直觀地反映降噪效果。
表1 真實實驗中4類聲音降噪前后信噪比單位:dBTab.1 Signal-to-noise ratio before and after noise reduction of four types of sounds in real experimentsunit:dB
圖5 現(xiàn)實實驗場景人聲時域信號和時頻圖Fig.5 Vocal time domain signals and time-frequency diagrams in real experimental scene
圖6 現(xiàn)實實驗場景發(fā)動機聲時域信號和時頻圖Fig.6 Engine sound time domain signals and time-frequency diagrams in real experimental scene
從表1 中可以明顯看出,本文算法相較于MMSE-LSA 算法而言對,在有色噪聲和白噪聲的處理上有著更加好的降噪效果,基本消除了噪聲,進一步還原了目標聲信號。
針對低信噪比的聲信號以及傳統(tǒng)方法在實時處理上的局限性,本文提出了一種自適應閾值VAD 算法,利用概率統(tǒng)計對背景噪聲進行估計,有效提高了VAD 算法的準確性和魯棒性,能夠得到更加準確的背景噪聲作為降噪算法的參考噪聲,提升了降噪效果。其次,利用實時思想對MMSE-LSA 算法進行改進,能對噪聲譜進行實時更新,并對噪聲譜進行指數(shù)平滑,保證了對噪聲譜實時估計,提高算法的性能。通過實驗結果表明,該算法在保證了在低信噪比的情況下,相較于MMSE-LSA 算法而言,降噪后比降噪前聲信號的信噪比提高10~15 dB,可應用于實際的工程。接下來,可進一步研究對降噪后的目標聲信號進行特征提取,最后通過分類器進行辨識,能夠大幅度提高目標聲信號的辨識率。