張二亮,曹雪林,朱 松,付 康
(鄭州大學 機械與動力工程學院, 鄭州 450001)
聲源定位是語音信號處理中的重要研究內(nèi)容之一,被廣泛應(yīng)用到民用和軍事領(lǐng)域,如遠程會議中的演講者定位、狙擊手位置檢測、設(shè)備異響檢測、監(jiān)視和噪聲源追蹤等[1]。這些應(yīng)用大部分是在低信噪比、強混響環(huán)境下進行的,且要求實時、高精度定位。
為了解決混響環(huán)境下的聲源定位問題,Barrios等[2]提出了基于相位變換加權(quán)指向響應(yīng)功率(SRP-PHAT)算法,其在低信噪比、強混響環(huán)境下具有較好的魯棒性。為了進一步提高SRP-PHAT算法的定位性能,Ramamurthy等[3]引入PHAT-β加權(quán)函數(shù)。由于聲學定位算法需要對感興趣平面進行電子遍歷搜索,因此,海量計算給SRP-PHAT算法的實際應(yīng)用帶來局限。目前存在兩類解決途徑,一類可歸為智能搜索,如Do等[4]提出了隨機區(qū)域收縮SRP-PHAT算法,有效提高了計算速度。Zhuo等[1]提出了改進的離線數(shù)據(jù)庫來控制響應(yīng)能力和相變,基本思想是在定位前使用SRP-PHAT和密度峰值聚類來確定可能的聲源位置,然后進行定位。Boora等[5]將SRP-PHAT與迭代網(wǎng)格搜索策略相結(jié)合,先在粗網(wǎng)格計算,然后迭代細化網(wǎng)格,直到完成聲源定位。Salvati等[6]先對所有區(qū)域進行靈敏度劃分,在靈敏度高的區(qū)域降低分辨率來計算。另一個提高計算速度的途徑是借助圖形處理單元(GPU)的強大算力,譬如文獻[7-9]中提出的CPU和GPU異構(gòu)并行計算,有效提高了計算效率。此外,Diaz-Guerra等[10]提出了一種基于SRP-PHAT和卷積神經(jīng)網(wǎng)絡(luò)的單聲源DOA估計方法,加快了計算效率,驗證了算法在強混響下的性能。
為了實現(xiàn)在低信噪比、強混響環(huán)境下多聲源定位,Liu等[11]提出了SRP與多通道互相關(guān)系數(shù)相結(jié)合,通過抑制非入射波方向來提高聲源定位精度。Diaz-Guerra等[12]提出了聲源消除技術(shù),該方法基于在與源位置正交的子空間上的投影來消除源產(chǎn)生的主峰和與其相關(guān)的峰,以此來提高定位效果。Daniele等[13]提出了一種基于幾何采樣網(wǎng)絡(luò)的體積網(wǎng)格SRP-PHAT算法,通過使用最大池化操作來最小化噪聲和混響的影響,最大化提高GCC精度來提高定位性能。Awad-Alla等[14]提出先根據(jù)到達時間差來估計波達方向,再結(jié)合SRP-PHAT對波達方向進行計算,但該方法計算量仍舊較大。
雖然上述智能搜索算法能夠降低計算成本,但目前僅限于單個聲源定位。為了實現(xiàn)多聲源實時定位,在隨機區(qū)域收縮法[4]的基礎(chǔ)上,提出一種基于K-means聚類的隨機區(qū)域收縮SRP-PHAT算法。該算法通過最小描述長度(MDL)準則確定聲源的數(shù)量,根據(jù)K-means聚類算法進行空間區(qū)域劃分,根據(jù)瑞利限修正K-means聚類算法將1個聲源錯分成2個聲源的情形,通過隨機區(qū)域收縮算法進行空間區(qū)域快速收縮,利用波束主瓣寬度判別聚類將2個聲源看成1個聲源的情形,從而實現(xiàn)多聲源快速正確定位。最后,通過仿真分析,驗證在不同信噪比情形下所提出算法的快速性和定位精度。本文算法的描述和設(shè)計過程中會涉及較多的參數(shù)符號,對其進行整理,如表1所示。
表1 參數(shù)表
假設(shè)陣列中心接受的信號為s(t),則t時刻第j個傳感器接收到的信號為
xj(t)=s(t-τj)+nj(t)
(1)
式中:j=1,…,M。
利用傅里葉變換,得到接收信號的頻域模型為
X(ω)=A(ω)S(ω)+N(ω)
(2)
式中:X(ω)=[X1(ω),…,XM(ω)]T,上標T為轉(zhuǎn)置運算;A(ω)=[e-jωτ1,…,e-jωτM]T為導(dǎo)向矢量。
如圖1所示,假設(shè)q為聲源面上的一點,則q處的指向響應(yīng)功率SRP-PHAT-β定義為
圖1 麥克風陣列的空間成像原理
(3)
式中:上標*為共軛轉(zhuǎn)置;τ(l,m)為聲源位置q到達傳感器l、m的時差。由于PHAT加權(quán)對幅度做歸一化,僅保留相位信息,因此使SRP-PHAT算法在低信噪比、強混響環(huán)境下具有較好的魯棒性[2]。
通過遍歷q,找到指向響應(yīng)功率的最大值,確定聲源位置qs,即
qs=arg maxP(q)
(4)
隨機區(qū)域收縮SRC的基本步驟為:① 劃定一個初始矩形搜索區(qū)域,在矩形搜索區(qū)域內(nèi)計算初始數(shù)量均勻分布的聲源潛在坐標點的功率P,選取較大功率的坐標點,根據(jù)選取的坐標點確定下次迭代的矩形搜索區(qū)域;② 從第二次迭代開始,計算坐標點功率的平均值;③ 選取大于平均值的位置,確定迭代中需要計算隨機坐標點的數(shù)量,計算功率值并且確定新的矩形搜索區(qū)域;④ 依次迭代,直到矩形搜索區(qū)域小于網(wǎng)格分辨率,迭代終止。
傳統(tǒng)的SRC算法目前僅限于單聲源定位,本節(jié)將其拓展至多聲源定位情形。首先,根據(jù)MDL確定聲源個數(shù),利用K-means聚類算法,劃分空間區(qū)域進行收縮,提出聲源判別準則,實現(xiàn)多聲源快速定位。
使用MDL準則確定聲源個數(shù)。基于頻域快拍模型,麥克風陣列接收信號的協(xié)方差矩陣為
(5)
對協(xié)方差矩陣RXX進行特征值分解,獲得特征值:
λ1≥λ2≥λ3…λd≥λd+1≥…≥λM
(6)
MDL信息準則為
(7)
潛在的聲源數(shù)量d可通過最小化MDL(d)來獲得,即
d=arg minMDL(d)
(8)
為了實現(xiàn)多聲源實時定位,將K-means聚類算法與SRC算法結(jié)合為KSRC算法,K-means聚類算法用于在初始矩形區(qū)域選取初始數(shù)量的坐標點后,將選取的坐標點結(jié)合,計算得到的聲源數(shù)量d進行K-means聚類,然后進行迭代。在聚類過程中,有可能會出現(xiàn)兩類錯誤,一是聚類時把1個聲源劃為不同簇,二是聚類時把2個聲源歸為同一類。為了判別和修正可能出現(xiàn)的兩類錯誤,在迭代中引入瑞利限準則和波束主瓣寬度準則。
1) 瑞利限準則
為了判別和修正第一類錯誤,引入瑞利限準則:
(9)
若計算的2個簇中最大值的坐標點之間的距離小于Δu/2,則把該2個簇合并為一類(即來自于同一聲源)。
2) 波束主瓣寬度準則
為了判別和修正第二類錯誤,引入波束主瓣寬度準則:
(10)
若基于某一簇中的坐標點計算獲得的主瓣寬度大于理論值W0,則應(yīng)該將該簇分解為2個類。提出的快速多聲源定位算法流程如圖2所示。
圖2 快速多聲源定位算法流程
Do等[4]指出為了提高計算效率,為參數(shù)J0和Ni尋找最優(yōu)值是有必要的。當其他參數(shù)確定,根據(jù)Ji確定方式不同,衍生了KSRC-Ⅰ和KSRC-Ⅱ兩類算法:① KSRC-Ⅰ,Ji為找到Ni-Gi個高于平均值ui的點;② KSRC-Ⅱ,Ji為找到Ni-Gi個高于集合中對應(yīng)最小輸出功率的點。
使用40個傳感器的對數(shù)多臂螺旋陣列進行實驗,計算公式為
(11)
式中:α=5π/16,α為螺旋角;a=1,2,…,Na,Na=5,a為陣列螺旋臂數(shù)量;b=1,2,…,Nb,Nb=8,b為螺旋臂上麥克風數(shù)量;rmax=0.25 m,rmin=0.05 m,分別為最大極徑和最小極徑;φab為第a個螺旋臂上第b個傳感器的極角。
令聲速c=340 m/s,采樣頻率fs=217Hz,期望信號為高斯白噪聲,信噪比(signal to noise ratio,SNR)SNR=5 dB。Ramamurthy等[3]已經(jīng)證明β=0.65~0.8時,聲源定位效果最好,本文中選用β=0.7。圖3給出了初始隨機坐標點數(shù)量J0對定位準確率的影響??梢钥闯?隨著J0的增大,定位準確率隨之增加,當J0>1 000,定位準確率不再明顯增加,因此選取J0=1 000。經(jīng)研究發(fā)現(xiàn),當N0=50時,便能夠選取足夠數(shù)量的坐標點(超過最大指向響應(yīng)功率的1/3)進行聚類分析,因此取N0=50。聲源面與麥克風陣列中心的距離L=2 m,聲源面大小為4 m×6 m(參見圖1)。
圖3 J0對定位準確率的影響曲線
針對雙聲源和三聲源進行定位算法分析。雙聲源和三聲源定位的收縮迭代歷程如圖4所示。
圖4 雙聲源和三聲源迭代歷程
可以看出,所提算法無論是對雙聲源還是三聲源都能夠準確快速得到聲源定位結(jié)果。
表2給出了當分辨率為1 cm×1 cm、信噪比為5 dB,以及不同聲源個數(shù)時,經(jīng)典SRP-PHAT、KSRC-Ⅰ和KSRC-Ⅱ的平均計算次數(shù)。
表2 算法的平均計算次數(shù)
由表2可知,與傳統(tǒng)的SRP-PHAT算法相比,KSRC-Ⅰ、KSRC-Ⅱ算法不管是單聲源、雙聲源還是三聲源都可以提高至少30倍的計算效率,能夠?qū)崿F(xiàn)快速定位。
另外,對不同信噪比對定位準確率的影響進行研究。分別設(shè)置SNR=10、5、0 dB,添加的噪聲為高斯白噪聲,研究雙聲源定位和三聲源定位在不同信噪比下的定位精度,結(jié)果如圖5所示。
圖5 不同信噪比的定位精度曲線
由圖5可以看出,所提算法在3種不同的信噪比情形下,無論是雙聲源定位還是三聲源定位,隨著信噪比的降低,精度都沒有發(fā)生明顯下降,且定位精度都高于95%,表明所提算法在不同的噪聲環(huán)境下都能保持較好的魯棒性。提出的兩類算法的定位準確度低于傳統(tǒng)的SRP-PHAT算法,原因是其中一個聲源的功率低于最大功率的1/3,導(dǎo)致選取坐標點時被忽略。還可以看出,提出的兩類算法三聲源定位精度比雙聲源低,其原因是聲源個數(shù)越多,在K-means聚類時發(fā)生錯誤的概率越大。
針對多聲源實時定位問題,提出了一種適用于多聲源的隨機區(qū)域收縮SRP-PHAT定位算法,引入了瑞利限準則和波束主瓣寬度準則,糾正聚類分析將同一聲源劃為不同簇和不同聲源的問題,突破了現(xiàn)有同類算法僅適用于單聲源定位的局限。結(jié)果表明,針對不同聲源的情形,兩類算法都能夠提高至少30倍的計算效率;針對不同信噪比的情形,兩類算法都能夠保證定位精度高于95%,能夠?qū)崿F(xiàn)快速多聲源定位,具有較好的魯棒性,對于強混響和低信噪比環(huán)境中的多聲源實時定位具有重要參考價值。