牛永建, 楊飛, 李海龍
(武漢大學電氣與自動化學院, 武漢 430072)
聲音能夠攜帶大量信息,同時聲音的獲取方便簡單,在某些特定場景下,聲音是獲取信息的最佳途徑,聲學場景具有很大的研究與應用潛力。其中,被動式聲源定位技術因實現成本低、隱蔽性好、實時性高等優勢被廣泛應用于機器人視聽、視頻會議、智能家居、助聽器等領域[1]。
聲源定位算法主要包括4大類:基于最大輸出功率的可控波束形成定位算法、基于時延估計的定位算法、基于高分辨率譜的定位算法、基于聲壓幅度比的定位算法[2-6]。基于時延估計的定位算法是目前應用最為廣泛的一種定位算法。相比于可控波束形成定位算法和高分辨率譜定位算法,基于時延估計的定位算法具有復雜度低、運算量小的優勢,因而可以用于實時定位系統;同時,該算法在實際應用中實現成本更低[7]。基于時延估計的定位算法首先根據各傳聲器接收到的聲音信號進行時延估計,然后根據時延估計結果和傳聲器陣列的幾何信息估計聲源位置[7]。
在手機等手持式聲源定位設備這種小尺度傳聲器陣列的應用場景中,由于傳聲器陣列的孔徑相對較小,因此被測聲源通常歸為遠場源。但是,現有的基于時延估計的聲源定位算法大多假定聲源是近場源。根據馬馳等[8]針對四元十字陣的分布式聲源定位進行的研究,王莉等[9]分析發現此項研究適用于小范圍聲源定位,當距離拉遠,定位誤差也會增大,距離相對較遠時會無法實現準確的定位。闞閱[10]研究發現定距誤差與聲源距離成正比,與傳聲器陣列陣元間距成反比。當聲源與傳聲器陣列的距離比較近,或傳聲器陣列陣元間距相對較大時,傳統算法會有比較理想的定位效果;但是當聲源距離拉遠,或傳聲器陣列陣元間距相對較小時,聲源適用于遠場范圍,傳統算法的定距誤差急劇上升。綜上所述,在遠場源情景下,傳統定位算法會無法實現準確的定位。

為了選用合適的傳聲器對,提出一種計算廣義互相關-相位變換(generalized cross correlation phase transformation, GCC-PHAT)時延估計結果置信度的算法,得到的置信度可以作為選用傳聲器對的標準。其核心思想是通過比較GCC-PHAT曲線的最高峰與次高峰峰值差來獲得時延估計結果置信度。同時,使用對應傳聲器對的GCC-PHAT時延估計結果置信度的倒數組成對角陣,近似代替TDOA協方差矩陣。得益于該算法,不需要信號統計特性的先驗知識,僅根據一幀陣列信號就可以估算出TDOA協方差矩陣。
最后,用傳聲器錄制一段真實的男聲音頻作為信號源,通過MATLAB仿真構造具有白噪聲和混響的聲學環境,比較Chan算法、使用傳聲器對篩選算法前后的遠場定位算法的精度。
針對不同的傳聲器陣列陣元間距及聲源與傳聲器陣列間的距離,聲源模型可分為近場模型和遠場模型[12]。設d為傳聲器陣列陣元間距,λ為聲波波長,聲源與傳聲器陣列間的距離為r,當r≤2d2/λ時,認為聲源位于近場范圍;反之,聲源位于遠場范圍[13]。在手機等手持式聲源定位設備這種小尺度傳聲器陣列的應用場景中,傳聲器陣列陣元間距d通常為0.08~0.18 m,聲音信號的頻率范圍f為340~4 000 Hz,聲速c約為340 m/s,由λ=c/f可知,波長λ范圍為0.085~1 m。則遠近場的臨界距離的范圍為0.012 7~0.932 9 m。也就是說,當聲源距離大于0.932 9 m時,聲源歸為遠場源;當聲源距離小于0.012 7 m時,聲源歸為近場源。大部分聲源距離都大于1 m,故在手機等手持式聲源定位設備這種小尺度傳聲器陣列的應用場景中,聲源大多歸為遠場源。下面簡單介紹近場模型和遠場模型。
在近場模型中,聲波以球面波的形式擴散,一個聲源到兩個傳聲器的傳播過程如圖1(a)所示。在遠場模型中,聲波以平面波的形式傳播,一個聲源到兩個傳聲器的傳播過程如圖1(b)所示。

