閔新宇,王清理,冉云飛
(中國航天科工集團第二研究院 706所,北京 100854)
為提高生產生活質量和效率,人們期望通過語音來發送指令和控制設備,但在實際使用環境中存在著各種各樣的干擾,因此需要使用語音增強方法來濾除噪音,增強有效語音。在多聲源環境中單通道語音增強方法難以完全消除背景噪聲,與其相比,基于麥克風陣列的多通道語音增強方法除了利用語音信號中時域和頻域信息外,還引入了空間域信息,使其具有空間選擇性,可以有效地提取出某一空間范圍內的聲音信號,在存在多聲源的有限空間中效果顯著[1]。
麥克風陣列采用在一定空間內按設計形狀放置數個麥克風形成陣列的方法,可以有效地采集到多通道信號[2]。基于麥克風陣列的語音增強算法可分為聲源定位和波束形成兩部分,聲源定位算法通過對多通道信號進行處理,可以計算未知方向聲音的波達方向(DOA)。波束形成算法是處理多通道信號的一種有效手段,其實質是對陣列信號進行加權處理以實現空間域內的濾波[3]。現行的聲源定位算法在處理移動聲源或存在較強干擾的情況下誤差較大,本文提出了一種基于時間延遲和能量衰減的聲源定位方法,僅需要兩個麥克風就可以對聲源位置進行估計,滿足精度要求的同時還適用于小型化設備。波束形成算法中使用較多的是線性約束最小方差波束形成(LCMV)和廣義旁瓣相消器(GSC),本文提出了一種改進的自適應波束形成算法,提高了協方差矩陣估計不足時算法的魯棒性。
語音信號模型可分為遠場模型與近場模型,二者是按照聲源距麥克風陣元中心點的距離與聲音波長大小的關系來定義的[4],常用的判定方式是,當
(1)
時符合遠場模型,否則符合近場模型,其中L為聲源距麥克風陣元中心點的距離,d為陣元孔徑,λmin為當前語音的最小波長,即當前最高頻率語音的波長。在近場模型中,各陣元接收到的信號為球面波,而在遠場模型中,各陣元接收到的信號可以簡化為平面波,圖1為近場模型與遠場模型。

圖1 近場模型與遠場模型
麥克風陣列中第n個麥克風在t時刻接收到信號xn(t) 可以表示為
xn(t)=αns(t-tn)+vn(t)
(2)
其中,αn是聲波的衰減系數,tn是第n個麥克風接收到信號的延遲時間,s(t-tn) 是聲源信號,vn(t) 是加性噪聲。
時間延遲,又稱到達時間差(TDOA),在基于麥克風陣列的語音增強算法中,準確對各陣元接收到信號的時間延遲進行估計一直都是關鍵問題[5]。在解決DOA估計問題時,其基本思想就是利用不同位置陣元接收到信號的TDOA來估計聲源的位置;在進行波束形成時,現有的算法都需要通過時延補償來實現陣列信號的同步,時延補償的精度也直接決定了陣列信號的輸出信噪比。因此,時間延遲估計(TDE)是語音增強中的一項關鍵技術。常用的TDE方法有廣義互相關時延估計法和自適應特征值分解時延估計法。
廣義互相關時延估計法是一種經典的TDE方法,其利用不同麥克風采集到的語音信號具有相關性的特點,計算其相關函數,相關函數的峰值處即是兩信號之間的時間差,廣義互相關時延估計法在功率譜域進行計算,以減弱噪聲對峰值的影響[6]。其基本思想如圖2所示。

圖2 廣義互相關法的原理
由式(2)可知兩個麥克風接收到的信號分別為x1(t) 和x2(t), 其廣義互相關函數Rx1x2(τ) 為
(3)
其中,ψ12(ω) 是廣義互相關的加權函數,X1(ω) 和X2(ω) 是x1(t) 和x2(t) 的傅里葉變換,Rx1x2(τ) 峰值處即是兩組信號的延遲,峰值越尖銳,時延估計就越準確,而Rx1x2(τ) 與ψ12(ω) 的選擇有關,表1給出了部分常用的加權函數,Rx1x1(τ) 和Rx2x2(τ) 是x1(t) 和x2(t) 的自相關函數,Px1x2(ω),Px1x1(ω),Px2x2(ω) 分別對應Rx1x2(τ),Rx1x1(τ),Rx2x2(τ) 的功率譜。

