趙小燕 湯 捷 周 琳 吳鎮揚
(東南大學信息科學與工程學院,南京 210096)
(東南大學水聲信號處理教育部重點實驗室,南京 210096)
聲源定位在機器人導航、人機接口、助聽器、語音分離和語音增強等領域均有重要的應用.在這些應用中,常會出現多個人同時說話的情況,因此要求定位算法能實現多聲源定位.
多聲源定位問題是傳聲器陣列信號處理中的難點和熱點.為解決這一問題,研究者們提出了多種算法.Yang等[1]采用廣義互相關法估計多個聲源至傳聲器的時延差,求解一組線性方程組得到聲源的方位估計,并利用k-means++算法對連續多幀的方位估計聚類,確定聲源個數和方向.該算法需要結合多幀信息,且隨著聲源個數的增多,方程個數呈指數增長,導致運算量很大.Lombard等[2]使用寬帶獨立主分量分析法來最小化統計相關性,實現多聲源的定位.近年來,出現了許多基于語音信號在時-頻域上稀疏性的多聲源定位算法[3-7].Cai等[3]提出了一種基于子帶最大可控響應功率的多聲源定位算法,但其復雜度較高.Araki等[4]對已去除頻率相關性的歸一化觀測信號聚類,利用聚類中心和傳聲器的位置估計聲源方向.Swartling等[5]先用盲信號分離法將混合信號分離,然后用普通單聲源定位法對各個分離的信號進行方位估計.文獻[4-5]中的算法必須確保傳聲器陣列的間距足夠小,以避免發生相位卷繞.Liu等[6]在頻域上分析了2路信號間的同步性,綜合連續多幀信息估計聲源方位,并引入Stencil濾波器來處理高頻分量的相位卷繞問題,但這種濾波器可能造成偽峰值.Zhang等[7]通過選取高信噪比頻點,對高頻段相位進行去卷繞處理,再利用相位差與頻率之間的關系,采用廣義混合分解算法(GMDA)或廣義硬聚類算法(GHCA)來估計每個聲源的時延差.GMDA算法需要引入概率密度函數,為相位誤差建立一個合適的概率模型;GHCA算法則直接采用線性回歸的方法擬合直線.
本文中,通過對各頻點的相位差進行復指數變換,基于語音信號在時-頻域的稀疏性,將頻點聚類到各聲源.然后,利用各聲源包含的頻點構建代價函數,利用最小化代價函數來實現對聲源時延差的估計.本文算法充分利用了高頻段的相位信息,無需對發生相位卷繞的頻點進行去卷繞處理,定位性能優于廣義硬聚類算法.
假設陣列由2個傳聲器組成,房間中有L個聲源,則第i個傳聲器的接收信號xi(m)可以表示為

(1)

如果混響聲信號相對于接收直達聲的能量比例足夠低,則可以忽略多徑傳播分量,將式(1)簡化為
(2)
對式(2)作短時傅里葉變換,可得

(3)
式中,Xi(n,k),Sl(n,k)和Vi(n,k)分別為xi(m),sl(m)和vi(m)的短時傅里葉變換;n為幀索引;k為頻點;N為傅里葉變換的長度.
語音信號在時-頻域的稀疏性是指:在時域上,語音信號通常有很多停頓或者靜音部分;在頻域上,語音信號的能量并非均勻地分布在整個頻段上[8-9].這種稀疏性導致在特定的時-頻點上通常只有一個聲源的信號能量占主導地位.若在第n幀第k個頻點上,第l個聲源能量占主導地位,則式(3)可表示為

(4)
式中,Wi(n,k)為傳聲器噪聲及其他聲源信號的短時傅里葉變換.
由此可知,2路接收信號在該時-頻點的相位差φ12(n,k)主要由第l個聲源信號所確定,即
φ12(n,k)=φX1(n,k)-φX2(n,k)≈