i和j為傳聲器的序號;xi(t)為第i個傳聲器接收到的信號;s(t)為聲源信號;d為陣元間距;ri為聲源到第i個傳聲器的距離;rij為聲源到第i個傳聲器和第j個傳聲器的聲程差;α為聲源方向角圖1 聲學傳播模型示意圖Fig.1 Schematic diagram of acoustic propagation model
由圖1(b)表示的幾何關系和相關知識可得
rij=dcosα
(1)
rij=cτij
(2)
式中:τij為聲源到達第i個傳聲器和第j個傳聲器的時間差。
假設有M個傳聲器,則信號傳播模型表示為
xi(t)=ai*s(t-τi)+ni(t),i=1,2,…,M
(3)
式(3)中:ai為聲源信號到第i個傳聲器的沖激響應函數;*為卷積操作;τi為聲源傳播到第i個傳聲器經歷的時間;ni(t)為第i個傳聲器的背景噪聲。
如果忽略混響,式(3)可以近似為
xi(t)=his(t-τi)+ni(t),i=1,2,…,M
(4)
式(4)中:hi為聲源信號傳播到第i個傳聲器產生的衰減。
基于時延估計的聲源定位算法首先根據各傳聲器接收到的信號進行時延估計,然后根據得到的時延估計結果和傳聲器陣列的幾何信息進行位置估計,得到聲源位置[7]。本節介紹應用最為廣泛的時延估計算法——基于廣義互相關函數的時延估計算法。
廣義互相關是最為經典的時延估計算法,也是應用最為廣泛的時延估計算法[11]。算法原理如下:
利用廣義互相關函數估計聲源到達第i個和第j個傳聲器的時間差,兩個傳聲器接收到的信號分別表示為xi(t)、xj(t)。由概率論相關知識可知,兩者之間的互相關函數為
Rxi,xj(τ)=E[xi(t)xj(t-τ)]
(5)
式(5)中:E( )為數學期望函數。通常情況下,噪聲與語音信號不相關,兩個傳聲器的噪聲也不相關,則由式(4)和式(5)可得
Rxi,xj(τ)=hihjE[s(t-τi)s(t-τj-τ)]
(6)
可以發現,當τ=τi-τj,即聲源到達第i個傳聲器和第j個傳聲器的時間差時,Rxi,xj取最大值,這便是基于廣義互相關函數的時延估計算法的理論依據。
由維納-辛欽定理可知

(7)

在實際處理中,混響和噪聲會導致Rxi,xj(τ)的峰值不明顯,時延估計誤差擴大[14]。根據信號和噪聲的先驗知識,在頻域內對互功率譜進行加權,可以銳化Rxi,xj(τ)的峰值,從而能抑制噪聲和混響的干擾[15]。最后進行傅里葉逆變換,得到廣義互相關函數
(8)
式(8)中:φi,j為添加的權重項,人們已提出多種方案,其中效果較好的是PHAT,即