表1 部分常用廣義互相關加權函數
廣義互相關時延估計法的理論和模型簡單,計算量小,處理速度快,但在存在較強混響或方向性噪聲的環境下會產生多個峰值,影響估計的準確性,需要加入語音端點檢測(VAD)才能取得較好的結果。同時,廣義互相關法需要大量的數據來獲得信號與噪聲的統計知識,但這些數據大多難以提前獲取,在實際使用中,往往只利用少數幾幀數據就完成了功率譜估計,因此精度不高。
自適應特征值分解(EVD)時延估計法是一種基于子空間分解的時延估計法,可以解決有混響語音信號的時延估計問題[7],當混響存在時,麥克風接收到的信號相當于是信號源與其多個延遲的疊加,其模型可以表示為
xi(n)=s(n)*hi(n)
xj(n)=s(n)*hj(n)
(4)

(5)


圖3 自適應特征值分解的原理
TDE的主要目的是對聲源位置進行定位,這也是波束形成中的一項關鍵參數,在有些應用場景下不需要獲取聲源的位置坐標,只需要對DOA進行估計,DOA估計主要利用兩麥克風接收到的語音信號的傳播距離差dcos(θ) 和兩麥克風接收到信號的時間延遲τij, 其示意圖如圖4所示。可以發現,在遠場模型下,雙麥克風就能在二維平面內估計出DOA,但如果擴大到三維空間,DOA的估計值將是一個扇面。在近場模型下,到達麥克風的聲波為球面波,此時波達角θ將不能表示為時間延遲τij的函數,僅利用兩個麥克風的基于時間延遲的聲源定位方法就不再適用[8]。本文提出了一種改進方法,在僅利用兩個麥克風的情況下也能定位聲源坐標。

圖4 聲源定位原理
聲源定位法主要可分為單步定位法和雙步定位法,單步定位法中使用最廣泛的是基于子空間的MUSIC算法,其基本思想是將協方差矩陣分解為噪聲子空間和信號子空間,通過信號矢量與噪聲子空間正交求得聲源方向的空間譜,再搜索空間譜的最大值來估計聲源位置,其存在的問題是假設噪聲為白噪聲,在實際應用時準確度較低;其次,由于MUSIC算法是靠搜索空間譜來實現的,算法的計算量較大,在對功耗和實時性要求較高的小型化設備中不易實現。雙步定位法顧名思義是利用兩步計算來定位,常用的有基于時間延遲的雙步定位法。在獲取到時間延遲后,可以計算出兩個麥克風到聲源的距離差,利用雙曲線的定義,雙曲線上的點到兩焦點的距離差為固定值,也就說聲源位置位于雙曲線上,此時如果還有一個距離差,就可以計算出另外一組雙曲線,兩者的交點就是聲源位置[9]。由此可以看出,在二維空間中,利用三麥克風就可以實現對聲源位置的估計。因此,聲源定位問題就轉化為了兩雙曲線的交點求解問題。基于時間延遲的定位過程如圖5所示。

圖5 基于時間延遲的聲源定位模型

基于時間延遲的聲源定位方式需要至少兩組數據構造出兩組雙曲線并計算其交點,這是因為當只利用時間延遲這一個信息的時候,無法解出 (xs,ys) 的具體坐標值,只能得到xs與ys的函數關系,因此需要另一組數據列出第二個方程來求解。在不使用3個麥克風的情況下,就需要利用其它已知數據來提供另一個關于xs與ys的方程,本文即利用這個思想使用兩個麥克風來進行聲源定位。在聲波傳播的過程中,除了存在時間延遲外,還存在著能量衰減,在同時考慮能量衰減與時間延遲的條件下,麥克風接收到的信號的數學模型可以表示為

