李政儀, 宮二玲, 曹孟華
(1.長沙民政職業技術學院 軟件學院,湖南 長沙 410004;2.國防科技大學 智能科學學院,湖南 長沙 410073)
語音日漸成為人機交互的主要方式。為了改善人機語音交互質量,一方面需要提升語音識別能力,另一方面需要提升語音的質量,即獲取“清晰的”語音。目前,在改善語音質量方面,主要采用單通道降噪和麥克風陣列兩種方式。近年來,由于在抑制方向性噪聲方面的突出表現麥克風陣列在智能音箱、家電、手機等領域中得到了廣泛的應用[1]。
麥克風陣列即由多個麥克風(通常應該是3個及以上)按照一定幾何構型組成的陣列,總體上可分為立體陣列、平面陣列和線陣列。常用的陣列為平面陣列。從幾何構型的角度出發,平面陣列可分為隨機布局和規則布局兩種類型。智能家居中的平面陣列使用的麥克風數量不多,通常采用規則型的布局方式(環形);而某些特定產品,如聲學照相機、遠程會議麥克風陣列等,通常采用數十個麥克風,這種類型的陣列為了優化性能,通常不會采用規則布局,而在一定的準則下設計優化構型,如B&K公司的輪輻構型等[2,3]。
本文針對一類圓形平面陣列,采用啟發式優化算法,在實際設計要求的約束下,提出一種優化設計方案。利用這種設計方案,可以有效地提升主旁瓣比,抑制虛像,改善定位或波束形成的效果。
圓形平面陣列是實際應用最為廣泛的一類陣列。陣列尺寸D和麥克風總數量N是兩個硬性的設計約束,基本不存在調整優化的余地。因此,將D和N設定為固定值,在這兩個固定約束下,設計最優的陣列構型。與常規的優化問題不同,陣列構型優化問題的目標函數和約束條件都不存在解析形式,只能采用啟發式搜索方法,如遺傳算法、微分進化、模擬退火等進行求解。
陣列的性能指標包括主瓣寬度、旁瓣電平、陣列增益等,它們之間不是獨立的。因此,對陣列進行優化,必須在這些指標之間的進行合適的折中。在白噪聲條件下,陣增益變為白噪聲增益,而白噪聲增益僅與陣元數量有關,在限定傳聲器數量N的情況下,不將陣列增益作為優化目標。
低的旁瓣電平可以有效抑制來自于目標方向以外的干擾噪聲,降低目標檢測的虛警概率;窄的主瓣寬度則可以提高目標方向分辨能力,主瓣越窄,陣列的指向性越好。因此,如果陣列用于定位,可將極小化旁瓣電平作為目標;如果陣列用于波束形成/定向拾音,可將極小化主瓣寬度作為目標[4~6]。
在線性陣列中,主瓣寬度一般定義為波束主瓣下降到-3 dB時的兩方向夾角。在平面陣列中,方向由方位角θ和φ俯仰角決定。構造一個右手坐標系,陣列處于xoy平面上,如圖1所示,S(r,θ,φ)為聲源位置。可知方位角θ∈[0°,360°],俯仰角φ定義為聲源到坐標原點的連線與z軸之間的夾角,為了去模糊,只考慮z軸正方向的聲源,即φ∈[0°,180°]。

圖1 右手坐標系
參照線陣列中關于主瓣寬度的定義,將面陣列的主瓣寬度定義為主瓣下降到-3 dB的等高線內方位角與俯仰角所形成的面積表示主瓣寬度。面積越小,說明主瓣越窄。以一個30陣元的輻射式麥克風陣列為例,陣列直徑為24 cm,自圓心輻射出6條半徑,將圓等分為6個扇形,即陣列形狀為。當聲源入射方向為(θ,φ)=(90°,30°)時,其三維波束和平面投影波束如圖2所示。在這種情況下,輻射式陣列主瓣寬度為[7 64]°×[50 132]°。

圖2 輻射式陣列的波束