(9)
即對幅值進行歸一化,只留下相位信息,這也是其名稱“相位變換”的來源。
結合了PHAT的GCC被稱為GCC-PHAT。
由文獻[9-10]可知,當聲源適用于遠場范圍時,原有算法的定距誤差急劇上升。因此,在遠場源情景下,傳統定位算法會引入很大的定距誤差,進而影響定向效果。本節在如圖1(b)所示的遠場模型的基礎上進行推導,提出一種無需估計聲源距離,直接估計聲源方向的定位算法。同時,提出一種計算GCC-PHAT時延估計結果置信度的算法。得到的置信度可以用于估算TDOA協方差矩陣或者選用傳聲器對。
在遠場模型中,第i個傳聲器到第j個傳聲器和聲源的指向向量可表示為
qi,j=[-xi,j,-yi,j,-zi,j]
(10)
qs=[r0cosθcosφ,r0cosθsinφ,r0sinθ]
(11)
式中:φ為方位角;θ為俯仰角。假設兩個向量之間的夾角為α,由向量的基礎知識可得

(12)
聯立式(10)~式(12),解之得
‖qi,j‖cosα=-xi,jcosθcosφ-
yi,jcosθsinφ-zi,jsinθ
(13)
由式(1)和式(13)可得
ri,j=-xi,ja-yi,jb-zi,jc
(14)
式(14)中:a=cosθcosφ,b=cosθsinφ,c=sinθ。
在這個推導過程中,巧妙地消除了聲源距離r0,避免了進行位置估計時,距離誤差對定向結果造成影響,提高了定向精度,降低了計算復雜度。相比于Chan算法在聲源歸于遠場源時,會有特別大的定距誤差,進而影響定向誤差,該算法在聲源歸為遠場源時會擁有比較好的定位效果。

根據式(14)可建立存在TDOA噪聲的線性方程為
ψ=h-Gz
(15)
式(15)中:ψ為誤差矢量;
式(15)可近似為
z≈(GTQ-1G)-1GTQ-1h
(16)
式(16)中:Q為TDOA協方差矩陣。
由第2節可知,當τ=τi-τj時,式(8)取得最大值。在理想情況下,τ=τi-τj時Gxi,xj(τ)的值應該遠大于其他值。但是在實際處理中,由于存著混響和噪聲影響,Gxi,xj(τ)的峰值不明顯[14]。本文認為Gxi,xj(τ)曲線的最高峰與次高峰的峰值之差反映了GCC-PHAT時延估計結果的可信度,基于這一思想,提出一種計算GCC-PHAT時延估計結果置信度的算法。時延估計結果的置信度,計算公式為

(17)
由式(17)可知,pi,j分子項為曲線最高峰與次高峰峰值差,分子項越大,表明曲線最高峰的突出程度越大,即時延估計結果越可信;pi,j的分母為最高峰峰值,這樣對pi,j進行了歸一化,可以濾除峰值大小對置信度的影響,只考慮最高峰的突出程度,便于不同傳聲器對的時延估計結果置信度的比較。
3.2.1 用置信度估算TDOA協方差矩陣
噪聲功率與時延估計誤差正相關,則時延估計結果置信度與該傳聲器對的噪聲功率成反比,故可用置信度的倒數組成對角陣,近似代替Q,則有