(5)
式中,φXi(n,k)為第i個傳聲器接收信號的相位;φ12(n,k)為2路接收信號的相位差;τl,12為第l個聲源至2個傳聲器的時延差,即τl,12=τl,1-τl,2≤τmax,其中τmax=dfs/c為2路接收信號間的最大離散時延差,d為傳聲器間距,fs為采樣率,c為聲速.在模2π運算后,相位差的取值范圍為[-π, π].
為提高抗噪聲能力,本文選擇信噪比較大的時-頻點來進行時延差的估計.信噪比估計算法有很多,Chen等[10]利用一幀數據計算協方差矩陣,并根據該協方差矩陣估計每個頻點的信噪比.如果傳聲器的加性噪聲是白噪聲,則能量較大的時-頻點即對應信噪比較高的時-頻點.本文僅考慮高斯白噪聲的情況,將每幀信號各頻點能量從大到小排列,取前30%的數據用于時延差估計[7].
如果不考慮混響和噪聲,相位差與頻率的關系可表示為
(6)



(7)

(8)

① 對2路接收信號進行短時傅里葉變換,選取信噪比較大的頻點,計算這些頻點的相位差.

③ 令t=t+1,將所有被選取頻點的相位差φ12(n,k)乘以虛數單位j,然后進行復指數變換,得到ejφ12(n,k).各頻點歸屬即可表示為
(9)
式(9)表示將φ12(n,k)劃分給第l′個聲源Sl′,記作k∈Sl′.


利用時延差與方位角之間的關系,可得聲源方位角的估計值為
(10)
假設只存在1個聲源,將第i個傳聲器接收信號的傅里葉變換記作Xi(k),2路接收信號的相位差記作φ12(k).不進行高信噪比頻點的選取,聲源傳播至2個傳聲器的假設時延差為τ′.則由式(7)可得
(11)

2路接收信號的GCC-PHAT函數為
(12)
實信號離散傅里葉變換的相位關于N/2奇對稱,故2路信號的相位差也關于N/2奇對稱.實際計算時廣義互相關法只能獲得τ′的離散值,故將式(12)改寫為
(13)


τ′∈[-τmax,τmax]
(14)
因此,如果不進行頻點挑選,當β=2時,CETOPD算法與GCC-PHAT算法在估計單聲源至2個傳聲器的離散時延差時是近似等價的.但是CETOPD算法可以通過控制τ的搜索步長,獲得所需精度的時延差估計值.
在計算機仿真環境中測試本文算法的定位性能.仿真實驗中,房間尺寸為7 m×6 m×3 m,2個間距為8 cm的全向傳聲器水平放置,陣列中心位于(3.5 m,2 m,1 m)處.聲源與陣列處于同一水平面內,距陣列中心2 m.以陣列中心為原點,0°方位角代表聲源位于陣列中心的正前方.2個聲源同時位于陣列的前半水平面.第1個聲源的方位角固定為-30°;第2個聲源的方位角為20°~60°,并以5°為間隔變化(即總共有9種不同方位角情況).語音數據從TIMIT語音庫中隨機抽取,采樣率為16 kHz.應用Image法[11]產生長度為2 048的房間脈沖響應,將語音信號與房間脈沖響應卷積,產生混響語音.將2個聲源的信號相加,再加上不同比例的高斯白噪聲,產生不同信噪比的語音信號.幀長為32 ms,幀偏移為16 ms,窗函數為漢寧窗,除去靜音幀,共有413幀數據用于多聲源定位.
算法性能由定位成功率和均方根誤差2項指標評價.每一幀估計出2個方位角,若某個聲源的真實方位角與其中一個估計方位角的誤差在20°以內,則認為此幀估計該聲源成功.
參數β的變化范圍為0.2~2.4.若混響時間T60=0.1 s,信噪比SNR=10,20 dB,β取值不同時CETOPD算法的性能如圖1所示.由圖可見,β=0.8~1.2時,算法性能較好;相比其他取值,此時算法的定位成功率較高,均方根誤差較低.這是因為β=0.8~1.2時,本文算法既能抑制偏離理想相位差頻點的影響,又能在分辨率和魯棒性之間得到折中.考慮運算的復雜度,后續實驗中取β=1.

圖1 β取值不同時CETOPD算法的定位性能
對比了CETOPD算法與GHCA算法在不同信噪比和混響時間下的定位性能.信噪比的變化范圍為10~25 dB,T60=0.10,0.25 s.將9種不同位置情況下的定位性能取平均值,結果見表1.

