程方曉, 劉 璐, 姚清華, 韓 笑, 宋 曦
(1. 長春工業(yè)大學 電氣與電子工程學院, 長春 130012; 2. 國家電網(wǎng)公司信息通信分公司, 北京 100761; 3. 夏威夷大學 土木與環(huán)境工程學院, 美國 夏威夷州 火奴魯魯 96816)
語音通信是信息交互中最有效的方法之一. 隨著人機交互、 機器學習和模式識別等人工智能技術的飛速發(fā)展, 人工智能語音交互技術得到廣泛關注[1]. 基于麥克風陣列的聲源定位問題可等效于寬帶短時平穩(wěn)信號的空間譜估計問題, 其不僅可用于語音處理領域, 還可借鑒到其他超寬帶信號處理領域, 如無線通信、 雷達等領域, 實現(xiàn)高精度定位, 是目前陣列信號處理的研究熱點[2].
在無噪聲、 無混響、 距離聲源很近的情況下, 由單個麥克風構成的系統(tǒng)可獲得高質(zhì)量的語音信號, 但其拾音范圍有限, 若聲源在麥克風的選擇方向外, 會引入大量噪聲[3]. 相比于單一麥克風, 麥克風陣列具有較大優(yōu)勢, 可彌補單麥克風在噪聲處理、 聲源定位跟蹤和語音分離等方面的不足, 因此廣泛應用于具有嘈雜背景的語音通信環(huán)境, 如智能機器人、 視頻會議系統(tǒng)、 助聽器和車載免提電話等[4].
傳統(tǒng)的聲源定位方法可分為3類: 基于波束形成[5]的方法, 基于高分辨率譜估計[6]的方法和基于到達時間差(TDOA)[7]的方法, 它們分別將聲源與陣列結(jié)構的關系轉(zhuǎn)換為空間波束、 空間譜或到達時間差等信息, 并通對這些信息的估計進行聲源定位. 其中, 基于時延估計的方法計算復雜度較低、 實時性好且硬件成本低, 可廣泛用于聲源定位與目標跟蹤[8]. 本文在綜合分析廣義互相關算法和LMS(最小均方)自適應濾波算法的基礎上, 提出一種基于改進時延估計的聲源定位算法, 并進行了實驗分析. 實驗結(jié)果表明, 與相位變換加權廣義互相關函數(shù)(GCC-PHAT)算法相比, 該算法具有更好的抗噪和抗混響的魯棒性, 能獲得更準確的定位結(jié)果.
圖1 單源多元混響模型Fig.1 Single source multiple reverberation model
在實際環(huán)境中, 由于環(huán)境噪聲和信號傳播過程中的多徑效應的影響, 環(huán)境噪聲、 混響和語音信號將同時輻射在陣列平面上, 此時, 麥克風陣列的接收信號模型如圖1所示. 該模型等效于一個單輸入多輸出系統(tǒng), 由于環(huán)境噪聲和混響的作用, 麥克風接收到的信號不再是簡單的語音信號, 而是多個信號源的延遲與噪聲信號的疊加[9].
設聲源信號為s(n), 聲源到第i個麥克風的信道沖激響應為hi(n), 噪聲信號為vi(n), 此時, 第i個麥克風接收到的信號為
xi(n)=hi(n)s(n-τi)+vi(n)=αis(n-τi)+
(1)
其中系數(shù)αip和τip分別表示信號經(jīng)過反射路徑p到達麥克風i的衰減和時延. 由于聲音直接到達麥克風的路徑最短, 所以τip>τi. 此外, 經(jīng)多次反射后, 信號的幅度會減小, 滿足αip<αi. 實際上,αip以τip的指數(shù)形式衰減, 即信號的幅度隨反射次數(shù)的增加衰減較快.
當室內(nèi)無混響存在時, 陣元Mi和Mj接收到的信號xi(n)和xj(n)分別為
當室內(nèi)存在混響時, 兩陣元接收到的信號分別為
廣義互相關(generalized cross correlation, GCC)算法是目前應用最廣泛的一種時間估計方法[10]. 由于同一聲源發(fā)出的信號之間存在一定的相關性, 因此, 可通過計算不同麥克風接收到的信號間的相關函數(shù)估計TDOA值. 但在實際環(huán)境中, 由于噪聲和混響的作用, 相關函數(shù)的最大峰值會被減弱, 有時還會出現(xiàn)多個峰值, 導致檢測實際峰值變得十分困難. 廣義互相關函數(shù)Rij(τ)定義為
(6)
其中:Gij(f)表示信號的互功率譜;φij(f)表示頻域上的加權函數(shù). 廣義互相關函數(shù)算法的流程如圖2所示. GCC方法在功率譜域?qū)π盘栠M行加權, 突出相關的信號部分而抑制受噪聲干擾部分, 使相關函數(shù)在時延處的峰值更突出.
圖2 廣義互相關算法實現(xiàn)框圖Fig.2 Block diagram of implementation of generalized cross-correlation algorithm
由圖2可見, GCC方法是建立在非混響模型基礎上的. 由于模型誤差的影響, 其不能正確識別多個說話人和方向性的干擾噪聲, 且更傾向于估計強信號的TDOA值, 因此, GCC方法通常用于低混響和非相關噪聲的情況. 但低計算復雜度及易于實現(xiàn)的特點使GCC方法仍得到廣泛應用.
(7)
二次相關法先分別對兩路信號進行自相關和互相關運算, 然后通過對得到的自相關和互相關函數(shù)進行相關運算, 以提高信號的信噪比與分辨力[12]. 二次相關法的原理如圖4所示.
圖3 LMS自適應濾波算法原理框圖Fig.3 Block diagram of principle of LMS adaptive filtering algorithm
圖4 二次相關法Fig.4 Quadratic correlation method
分別對信號xi(n)和xj(n)做自相關與互相關運算, 即
由式(8),(9)可知,x(n)的自相關函數(shù)Rx1x1(τ)與兩路信號的互相關函數(shù)Rx1x2(τ)仍是時間的函數(shù), 將其視為一個新的信號和噪聲, 再對其做相關運算, 得到二次相關函數(shù)為
忽略信號與噪聲的互相關函數(shù), 則式(10)可簡化為
RRR(τ)=λRss(τ-D)+Rn1n2(τ),
(11)
利用廣義互相關法與二次相關法可在一定程度上降低噪聲對時延估計的影響, 提高估計精度, 但也有其局限性. 廣義互相關利用權重函數(shù)增加信號中有效頻譜的權重, 從而提高時延估計的精度, 但在低信噪比環(huán)境下的性能急劇下降; 而二次相關時延估計法利用相關函數(shù)抑制噪聲干擾, 提高了時延估計算法的抗噪性能, 但其估計精度有待提高. 本文在GCC的基礎上, 首先利用自適應濾波器對信號和噪聲的先驗知識需求較少、 具有自動調(diào)節(jié)參數(shù)的能力, 對聲源信號進行濾波處理, 再通過引入二次相關法對廣義互相關時延估計算法進行改進, 以提高算法的抗噪聲和抗混響能力.圖5為改進算法的原理框圖.
圖5 改進的時延估計算法Fig.5 Improved time delay estimation algorithm
目前采用兩種方法估計聲源的位置: 通過搜索[13]的方式和通過幾何方法[14]采用次最優(yōu)的方式. 直線型麥克風陣列可對平面上的聲源進行定位, 但在實際應用中更多需要給出聲源的三維空間信息, 而直線型麥克風陣列顯然不能滿足要求. 因此, 本文采用平面麥克風陣列結(jié)構估計聲源位置.
圖6 四元十字陣列空間定位Fig.6 Spatial orientation of quaternary cross array
圖6為四元十字陣列空間定位原理圖. 該陣列是由4個麥克風組成的四元十字型麥克風陣列, 具有結(jié)構小巧、 便于安裝在仿真智能機器人頭部等優(yōu)點. 陣列呈十字型結(jié)構對稱分布在x軸和y軸上, 采集同一聲源信號. 先估計各麥克風之間的延遲差, 再利用幾何關系計算聲源的空間位置. 由圖6可見, 麥克風M1~M4的坐標分別為M1(a,0,0),M2(0,-a,0),M3(-a,0,0),M4(0,a,0), 聲源信號的坐標為s(x,y,z), 聲源s與坐標原點的距離用R表示; 聲源s與x軸正方向的夾角, 即方位角用φ表示; 聲源s與z軸正方向的夾角, 即俯仰角用θ表示.
假設分別用ri(i=1,2,3,4)表示聲源到麥克風的距離, 用ti(i=1,2,3,4)表示聲源到達麥克風的時間, 用τij(i,j=1,2,3,4)表示聲源到達麥克風Mi與Mj之間的時間延遲. 假設聲源位于遠場, 則近似求得目標聲源的位置表達式為
(12)
在多數(shù)四元十字陣列的空間定位方法中, 通常使用1個麥克風與其他麥克風的時延差值進行定位計算, 使用的時延差值信息不全面. 為進一步提高該空間定位方法的準確性, 本文以4個麥克風M1~M4分別作為參考麥克風, 先分別計算參考麥克風與其他麥克風之間的時延差值, 然后對獲得的4組數(shù)據(jù)中相應的時延差值對進行加權平均運算, 將得到的平均值作為最終的時延值用于定位估計. 雖然運算量有所增加, 但定位結(jié)果的準確性得到了有效提高, 且仍能滿足系統(tǒng)的實時性要求.
本文所有實驗均在一個長12.8 m、 寬10.5 m、 高3.5 m的室內(nèi)環(huán)境中完成, 已知房間內(nèi)存在一定背景噪聲與混響, 包括電腦主機風扇的聲音和其他人為干擾等, 聲源為實驗環(huán)境中提前錄制的一段語音. 本文以GCC-PHAT算法作為參考, 通過仿真實驗比較改進算法與GCC-PHAT算法的性能優(yōu)劣. 通過引入3個參數(shù)描述算法的定位精度, 包括歸一化投影誤差、 均方根誤差和異常點百分數(shù).
圖7 兩種算法的收斂曲線Fig.7 Convergence curves of two algorithms
將歸一化投影誤差(normalized projection misalignment, NPM)作為算法抗噪性能的評價指標. NPM越小, 則抗噪能力越強. 在信噪比SNR為20 dB, 混響時間為100 ms的環(huán)境下進行仿真實驗,圖7為改進算法與GCC-PHAT算法的收斂曲線對比結(jié)果. 由圖7可見, GCC-PHAT算法很快就發(fā)散, 收斂性較差; 而改進的時延估計算法可快速地收斂, 能有效避免由噪聲引起的信道估計惡化問題, 具有較好的抗噪能力.
用異常點百分數(shù)(percentage of abnormal point, PAP)衡量時延估計過程中出現(xiàn)異常點的可能性, 用均方根誤差(root mean square error, RMSE)反映時延估計的精度, 其值越小, 表明時延估計值越接近真實值. 當時延估計值與真實值相差2個或2個以上抽樣點時, 假設該估計值為一個異常點[15]. 異常點百分數(shù)定義為
(13)
(14)
其中:τ0表示真實的時延值;τi表示第i個時延的估計值;Nτ表示時延估計總數(shù).
在實驗中, 將聲源分別放置在不同位置, 在信噪比SNR=20 dB保持不變, 而混響時間RT60處于變化的環(huán)境下, 對本文提出的改進算法與GCC-PHAT算法分別進行性能測試, 仿真結(jié)果如圖8所示.
圖8 兩種算法的PAP和RMSE比較Fig.8 Comparison of PAP and RMSE of two algorithms
圖9 定位仿真實驗Fig.9 Positioning simulation experiment
由圖8可見, 在低混響環(huán)境下, 兩種算法均表現(xiàn)出良好的性能, 當混響時間大于300 ms時, GCC-PHAT算法的PAP明顯增加, 其均方根誤差遠大于信號的采樣精度, 無法進行有效地時延估計; 而在較強混響的環(huán)境下, 本文提出的改進算法仍能得到有效地時延估計, 因此, 與GCC-PHAT算法相比, 改進算法具有更強的抗噪能力, 更適合室內(nèi)混響環(huán)境.
采用改進的時延估計算法, 并結(jié)合十字型麥克風陣列結(jié)構進行仿真實驗. 設置系統(tǒng)的采樣頻率為50 kHz, 陣元間距為20 cm, 聲源距離為100~250 cm. 分別選取8個聲源位置, 對優(yōu)化前后的時延估計算法進行實驗, 在每個聲源位置分別采集30組數(shù)據(jù),圖9為定位仿真實驗結(jié)果, 得到的數(shù)據(jù)列于表1.
表1 算法優(yōu)化前后定位誤差
由表1可見, 算法改進后系統(tǒng)的定位誤差明顯下降. GCC-PHAT算法的方位角誤差最大值達14.6°, 最小值達7.1°, 算法改進后方位角誤差最大值為12.2°, 最小值為3.7°; GCC-PHAT算法的俯仰角誤差最大值達16.8°, 最小值達8.2°, 算法改進后俯仰角誤差最大值為12.3°, 最小值為3.9°; GCC-PHAT算法的距離誤差最大值達23.2 cm, 最小值達12.8 cm, 算法改進后距離誤差最大值為20.4 cm, 最小值為9.5 cm.
綜上所述, 本文在建立陣列信號接收模型的基礎上, 提出了一種基于改進時延估計的聲源定位算法. 該算法首先對聲源信號進行濾波處理; 然后進行二次相關運算, 有效地抑制了噪聲干擾, 提高了系統(tǒng)的抗噪性能; 最后對二次相關的結(jié)果進行廣義互相關加權處理, 進一步去除噪聲, 以提高信號的信噪比, 從而提高時延估計的精度. 實驗結(jié)果表明, 與GCC-PHAT算法相比, 該算法具有較好的抗噪與抗混響能力, 有一定的實際應用價值.