唐浩洋,陳子為,黃 維
(成都信息工程大學 電子工程學院,成都 610225)
基于麥克風陣列的聲源定位技術在人工智能、雷達探測、電話會議等多個領域有廣泛的應用.根據(jù)Brandstein的分類方法[1],將基于麥克風陣列的聲源定位技術分為3類:基于到達時間差的定位技術(TDOA)、基于最大輸出功率的可控波束形成技術和基于高分辨率譜估計的定位技術.基于到達時間差的定位方法在定位準確性上,優(yōu)于另外2種方法[2],并且由于其計算量相對較小、在實時系統(tǒng)中可以實現(xiàn)等原因,在聲源定位方面受到了更多的青睞,被廣泛使用.對于TDOA,獲得準確的時延估計是聲源定位精確的前提條件.根據(jù)所采用的不同物理參量可將時延估計分為2類:1)基于廣義互相關函數(shù)(Generalized Cross Correlation,GCC)[3]的時延估計算法;2)基于自適應最小均方(Least Mean Square,LMS)[4]的時延估計算法.在實際應用中,由于噪聲的干擾和語音信號的短時處理,可能會使GCC時延估計算法出現(xiàn)較大的誤差,通常的做法是引入加權函數(shù)來抑制噪聲干擾.本文介紹了麥克風陣列時延估計模型和廣義互相關時延估計算法以及一種改進算法,并對這幾種加權方法進行了Matlab仿真,通過比較各加權方法的時延估計效果以及聲源定位精度,分析其優(yōu)劣性.
麥克風陣列中,當不同陣元接收同一聲源信號時,由于信號傳輸距離的不同引起了時間上的差別.通過聲源信號到達各麥克風的時間差(即時延)和聲音在媒質(zhì)中的傳播速度即可估計聲源的方向和位置,從而來實現(xiàn)聲源定位.在這個過程中準確的時延估計是基于TDOA的聲源定位技術的前提.
麥克風陣列是由麥克風作為陣元按一定的方法排列組成的陣列.根據(jù)聲源離麥克風的距離遠近,可將聲源傳遞的波分為近場波和遠場波.假設聲源距麥克風陣列較遠,產(chǎn)生的是遠場波.此時可以將遠場波近似看作成平面波.此外,為了簡化分析,將麥克風陣列抽象為均勻線性陣列(Uniform Linear Array,ULA),該陣列由同一直線上距離相同間隔的多個麥克風組成.構建的麥克風陣列模型如圖1所示[2].
圖1 麥克風陣列模型
圖1中,d表示兩陣元的間距,一般通過測量得到,是已知值;φ表示聲源信號與麥克風陣列法線的夾角.
由圖1可知,對于兩個相鄰的陣元,語音信號在傳播過程中存在dsinφ的距離差,這也就使得兩相鄰陣元在接收信號時存在一個時間延遲,即:
式中,c表示聲音的傳播速度,此處假設聲音在1個標準大氣壓和15 ℃的條件下傳播,即c=340 m/s.由式(1)可知,通過計算時間延遲即可估計聲源的方向和位置.
在基于TDOA的聲源定位算法中,Knapp和Carter[3]提出的廣義互相關函數(shù)的時延估計算法是一種傳統(tǒng)的TDE算法.因為來自同一聲源的信號必然存在一定的相關性,該算法根據(jù)這一特點,通過計算不同陣元接收到的聲源信號之間相關函數(shù),利用數(shù)學中相關函數(shù)的性質(zhì),選取使互相關函數(shù)最大的時刻,即可估算出不同陣元間的時延差值.
在一個麥克風陣列系統(tǒng)中,任意選取陣列中的2個麥克風,假設這2個麥克風接收到的信號分別為x(n)和y(n),則這兩路信號可表示為:
其中,n表示接收到的數(shù)字信號的時間采樣點;s(n)表示陣列接收到的有用信號;和表示兩個陣元在接收時產(chǎn)生的加性噪聲,此處將噪聲假定為零均值平穩(wěn)噪聲且與有用信號s(n)相互獨立;和表示聲音在傳播過程中的衰減系數(shù),T表示兩個陣元接收到的有用信號之間的時延.
對于兩個麥克風陣元,其接收到的信號x(n)和y(n)的互相關函數(shù)可表示為:
其中,E[·]為數(shù)學期望.假設有用信號s(n)和加性噪聲v(n)相互獨立,在無混響條件下,將式(2)和式(3)代入到式(4)中,可得:
其中,Rss(τ-T)表示聲源的有用信號s(n)的自相關函數(shù);Rvxvy(τ)表示噪聲vx(n)和vv(n)的互相關函數(shù).
由式(5)可得,若陣元接收到的信號的信噪比足夠的大,由相關函數(shù)的性質(zhì)可知,當 τ =T時,Rss(τ-T)取得最大值.所以,求出當Rxv(τ)取峰值時對應的 τ就可得到了信號x(n)和y(n)之間的時延T,即進行了時延估計.
根據(jù)維納-辛欽定理[5,6],互相關函數(shù)及其互功率譜之間的關系可表示為:
由于混響、噪聲和語音信號的短時處理,信號中可能會包含多個回波分量.在這種情況下,若采用基于互相關函數(shù)的時延估計算法計算得到的互相關函數(shù)是包含直達波與反射波共同形成的峰值,這些峰在低信噪比的情況中會降低時延估計的精度.此外,對于寬帶語音信號,基音周期的存在使得互相關函數(shù)更加復雜[7].為了保證時延估計不受信號本身的影響,盡可能地抑制混響等影響,提高時延估計精度,需要對該算法進行改進.常用的方法就是在信號的功率譜中進行加權,從而在時域中抑制噪聲干擾,銳化相關的信號,使時延估計準確.這種方法得到的互相關函數(shù)就是廣義互相關函數(shù),即[2]:
其中,ψxy(ω)表示GCC的加權函數(shù).GCC的基本原理如圖2所示.
圖2 GCC基本原理
圖 2 中,(·)*表示取共軛運算;|·|表示求模運算.
在實際應用中,針對不同的噪聲情況可以選擇不同的加權函數(shù) ψxy(ω),來達到有效抑制噪聲的目的.將幾種常用的加權函數(shù)以表格的形式進行歸納,如表1所示.
表1 常用GCC加權函數(shù)及其特性
語音信號是明顯的非平穩(wěn)信號,但在10~30 ms的時段上,語音信號是具有短時平穩(wěn)性的.因此,對語音信號進行分幀處理[9]是至關重要的.選取幀長度為256個點,在8 KHz采樣頻率下,這樣大概是32 ms長度的信號.為消除每幀信號的邊緣效應,采用哈明窗(Hamming)對輸入信號加窗.時延估計算法流程如圖3所示.
在眾多加權函數(shù)的廣義互相關時延估計算法中,PHAT-GCC能夠更好地抑制噪聲,使互相關函數(shù)得到更好的銳化效果,從而提高時延估計的精度.加之其算法復雜度低等優(yōu)點,PHAT-GCC時延估計算法被廣泛地應用于實際生活.然而,該算法仍存在一定的弊端,當環(huán)境噪聲過大,出現(xiàn)混響,或者信噪比突變的時候,PHAT-GCC算法的性能也會急劇下降.基于此,本文提出了一種改進的PHAT-GCC算法.
圖3 時延估計算法流程圖
當語音信號受到噪聲的干擾,其最明顯的影響就是語音信號的幅值會發(fā)生一定的變化.因為噪聲具有高頻率,低幅值的特點,當語音信號某時刻幅值較小,噪聲甚至會淹沒該時刻信號.所以提出將接收到的語音信號乘上3次方,即x(n)轉(zhuǎn)化為x3(n).處理之后,原語音信號中幅值較大的信號更大,而幅值較低的更小,能夠有效地抑制噪聲.
在實際情況下,尤其是在封閉環(huán)境中,噪聲會利用墻壁等實體反射,進而導致兩個麥克風陣元接收到的噪聲并非不相關.因此,在PHAT-GCC算法中,需要把PHAT加權函數(shù)中的互功率譜減去相關噪聲的互功率譜.改進后的加權函數(shù)為:
其中,Gvxvy(ω)表示x(n)和y(n)兩傳感器接收到的噪聲的互功率譜.
考慮到在實際情況中,整個頻域內(nèi)的信噪比不可能完全相同.也就是說,對于不同的 ω,信噪比SNR的值也可能不同.為了加強互相關函數(shù)的銳化效果,得到更為精確的時延估計.對于信噪比較大的部分,應賦予一個更大的權值,而當信噪比較小時,賦予較小的權值.因此,構造一個新的加權函數(shù):
其中,加權因子 ρ隨環(huán)境信噪比的變化而變化,其具體值需要多次通過實驗測試優(yōu)化得到.
在PHAT-GCC算法中,當信號能量較小時,加權函數(shù)的分母項趨于0,而加權函數(shù)整體趨于無窮大,從而會出現(xiàn)一個較大的誤差.通常的做法是添加一個非零因子 β來解決該問題[10].此時的加權函數(shù)為:
為了切合廣義互相關算法的思想,本文考慮采用相干函數(shù)的概念作為非零因子 β的選擇依據(jù).對于文中兩個麥克風陣元所接收到的語音信號,其功率譜的相干函數(shù)為:
在實際的系統(tǒng)中,兩個麥克風陣元接收到的信號不可能完全相干,也不可能完全無干,所以 γ2xy(ω)介于0~1之間,這種情況也符合環(huán)境噪聲對相干性的影響.用相干函數(shù) γ2xy(ω)來表征 β,保證了在信號能量較小時減小加權函數(shù)的誤差,也避免了 β取值過大而過多地影響PHAT加權函數(shù).
綜上所述,最終改進的PHAT-GCC加權函數(shù)為:
為了比較分析不同加權函數(shù)的GCC時延估計和聲源定位的性能,本文模擬麥克風陣元間距為d=0.1 m的麥克風陣列接收語音信號.所采集的語音信號時長大約3 s,采樣頻率8 KHz,聲源方向角 φ =60°.該語音信號的波形圖如圖4所示.
圖4 語音信號
廣義互相關函數(shù)的峰值尖銳程度是時延估計準確度的表征[2],峰值越尖銳,時延估計越準確.在50 dB、20 dB和5 dB 3種信噪比情況下,選取CC、Roth、PHAT和改進的PHAT 4種加權函數(shù)做廣義互相關MATLAB仿真.其中對于改進的PHAT-GCC算法,語音信號的預處理如圖5所示.
對于4種加權函數(shù)的GCC算法仿真結(jié)果如圖6~圖8所示.
由圖1麥克風陣列模型和式(1)可知,真正的時間延遲 τ是一個關于入射角 φ的函數(shù).因為 φ是從-90°到90°連續(xù)變化的物理量,這使得 τ也是一個連續(xù)變量.而麥克風陣列中處理的是數(shù)字信號,即時間是一個個離散點.對于式(3)的參數(shù)T,由于x(n)和y(n)是數(shù)字信號,所以T只能取整數(shù).因此,T實際上是時間延遲 τ的一個近似值.
圖5 改進的PHAT-GCC語音信號預處理
將仿真得到的4種加權函數(shù)的GCC時延估計代入式(1),比較在不同信噪比下,聲源定位的準確程度.所得到的數(shù)據(jù)均保留兩位小數(shù),結(jié)果如表2所示.
表2 不同加權函數(shù)聲源定位結(jié)果
圖6 信噪比50 dB時,不同加權函數(shù)GCC的仿真結(jié)果
圖7 信噪比20 dB時,不同加權函數(shù)GCC的仿真結(jié)果
圖8 信噪比5 dB時,不同加權函數(shù)GCC的仿真結(jié)果
根據(jù)仿真結(jié)果,在高信噪比情況下,4種加權函數(shù)得到的廣義互相關函數(shù)峰值均較尖銳,聲源定位精度也很高.但隨著信噪比降低,前3種加權方式的廣義互相關函數(shù)的峰值尖銳程度降低,同時干擾峰值隨之增多,有用信號相關函數(shù)的峰值也不夠明顯.這表明GCC算法的時延估計準確性隨信噪比的降低而惡化,聲源定位精度也隨之驟降.特別地,對于Roth加權,隨著信噪比的降低,性能急劇下降,峰值受噪聲影響嚴重,幾乎淹沒在噪聲中.對于PHAT加權,在高信噪比條件下,峰值尖銳,噪聲波動較小,被很好地抑制;在低信噪比條件下,相對于CC和Roth加權,峰值更加尖銳,保持著良好的抗噪特性.此外,相較于一般的PHAT加權,改進后的PHAT加權法在低信噪比情況下性能明顯更優(yōu),峰值最為尖銳且噪聲能夠被更好地抑制掉,聲源定位的誤差也是最小的.綜合來看,改進的PHAT加權的廣義互相關法表現(xiàn)出最優(yōu)的時延估計性能,而Roth加權的廣義互相關法表現(xiàn)出最劣的時延估計性能.
本文通過Matlab仿真,分析了3種常用加權函數(shù)的GCC時延估計算法的優(yōu)劣性.通過比較廣義互相關函數(shù)、時延估計準確度和聲源定位精度,發(fā)現(xiàn)PHAT加權有更好的抗噪特性,能夠更加準確地做出時延估計.但總體來說,GCC時延估計的準確性隨信噪比的降低,性能逐漸下降.因此,本文提出了一種改進的PHATGCC算法.從實驗結(jié)果來看,該算法在低信噪比情況下也能有效地抑制噪聲銳化峰值,從而提高聲源定位的精度.這對麥克風陣列的研究和設計有著積極地指導意義.在后續(xù)工作中,為了進一步優(yōu)化改進的PHAT-GCC算法,考慮采用神經(jīng)網(wǎng)絡算法,訓練得到一個更優(yōu)的參數(shù)組合,從而提高該算法的性能.