(6)
其中,s(n) 為聲源,τi為時間延遲,di為聲源到麥克風的距離,在一定時間內,麥克風接收到的能量是該時間段內所有經采樣量化后的數據的平方和,用Ei來表示,由能量的平方反比定律Eidi2=Ejdj2可得

(7)

(8)
當d12>0, 即d1>d2時,E2>E1, 可知式(8)是恒成立的。一般情況下,兩圓存在著兩個交點,也就是說式(7)有兩個解,這兩個點是關于麥克風連線對稱的,因此在使用中還需要根據實際場景來判斷解的含義,當聲源位于兩麥克風連線的垂直平分線上時,上述圓的方程將變為直線的方程,兩圓的交點也變成了兩直線的交點。
波束形成是基于麥克風陣列的語音增強算法的重要環節,是通過對陣列采集到的多通道信號進行加權的方式使波束指向聲源方向。不同的加權系數使麥克風陣列對不同方向和不同頻率聲音的響應不同,這說明了麥克風陣列具有空間指向性[10]。通過設置加權系數讓波束指向某一方向,就可以定向采集信號,達到濾除噪聲和排除其他人說話干擾的目的。由此可知,權值的設計至關重要,按照在使用過程中權值是否變化,波束形成可以分為固定波束形成和自適應波束形成。
延遲-相加是一種固定波束形成方法,其基本思想是依據TDE對多通道語音信號進行時間補償,使各麥克風的信號對齊。再對多路信號相加,得到陣列輸出。其執行過程可以簡要的歸納為時延估計、時間補償和加權求和三部分[11]。當加權系數為α=[α0,α1,…,αm-1]T時,陣列的輸出表達式為
(9)
該方法簡單易實現,計算量小,但是由于輸出波束不僅對不同方向信號的響應不同,對不同頻率信號的響應也不相同,因此在處理語音信號時效果較差。
由4.1節可知,固定波束形成由于加權系數是固定不變的,導致算法適應性較差,當外界輸入發生變化時,算法的響應將產生較大偏差,造成效果不佳。在語音持續輸入的過程中,如果能動態的調整空域濾波器的系數,使其對不同頻率或不同方向信號的響應都滿足使用的需求,就可以提升陣列的性能,這就是自適應波束形成方法,其可以根據輸入信號來自適應的調整濾波器系數,使主瓣波束指向目標聲源,零陷指向噪聲,以達到定向采集語音和消除干擾的目的[12]。自適應波束形成需要提前選定一個約束條件,當輸入信號發生變化時,通過自適應調整濾波器系數使陣列輸出達到滿足這一條件下的最優。
最小方差無失真響應(MVDR)波束形成利用濾波器輸出最小這一條件,也就是使噪聲在陣列輸出中的響應最小。陣列接收到的信號轉化到頻域可以表示為
(10)
其中,Ri(ω) 為第i個麥克風在ω頻率處的濾波器系數,輸出信號的功率譜函數可以表示為
φYY=RHφXXR
(11)
為了使信號無失真,期望方向上的信號增益應該為1,即RHA=1, 在這一條件下保證輸出最小,其中A=[α0e-jωτ0α1e-jωτ1…αm-1e-jωτm-1], 表示信號在傳播過程中的衰減。該問題即轉化為求解帶約束的優化問題minRHφXXR,s.t.RHA=1, 可以得到最小方差無失真響應波束形成的加權矢量
(12)
線性約束最小方差(LCMV)自適應波束形成算法是對上述算法的改進,對加權矢量附加了線性約束,其優勢是可以實時處理信號并抑制噪聲,通過不斷的對濾波器系數進行迭代更新,可以在保證期望方向上增益為單位增益并在干擾方向形成零點的同時,使濾波器輸出中包含的噪聲最小[13]。其基本處理過程是,在對陣列信號完成時間補償后,各通道的信號變的相干,并且這種處理方式可以在一定程度上使麥克風接收到的噪聲信號變的不同步,降低了噪聲的相干性。事實上,只要噪聲源和聲源的空間位置不一致,經過時間補償后的信號中的噪聲一定是不相干的。
濾波器輸出可以表示為
y(n)=RHx
(13)
由于陣列輸出在期望方向上的響應由n階系數確定,也就是說其輸出功率譜也是確定的了,因此減少非期望方向上的噪聲就等同于使總輸出最小,求解優化問題minRHφXXR,s.t.RHC=FH可得到LCMV加權矢量為
(14)
其中,C為N×M維約束矩陣,F是M×1維約束響應矢量。
廣義旁瓣相消器(GSC)是一種通用的自適應波束形成器,LCMV可以看作是它的一種特例,GSC將自適應波束形成中帶約束的優化問題轉化為不帶約束的優化問題,它引入了主通道和輔助通道,將約束條件分離出去,期望方向的信號只能從主通道通過,輔助通道中僅包含噪聲信號。該算法的處理框圖如圖6所示,主要由上下兩個通道組成,上方為通過期望信號的主通道,下方為通過噪聲信號的輔助通道,在自適應對消前還引入了一個阻塞矩陣,用以阻塞泄漏到輔助通道中的噪聲信號[14]。

