吳禮福 孫帥恒王 雷孫芯年
(1南京信息工程大學(xué)電子與信息工程學(xué)院 南京210044)
(2江蘇省大氣環(huán)境與裝備技術(shù)協(xié)同創(chuàng)新中心 南京210044)
由于墻壁、地板或天花板的反射,在封閉空間(如會議室)采集的語聲信號將不可避免地包含混響[1]?;祉憰档驼Z聲信號的清晰度和質(zhì)量,影響自動語聲識別和助聽器系統(tǒng)的性能[2-3]。混響語聲信號由直達聲(Direct sound)、早期反射(Early reflection)和晚期混響(Late reverberation)三部分組成。直達聲是不經(jīng)反射,直接從聲源發(fā)出被傳聲器收集到的聲音;緊隨直達聲音的,被稱作早期反射,它通常由反射次數(shù)較少的強反射構(gòu)成;最后一部分是由一系列難以區(qū)分的反射構(gòu)成,稱作晚期混響[4]。早期的反射分量并不會引起混響效應(yīng),反而會增強語聲的清晰度。因此,晚期反射分量是混響效應(yīng)中造成語聲感知質(zhì)量下降的主要原因?!叭セ祉憽?Dereverberation)的目的就是在保留語聲直達分量和早期反射分量的同時,減少所獲取信號中的晚期混響分量。
Lebart等[5]提出了一種基于譜增強的單通道語聲去混響技術(shù),并由Habets[6]將其推廣到多通道去混響算法中,然而,譜增強法通常會出現(xiàn)由相位和幅度估計誤差所引起的語聲失真。多通道線性預(yù)測(Multi-channel liner prediction,MCLP)算法是一種常用的基于語聲線性預(yù)測模型的去混響方法,能夠在有效衰減混響的同時保證語聲質(zhì)量。Nakatani等[7-8]在基于MCLP算法的基礎(chǔ)上,結(jié)合語聲信號的時變特性,提出了基于統(tǒng)計模型的語聲去混響方法,即加權(quán)預(yù)測誤差(Weighted prediction error,WPE)算法。WPE算法可以在時域或短時傅里葉變換(Short time Fourier transform,STFT)域中進行,但是WPE算法是離線的批處理算法,不能實現(xiàn)實時地自適應(yīng)去混響[9]。
在線的自適應(yīng)去混響算法可以基于遞歸最小二乘(Recursive least squares,RLS)算法[10]實現(xiàn)。自適應(yīng)去混響算法在保證具有快速收斂率的同時,還需準確地更新濾波器系數(shù)。然而,在實際的會議系統(tǒng)中,當話者切換導(dǎo)致說話人位置突變時,房間沖激響應(yīng)(Room impulse response,RIR)也會隨之改變,如果在已收斂的濾波器系數(shù)之后繼續(xù)更新濾波器系數(shù),算法存在發(fā)散的風險或者需要較長的收斂時間[11]。本文在自適應(yīng)去混響算法的基礎(chǔ)上,集成了一種對說話人位置突變的檢測方法,可以較為準確地判斷說話人位置是否突變,當檢測到說話人位置發(fā)生變化時,通過初始化濾波器系數(shù)以提高算法的穩(wěn)定性和收斂速度。
傳聲器陣列模型如圖1所示,假設(shè)房間里僅有一個聲源,利用均勻線性傳聲器陣列進行語聲信號采集,共有M個遠場傳聲器。
圖1 傳聲器陣列模型Fig.1 Microphone array model
MCLP算法在時域建模時,預(yù)測濾波器的長度設(shè)置與RIR的長度呈正相關(guān)。在混響時間較長時,預(yù)測濾波器的長度會非常長,導(dǎo)致求解濾波器系數(shù)的計算量很大。為了降低計算量,MCLP算法更多地選擇在子帶或STFT域進行建模[12]。本文采用STFT后的時-頻域來表示聲信號。設(shè)xm(n,k)為時-頻域中第m個傳聲器在第n幀第k個頻帶處的觀測信號,可以將其分解為期望信號dm(n,k)和后期混響rm(n,k),
其中,dm(n,k)包含直達信號及其早期反射信號。
本文的目標是消除后期混響成分rm(n,k),從而達到提取期望信號dm(n,k)的目的。根據(jù)文獻[7]中提出的延遲線性預(yù)測模型,后期混響rm(n,k)可以從過去的觀測信號中估計為
其中,gm(l,k)是第m個傳聲器在第k個頻帶處的第l個預(yù)測濾波器系數(shù),Lg為預(yù)測濾波器的長度,D是在MCLP模型中引入的一個額外的預(yù)測延遲,以防止對語聲信號的短時相關(guān)性造成明顯的失真,達到只抑制晚期混響的目的,D的取值一般對應(yīng)于時域中的10~30 ms,本文中設(shè)置為D=3(對應(yīng)時域的24 ms)。結(jié)合式(1)和式(2),期望信號dm(n,k)可以用矩陣形式表示為
其中,預(yù)測濾波器的系數(shù)G(n,k)和語聲信號X(n-D,k)都是一個大小為MLg×1的列向量,
期望信號dm(n,k)可以看作延時線性預(yù)測模型中的預(yù)測誤差,因此,通過計算預(yù)測濾波器在每一幀的每一個頻點k處的預(yù)測系數(shù)G(n,k),然后應(yīng)用式(3)來實現(xiàn)最優(yōu)濾波,達到語聲信號去混響的目的。
根據(jù)文獻[9],基于加權(quán)遞歸最小二乘(Weighted recursive least squares,WRLS)準則,求解時變的濾波器系數(shù)G(n,k)的代價函數(shù)可以定義為
式(7)中的λ為遺忘因子,取值范圍為0<λ<1。σ2(τ,k)為加權(quán)因子,是期望信號的方差。
令
得到
再令式(9)中
其中,符號(·)*表示對矩陣取復(fù)共軛。
聯(lián)立式(9)~(11)可求得自適應(yīng)濾波器系數(shù)G(n,k)的表達式為
直接采用式(10)求解會涉及到對矩陣求逆的問題,即求解R-1(n,k),因此,本文采用遞推算法來迭代計算逆矩陣,利用Woodbury求逆公式[13]得到如下基于RLS的自適應(yīng)去混響算法:
K(n,k)=
自適應(yīng)算法根據(jù)式(13)~(16)對觀測信號進行迭代計算,實現(xiàn)去混響。其中,期望信號的方差σ2(n,k)通過遞歸平滑的方式估計為
其中,β為遞歸平滑因子。
雖然第1節(jié)中描述的自適應(yīng)去混響方法能夠跟蹤RIR的緩慢變化,但話者切換或說話人位置突變引起的RIR突然變化會使算法發(fā)散或者需要較長時間的迭代收斂。因此,為了更快速地跟蹤RIR的突然變化,去混響算法最好能檢測到說話人位置的突變,并重新初始化濾波器系數(shù)的更新。
基于MCLP的自適應(yīng)去混響算法在對語聲信號去混響后,依然保留了聲源與傳聲器陣列之間的到達時間差(Time difference of arrival,TDOA)信息。當聲源位置發(fā)生突變后,傳聲器陣元間的TDOA也必然發(fā)生變化。因此,可以對去混響信號進行時延估計(Time delay estimation,TDE),通過檢測不同傳聲器信號之間時延的變化來判斷說話人位置的突變。
本文采用廣義互相關(guān)(Generalized cross correlation,GCC)算法[14]來估計時延。將多路去混響信號作為時延估計算法的輸入信號,根據(jù)式(18)得出當前幀的去混響信號之間的互相關(guān)函數(shù),然后通過式(19)估計出去混響信號之間的時延:
其中,Gx1x2(ω)為兩信號之間的互功率譜,表示為為頻域加權(quán)函數(shù),表示為Ψ12(ω)=1/|Gx1x2(ω)|。這種加權(quán)函數(shù)被稱為相位變換(Phase transformation,PHAT)加權(quán),PHAT-GCC方法相對其他加權(quán)方法而言,對混響的魯棒性較好[15]。
然而經(jīng)過去混響后的語聲仍會殘留一些混響,這會導(dǎo)致時延估計算法在某些時刻產(chǎn)生錯誤的估計值,特別是當處于混響較強的環(huán)境下時,時延估計的正確率會明顯降低,估計誤差明顯增大,這會影響對聲源位置突變的判斷。為了減少錯誤的時延估計值,提高算法的魯棒性,對估計出的時延數(shù)據(jù)進行了下列處理:
(1)設(shè)置合理的時延區(qū)間
根據(jù)圖1中的傳聲器陣列模型進行TDOA估計時,聲源到傳聲器陣列的夾角為θ,d為兩個傳聲器之間的間距,c為空氣中的聲速,根據(jù)傳聲器陣列的幾何關(guān)系,兩個傳聲器間的時延可以表示為τ12=dcosθ/c,因此正確的時延值應(yīng)該滿足
根據(jù)式(20)對估計的時延數(shù)值逐一進行判斷,將不合理的時延剔除。
(2)數(shù)據(jù)平滑后取多幀平均
依次對每一幀的時延值進行數(shù)據(jù)平滑,平滑后的時延表示為
再對每m0幀的數(shù)據(jù)取均值,這m0幀時間內(nèi)的時延表示為
其中,m0的取值過大或過小都會影響算法的效果,本文通過實驗驗證選取了較為合適的數(shù)值,m0的取值為10。
(3)計算時延的相對變化
在每個時刻時延的相對變化定義為
本文設(shè)定了一個閾值?,若當前時刻時延的相對變化量大于設(shè)定的閾值,即滿足δ(t)>?,則判定說話人位置發(fā)生突變。閾值?的確定取決于時延的相對變化,而影響時延的相對變化量的主要參數(shù)是傳聲器間距d和聲源角度θ,傳聲器間距d越大,選取的閾值?也應(yīng)該越大。針對本文的實驗條件,為了選取一個合適的閾值,在第3節(jié)中進行了大量的仿真實驗,最終根據(jù)仿真結(jié)果確定了?的取值,見表1。
本文的仿真實驗條件如下:利用Allen等[16]所提出的鏡像源法(Image method)模擬生成RIR,模擬的房間尺寸為6 m×5 m×3 m,混響時間T60∈{300,500,800}ms。設(shè)置由4個傳聲器組成的線性陣列,其中傳聲器之間的間隔為10 cm,聲源與傳聲器陣列中心的距離為2 m。聲源先位于傳聲器陣列的左側(cè)45°方向發(fā)聲,6 s后改變到右側(cè)45°的位置。仿真實驗中的語聲數(shù)據(jù)均來源于TIMIT語聲數(shù)據(jù)庫[17],其采樣頻率為16 kHz。實驗中的各項參數(shù)設(shè)置如表1所示。
表1 實驗參數(shù)設(shè)置Table 1 Experimental parameter setting
圖2顯示了混響時間T60=500 ms條件下時延的相對變化量,從圖中可以看出,在6 s時刻說話人位置突變時,時延的相對變化量明顯增大,超過了所設(shè)置的閾值。在大量的仿真測試中,第2節(jié)所提出的檢測方法都正確地檢測到了說話人位置的突變。
圖2 時延的相對變化Fig.2 Relative variation of time delay
算法的性能和去混響效果采用Mel頻率倒譜系數(shù)(Mel frequency cepstral coefficient,MFCC)距離改善(ΔMFCC)[18]和語聲質(zhì)量感知評價[19](Perceptual evaluation of speech quality,PESQ)兩種客觀指標來評估。最終的仿真結(jié)果均是10組不同模擬混響樣本的集合平均值。
3.2.1 遺忘因子選擇
為了確定最佳的遺忘因子大小,本文通過仿真驗證了不同遺忘因子下算法的去混響性能,如圖3所示。從圖中可以看出,過小的遺忘因子會嚴重影響算法的去混響效果,這是因為遺忘因子過小會導(dǎo)致自適應(yīng)算法在迭代過程中產(chǎn)生晚期混響過估計的問題,過多的消減掉了期望信號中的有用的語聲信號成分,從而導(dǎo)致語聲信號失真,因此應(yīng)選擇較大的遺忘因子。通過仿真驗證,最終確定遺忘因子λ=0.995。
圖3 不同遺忘因子下的PESQ得分Fig.3 PESQ scores under different forgetting factors
3.2.2 混響抑制性能分析
MFCC是一種優(yōu)良的譜包絡(luò)參數(shù),MFCC在一定程度上模擬了人耳的聽覺特性,所以基于MFCC的失真測度可以準確地體現(xiàn)出去混響語聲的失真大小。把純凈語聲作為參考信號,分別計算參考信號與混響信號和去混響信號之間的MFCC失真距離,記作MFCCin和MFCCout,然后兩者做差便得到ΔMFCC,該值越大時,說明去混響效果越好。
從圖4(a)中可以看出,在6 s時刻說話人位置突變后,ΔMFCC的值急劇下降,并且在1 s后才重新趨于穩(wěn)定,這說明說話人位置的突變影響了算法的穩(wěn)定性和去混響效果。圖4(b)顯示了具有說話人位置突變檢測的去混響信號的ΔMFCC情況。相較于圖4(a),可以明顯看出,6 s后圖4(b)中ΔMFCC的值更快速地趨于穩(wěn)定。這是因為具有說話人位置突變檢測的RLS去混響算法在6 s時成功檢測到說話人的位置變化,然后算法重新初始化濾波器的更新,提高了算法的收斂速度,獲得了更好的去混響效果。這說明具有說話人位置突變檢測的去混響算法有效提高了算法的魯棒性。
圖4 MFCC距離改善Fig.4 MFCC distance improvement
圖5顯示了混響時間T60=500 ms下的語聲信號語譜圖,從圖5(b)中可以看到,6 s時刻說話人位置的突變嚴重影響了去混響算法的效果,導(dǎo)致一段時間內(nèi)的頻譜結(jié)構(gòu)變得比較模糊。而使用本文提出的帶有說話人位置突變檢測的去混響方法,相較于圖5(b),圖5(c)中的語譜圖在6~7 s這段時間內(nèi)的模糊程度明顯下降,模糊的頻譜結(jié)構(gòu)變得更加清晰。
圖5 語聲信號語譜圖Fig.5 Spectrogram of speech signal
3.2.3 高斯噪聲環(huán)境下算法魯棒性
該實驗測試本文所提算法在加性高斯白噪聲環(huán)境下的去混響性能。用PESQ得分和語聲-混響調(diào)制能量比(Speech-to-reverberation modulation energy ratio,SRMR)[20]作為評價指標。
通過在混響信號中加入不同程度大小的高斯白噪聲生成所需的測試信號,圖6和圖7分別顯示了不同混響信噪比(Reverberation signal-to-noise ratio,RSNR)下,去混響信號的平均PESQ得分和平均SRMR??梢钥闯?,本文所提出的帶有聲源位置突變的去混響算法在高斯白噪聲環(huán)境下依然有很強的魯棒性,在不同混響強度下的去混響效果相較于原算法都有較大提升。
圖6 不同噪聲環(huán)境下的PESQ得分Fig.6 PESQ score in different noise environments
圖7 不同噪聲環(huán)境下的SRMR得分Fig.7 SRMR scores in different noise environments
為了更合理地評估所提算法的去混響性能,采集了真實房間記錄的多組混響信號對算法進行驗證,并測試了算法對不同聲學(xué)比位置處(改變聲源距傳聲器陣列的距離d)拾聲信號的去混響性能。如圖8所示,采用4個間隔為10 cm的傳聲器陣列,在一個混響時間約為700 ms的房間中采集混響信號,傳聲器陣列和揚聲器的高度都為1 m,揚聲器在6 s時從傳聲器陣列的左側(cè)45°改變到右側(cè)45°位置,每次實驗播放的12 s純凈語聲信號均取自TIMIT數(shù)據(jù)庫。此外,為了增加實驗的可驗證性和豐富實驗樣本,提高實驗結(jié)果的可靠性,本實驗還采用了實際環(huán)境錄聲的多通道房間脈沖響應(yīng)數(shù)據(jù)庫[21]與TIMIT數(shù)據(jù)庫的純凈語聲信號進行卷積作為測試信號。最終的實驗結(jié)果是真實房間記錄的混響信號和MARDY數(shù)據(jù)庫樣本的平均值。
圖8 傳聲器位置示意圖Fig.8 Diagram of the microphone position
隨著聲源與傳聲器之間距離的增加,傳聲器所采集語聲信號的混響強度也會增加,語聲質(zhì)量也隨之下降。圖9為聲源距傳聲器陣列不同距離時的PESQ得分和SRMR,可以看出,對于說話人位置突變的語聲信號,本文所提出的帶有說話人位置突變檢測的去混響算法均有效地提高了混響語聲信號的質(zhì)量。
圖9 聲源距傳聲器不同距離時算法平均PESQ和SRMR得分Fig.9 The algorithm averages PESQ and SRMR scores when the sound source is different from the microphone
本文研究了一種能夠檢測說話人位置變化的自適應(yīng)語聲去混響方法,該方法采用RLS算法實現(xiàn)濾波器系數(shù)的自適應(yīng)估計更新,如果聲源的位置發(fā)生變化,該方法將檢測這些變化并重新初始化濾波器系數(shù)的估計,使基于RLS的MCLP去混響方法對目標聲源的位置變化更具魯棒性。仿真實驗的結(jié)果驗證了該方法的有效性。