(18)
式(18)中:pi,j可由式(17)獲得,將式(18)代入式(16)即可定位出聲源位置。
3.2.2 基于路徑規劃的傳聲器對篩選算法
在信噪比(signal to noise ratio, SNR)比較低或者混響時間(reverberation time, RT)比較長的聲學環境下,一些傳聲器對的時延估計結果可能會有較大誤差,進而極大影響定位效果。通過對傳聲器對進行篩選,可以去除具有較大時延估計誤差的傳聲器對,進而防止這些時延估計結果對定位結果造成相對較大的影響。
為了盡可能多地使用誤差較小的時延估計結果,同時能夠有效地利用每一個傳聲器的信息,本文中將傳聲器視為節點,將傳聲器對的時延估計結果置信度視為兩個節點之間的距離,則傳聲器對的篩選問題可以轉化為一道尋找經過所有節點的最長路徑問題。將找到的最長路徑的每兩個相鄰節點組成一個傳聲器對,共M-1個傳聲器對,用來進行聲源定位。
為了驗證本文提出算法的有效性,在不同信噪比和混響時間環境下進行了MATLAB仿真實驗。傳聲器陣列是一個立方體陣列,以(3 m, 3 m, 3 m)為中心點坐標,邊長為0.08 m。在立方體的每個頂點上放置一個傳聲器,在中心點也放置一個傳聲器,共9個傳聲器。房間大小為7 m×8 m×9 m。實際聲源方向角為(52.8°,31.7°),聲源距離為1.5 m。由1.1節的分析可知,該聲源歸為遠場源。
聲源為96 kHz采樣、16位二進制表示的一段真實男聲音頻,聲源信號波形圖如圖2所示。本文中采用幀長為42.7 ms(4 096個采樣點),幀移為1/2的方案,使用海寧窗(Hanning)作為窗函數進行分幀操作。測試語音長度為3.4 s,共159幀。為獲得足夠的實驗樣本,對實際采集的語音進行6次仿真,添加隨機白噪音來生成具有目標信噪比的含噪語音。由于每次仿真的噪音是隨機的,因此獲得的定位結果不盡相同。最終得到的測試語音長度可達954幀。

圖2 持續3.4 s的原始語音信號波形Fig.2 Characteristic waveform of 3.4 seconds of continuous raw speech signal
在下文中,用“基礎算法”表示本文提出的基于遠場聲源模型的定位算法;“增強算法”在基礎算法的基礎上,使用了基于路徑規劃的傳聲器對篩選算法。其中,TDOA協方差矩陣使用GCC-PHAT時延估計結果可信度估算。
4.2.1 在不同陣列孔徑下,Chan算法定距結果比較
已知聲源距離為1.5 m,由1.1節分析可知,當孔徑大于0.9 m時,聲源歸為近場源,當孔徑小于0.146 m時,聲源歸為遠場源。逐漸減小孔徑,從1 m到0.1 m,間隔為0.1 m,共10種孔徑大小。Chan算法定距結果隨孔徑大小的變化如圖3所示。

圖3 孔徑大小與定距結果相關性分析Fig.3 Correlation analysis between aperture and distance estimation performance
由圖3可知,當孔徑不小于0.4 m時,定距結果保持1.5 m左右,定距結果有效;當孔徑小于0.4 m時,定距結果隨著孔徑的減小有明顯減小,定距結果無效。這說明當聲源歸為近場源時,定距結果有效;當聲源歸為遠場源時,定距結果無效。
4.2.2 比較不同算法在不同聲學環境下的定位準確度
分別令信噪比為30 dB,混響時間從100 ms每隔100 ms升到500 ms;令混響時間為100 ms,信噪比從15 dB每隔5 dB升到35 dB進行仿真實驗,獲得定位成功率。
定義第i幀語音的定位結果的誤差為ei,則有
(19)
聲學環境變化對定位成功率的影響如圖4、圖5所示。

圖4 定位成功率隨混響時間變化曲線圖Fig.4 Graph illustrating the variation of sound source location success rate with reverberation time

圖5 定位成功率隨信噪比變化曲線圖Fig.5 Graph illustrating the variation of sound source location success rate with signal-to-noise ratio
由圖4可知,無論哪種算法,隨混響時間延長,定位成功率都會下降,同時本文提出的兩種算法的定位成功率都遠高于Chan算法。隨著混響時間的延長,Chan算法和基礎算法的定位成功率快速下降,而增強算法的定位成功率下降緩慢。當混響時間比較短時,基礎算法和增強算法的定位成功率相差不大,兩種算法的定位成功率都高于98%,Chan算法的定位成功率低于85%;當混響時間比較長時,增強算法的定位成功率遠高于另外兩種算法,增強算法的定位成功率可以保持在85%以上,而基礎算法和Chan算法的成功率都低于70%。
由圖5可知,隨著信噪比降低,三種算法的定位成功率變化規律同上。這說明本文提出的兩種算法都具有更高的定位準確度,隨著聲學環境的惡化,增強算法表現出更高的抗干擾能力。這是因為在惡劣聲學環境下,本文提出的基于路徑規劃的傳聲器對篩選算法保留了誤差相對較低的時延估計結果,剔除了誤差相對較高的時延估計結果,避免了一些具有較大誤差的時延估計結果影響聲源定位結果,提高了定位魯棒性。
4.2.3 比較不同算法在不同聲學環境下的定位精度
分別令信噪比為30 dB,混響時間從100 ms每隔100 ms升到500 ms;令混響時間為100 ms,信噪比從15 dB每隔5 dB升到35 dB進行仿真實驗,獲得均方根誤差(root mean square error, RMSE)。
RMSE定義為
(20)
式(20)中:m為進行定位的幀數。
聲學環境變化對RMSE的影響如圖6、圖7所示。