(1)
其含義為歸一化的最大旁瓣增益在不超過某個增益閾值G0的前提下,使得主瓣寬度最小。問題就成為如何計算主瓣的寬度了。為了計算方便,可將問題(1)構造為一個無約束優化問題
(2)
式中K>0為加權系數,如果要求偏重于控制旁瓣,則K值取較大的數。
給定一個直徑為24 cm的圓形陣列面板,設計一個由30個陣元構成的麥克風陣列??紤]到生產加工等實際問題,要求任意2只麥克風之間的最小間距不能低于1 cm?;谶@一點,考慮將圓形陣列面劃分為大小為1 cm×1 cm的正方形格子。接下來是在這些格子中挑選出30個格子,組成一個“最優陣列”。組合方式的數量超過1 046,因此,只能設計優化算法來快速獲取“最優陣列”。
這不是一個凸優化問題,可能存在多個局部極值點。因此,采用啟發式搜索算法是比較合適的選擇。遺傳算法作為一種常用的啟發式搜索算法,在尋找全局最優解方面具備明顯優勢,在實際工程中得到了廣泛引用[7]。因此,本文采用該方法進行求解問題(2)。
遺傳算法的可分為種群生成、種群選擇、種群樣本交叉、變異等操作,不停的迭代運算,直到滿足迭代停止條件。
在圓域劃分出的多個1 cm×1 cm方格內,隨機選取30個點,生成一組樣本(xi,yi,zi),i=1,2,…,30,zi=0;循環執行這一操作,可得到N組樣本,生成一個種群。圓域中各坐標點的橫向范圍為[-11.5,11.5]cm,按照1 cm的間隔進行采樣;縱向范圍與橫向范圍一致。而隨機抽樣的坐標點(xi,yi,0)一般不會恰好位于方格的中心,因此,應該按照以下方式進行適當的處理
(3)
式中 ?」為向0取整。yi也可以參照這種方式進行處理。
在生成的種群中,通過一定的策略,選擇合適的樣本,生成一個新的種群,容量與原種群保持一致?;静呗允潜M量將“較好的”樣本,即目標函數F較大的樣本選入新種群。一種最為簡單的選擇策略是輪盤賭模式,其思路為使得較好的樣本能夠有更大的機會進入種群。考慮到目標函數F>0,因此可直接取F作為樣本的適應度,適應度越大,選入新種群的可能性越大。目標函數涉及到主瓣和旁瓣的計算,遠場情形下,陣列的波束圖為
A(ω,θ,φ)=|exp(-jωτ)*exp(-jωτ′)|
式中ω為入射波的頻率(rad/s),(θ,φ)分別為入射方位角和俯仰角;τ為在該入射方向下,聲音到達各麥克風的時間,具體計算方式可參見文獻[2]。通過二維尋峰算法,可得到波束圖的主瓣和旁瓣,以及對應的主瓣寬度。
樣本交叉指的是從種群中選擇成對的樣本進行處理,產生新一代樣本,相應替換原有的樣本。隨機選擇M(M D1=αD(1)+(1-α)D(2),D2=αD(2)+(1-α)D(1) 式中D(1)和D(2)為待交叉的兩個樣本中的坐標點,D1和D2為交叉后的兩個樣本中的坐標點,α為(0,1)之間的隨機數。這種交叉方式可保證D1和D2仍然位于圓域內。需要注意的是,D1和D2有可能不是恰好位于1 cm×1 cm方格的中心,可按照式(3)進行處理,使其位于中心內。此外,D1和D2如果與樣本中的其他既有坐標重復,則不替換原有坐標D(1)和D(2)。 變異指的是對種群中某些樣本進行適當“干擾”,避免樣本過早成熟。通常首先設定一個較小的變異概率Pb,各樣本都以這一概率進行變異。具體計算方式為產生一個(0,1)之間的隨機數α,當α 在圓域內隨機生成一個坐標點W,生成一個(0,1)之間的隨機數α,從某個樣本中隨機選擇一個坐標點D,按照D′=αD+(1-α)W的方式產生變異點D′。與交叉操作類似,D′應該進行適當處理,保證位于方格中心,且不與樣本中的既有點重復,如果重復,則反復執行上述變異過程,直到得出30個不重復的坐標點。 有兩類停止規則,一類是迭代次數超過了預設的最大值,另一類是相鄰兩代種群的變化較小或者是單代種群中各樣本的變化較小。兩類停止規則可同時使用。相鄰兩代種群的變化率可利用目標函數的平均值變化率表示,單代種群中各樣本的變化率可用各樣本對應的目標函數值的標準差來表示,標準差越小,說明單代種群中各樣本越趨同,當小到一定程度,繼續迭代的意義已經不大了。 設定種群數量N=50,用于交叉的種群數量M=30,權重系數K=0.01,開展交叉的坐標點數量k=5,變異概率Pb=0.05;入射方向設定為(90°,30°),入射波頻率為f=2 000 Hz。利用遺傳算法開展優化設計,目標函數的迭代曲線(圖3(a))和最終的優化陣列構型(圖3(b))。 從圖3可以看出:在迭代過程中,目標函數值迅速上升,10次迭代之后,目標函數趨于穩定,說明算法已經收斂,可認為已經得到了最優解。 圖3 目標函數迭代曲線與優化陣列構型 圖4給出了優化陣列的波束圖,計算得到其主瓣寬度[12 54]°×[47 137]°,小于圖2所示的輻射型陣列的主瓣寬度,在[0 90]°×[0 180]°的范圍內,不存在旁瓣。 圖4 優化陣列波束 在兼顧主瓣寬度和最大旁瓣增益的情況下,構造了一個合適的目標函數,消除了優化問題的約束條件,使其成為一個無約束優化問題,便于求解。考慮到電路設計的具體情況,將圓形面板劃分為1 cm×1 cm的方格,保證優化得到的陣列結構是可實現的。針對遺傳算法選擇、交叉和變異等操作,給出了一系列的解決方案,保證整個算法可行。仿真結果表明,優化算法確實能夠保證目標函數的下降趨勢,且在一定的迭代次數后保持穩定,優化的陣列構型比常規的規則型陣列,在主瓣寬度和最大旁瓣增益控制方面有著更好的表現。 下一步將著重進行陣列的硬件實現,并將其投入到具體的工程應用中,如研發定向拾音、噪聲定位等設備。2.4 種群樣本變異
2.5 迭代停止規則
3 仿真分析


4 結 論