圖6 廣義旁瓣相消器的原理

y(n)=yf′(n)-yb(n)=yf′(n)-αTu(n)
(15)
其中,αk(n) 為自適應濾波器系數向量,如果采用LMS算法,濾波系數的更新表達式為
αm(n+1)=αm(n)+μy(n)um(n)
(16)
通過以上的分析可以看出,自適應算法對噪聲的消除能力取決于其所處環境的空間相干性,各算法對相干噪聲的抑制作用較好,理論上可以將其全部消除,但對于非相干噪聲,由于其主要是由麥克風本身引起的,所以輔助通道對其幾乎沒有消除能力,同時,其降噪性能還與麥克風的數量和麥克風間距有關,在噪聲源數量少于麥克風數量的情況下,自適應方法的效果較好,但在噪聲源較多的環境下其降噪能力會有顯著的降低。

(17)

為比較本文的改進算法與LCMV算法相比的性能優劣,利用MATLAB設計了仿真實驗,仿真環境為線性排列的八麥克風陣列,信號入射角度為10°,兩個噪聲源位于30°和-30°方向,信噪比為25 dB,干噪比為30 dB,加載系數為3,在這樣的條件下,LCMV算法與本文算法的波束方向圖如圖7所示,從圖中可以看出,引入了加載系數后,相比于LCMV算法,本文算法的波束方向圖主瓣寬度減小了,可以避免引入過多的干擾,在噪聲方向形成了零陷的同時也降低了旁瓣高度,對非期望方向的噪聲抑制更加強烈,最為重要的是,波束方向圖對聲源方向的聚焦準確度有了很大的提高,這主要是因為LCMV算法拓寬了主瓣,在干擾較大的情況下會引入過多的噪聲,造成協方差矩陣的統計失配,由于加載系數對協方差矩陣的對角線上元素增加了一常量,提高了協方差矩陣失配時自適應波束形成的魯棒性,實驗結果符合前期設計預想。

圖7 波束方向圖
本文提出了一種改進的自適應波束形成算法。通過對聲源定位方式的改進,在傳統算法利用時間延遲計算DOA的基礎上,引入了能量衰減的參數,使只利用兩個麥克風就可以計算出聲源的位置,簡化了設備復雜度也提高了計算的精度。針對傳統自適應波束形成器對誤差較敏感,通過引入加載系數的方式,提高了協方差矩陣估計值與實際值存在誤差時系統的魯棒性,并通過仿真實驗對算法的效果進行了驗證。對于加載系數的選擇本文并沒有具體討論,而是采用了一般的經驗值,下一步工作應該討論不同條件下加載系數對輸出的影響,給出加載系數的設計方式。