圖6 RMSE隨混響時間變化曲線圖Fig.6 Graph illustrating the variation of RMSE with reverberation time

圖7 RMSE隨信噪比變化曲線圖Fig.7 Graph illustrating the variation of RMSE with signal-to-noise rate
由圖6可知,無論哪種算法,隨混響時間延長,RMSE都會增大。當混響時間比較短時,基礎算法和增強算法的RMSE相差不大,兩種算法的RMSE遠小于Chan算法,基礎算法的RMSE在4°以內,增強算法的RMSE在4.5°以內,Chan算法的RMSE在8.5°以內;當混響時間比較長時,增強算法的RMSE遠小于另外兩種算法,增強算法的RMSE可以保持在35°以內,而另外兩種算法的RMSE都大于45°。
由圖7可知,隨著信噪比降低,3種算法的RMSE變化規律同上。這說明在比較良好的聲學環境下,本文提出的基礎算法具有很高的定位精度,增強算法的定位精度比基礎算法稍低,兩種算法的定位精度都遠高于Chan算法;隨著聲學環境的惡化,本文提出的增強算法表現出很強的抗干擾能力,其定位精度遠高于另外兩種算法。
本文首先通過分析指出了在手機等手持式聲源定位設備這種小尺度傳聲器陣列的應用場景中,聲源一般為遠場源,而傳統Chan算法的定距結果無效,并通過4.2.1節驗證了這一結論。針對這一問題,本文提出了一種適用于遠場源的基于時延估計的聲源定位算法。為了選用合適的傳聲器對,本文提出了一種計算GCC-PHAT時延估計結果置信度的算法,并用該置信度估算TDOA協方差矩陣。在此基礎上,將置信度作為兩節點之間的路徑長度,提出了一種基于路徑規劃的傳聲器對篩選算法。當聲源歸為遠場源時,在不同的聲學環境下進行仿真實驗,得到以下結論。
(1)在信噪比相對較高并且混響時間相對較短時,相比傳統Chan算法,本文提出的遠場聲源定位算法在定位準確度和定位精度方面具有很大優勢。但是隨著信噪比降低或混響時間延長,該算法表現出比較差的抗干擾能力。其中,定位精度會低于Chan算法,定位成功率保持高于Chan算法。
(2)當使用了基于路徑規劃的傳聲器對篩選算法后,本文提出的算法具有很強的抗干擾能力,無論信噪比和混響時間如何,本文提出的算法在定位準確度和定位精度方面都優于Chan算法。當信噪比相對較低或混響時間相對較高時,該增強算法的定位準確度和定位精度遠遠高于另外兩種算法。
總而言之,在手機等手持式聲源定位設備這種小尺度傳聲器陣列的應用場景中,相比傳統Chan算法,本文提出的基于遠場聲源模型的定位算法具有更高的準確度和精度;使用了基于路徑規劃的傳聲器對篩選算法后,定位算法將具有優異的抗干擾能力,在低信噪比或者高混響時間等惡劣聲學環境下,也具有令人滿意的定位效果。