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