表1 CETOPD算法與GHCA算法的定位性能比較
由表1可知,在不同的信噪比和混響時間下,本文算法的定位性能均優于GHCA算法.本文算法相對GHCA算法的定位成功率提升幅度和均方根誤差降低幅度均隨著信噪比的降低而增大.當T60=0.10 s時,隨著信噪比由25 dB降至10 dB,本文算法相對GHCA算法的定位成功率提升幅度由2.72%增至8.07%,均方根誤差降低幅度由0.19°增至0.63°.在低信噪比時,本文算法相對GHCA算法的性能提高更顯著.
本文算法相對GHCA算法定位性能的提高幅度隨著混響時間的增大呈現出下降的趨勢.當SNR=10 dB,T60=0.10,0.25 s時,本文算法相對GHCA算法的定位成功率提升幅度分別為8.07%和4.81%,均方根誤差降低幅度分別為0.63°和0.38°.信噪比相同時,混響增大會導致本文算法相對GHCA算法的定位性能提升幅度下降,其原因可能是接收信號模型中忽略了多徑傳播分量.
利用仿真實驗對比了本文算法和GHCA算法的收斂速度.實驗結果顯示,與GHCA算法相比,本文算法所需迭代次數更少.統計平均可知,在相同條件下,本文算法需要2~3次迭代,而GHCA算法需要6~7次迭代.
本文提出了一種基于相位差復指數變換的傳聲器多聲源定位算法,不僅無需對高頻段相位差進行去卷繞處理,而且提高了多聲源定位的性能.該算法通過對各頻點相位差進行復指數變換,基于語音信號在時-頻域的稀疏性,將頻點聚類到各聲源.然后,對各聲源包含的頻點構建代價函數、最小化代價函數以估計時延差.仿真結果顯示,參數β=0.8~1.2時,本文算法的定位性能最好.相比GHCA算法,本文算法具有更高的定位成功率和更低的均方根誤差,且收斂時所需迭代次數更少.
)
[1]Yang C H, Hu J S. Estimation of sound source number and directions under a multisource reverberant environment [J].EURASIPJournalonAdvancesinSignalProcessing, 2010,2010: 870756-1-870756-1.
[2]Lombard A, Zheng Y, Buchner H, et al. TDOA estimation for multiple sound sources in noisy and reverberant environments using broadband independent component analysis [J].IEEETransactionsonAudio,SpeechandLanguageProcessing, 2011,19(6): 1490-1503.
[3]Cai Weiping, Zhao Xiaoyan, Wu Zhenyang. Localization of multiple speech sources based on sub-band steered response power [C]//IEEEInternationalConferenceonElectricalandControlEngineering. Wuhan, China, 2010: 1246-1249.
[4]Araki S, Sawada H, Mukai R, et al. DOA estimation for multiple sparse sources with arbitrarily arranged multiple sensors [J].JournalofSignalProcessingSystems, 2009,63(3): 265-275.
[5]Swartling M, Sallberg B, Grbic N. Source localization for multiple speech sources using low complexity non-parametric source separation and clustering [J].SignalProcessing, 2011,91(8): 1781-1788.
[6]Liu C, Wheeler B C, O’Brien J W D, et al. Localization of multiple sound sources with two microphones [J].JournaloftheAcousticalSocietyofAmerica, 2000,108(4): 1888-1905.
[7]Zhang W, Rao B D. A two microphone-based approach for source localization of multiple speech sources [J].IEEETransactionsonAudio,Speech,andLanguageProcessing, 2010,18(8): 1913-1928.
[8]Yilmaz O, Rickard S. Blind separation of speech mixtures via time-frequency masking [J].IEEETransactionsonSignalProcessing, 2004,52(7): 1830-1846.
[9]Aoki M, Okamoto M, Aoki S, et al. Sound source segregation based on estimating incident angle of each frequency component of input signals acquired by multiple microphones [J].AcousticalScienceandTechnology, 2001,22(2): 149-157.
[10]Chen J F, Ser W. Speech detection using microphone array [J].ElectronicsLetters, 2000,36(2): 181-182.
[11]Allen J B, Berkley D A. Image method for efficiently simulating small-room acoustics [J].JournaloftheAcousticalSocietyofAmerica, 1979,65(4): 943-950.