李政儀, 宮二玲, 曹孟華
(1.長(zhǎng)沙民政職業(yè)技術(shù)學(xué)院 軟件學(xué)院,湖南 長(zhǎng)沙 410004;2.國(guó)防科技大學(xué) 智能科學(xué)學(xué)院,湖南 長(zhǎng)沙 410073)
語(yǔ)音日漸成為人機(jī)交互的主要方式。為了改善人機(jī)語(yǔ)音交互質(zhì)量,一方面需要提升語(yǔ)音識(shí)別能力,另一方面需要提升語(yǔ)音的質(zhì)量,即獲取“清晰的”語(yǔ)音。目前,在改善語(yǔ)音質(zhì)量方面,主要采用單通道降噪和麥克風(fēng)陣列兩種方式。近年來(lái),由于在抑制方向性噪聲方面的突出表現(xiàn)麥克風(fēng)陣列在智能音箱、家電、手機(jī)等領(lǐng)域中得到了廣泛的應(yīng)用[1]。
麥克風(fēng)陣列即由多個(gè)麥克風(fēng)(通常應(yīng)該是3個(gè)及以上)按照一定幾何構(gòu)型組成的陣列,總體上可分為立體陣列、平面陣列和線陣列。常用的陣列為平面陣列。從幾何構(gòu)型的角度出發(fā),平面陣列可分為隨機(jī)布局和規(guī)則布局兩種類(lèi)型。智能家居中的平面陣列使用的麥克風(fēng)數(shù)量不多,通常采用規(guī)則型的布局方式(環(huán)形);而某些特定產(chǎn)品,如聲學(xué)照相機(jī)、遠(yuǎn)程會(huì)議麥克風(fēng)陣列等,通常采用數(shù)十個(gè)麥克風(fēng),這種類(lèi)型的陣列為了優(yōu)化性能,通常不會(huì)采用規(guī)則布局,而在一定的準(zhǔn)則下設(shè)計(jì)優(yōu)化構(gòu)型,如B&K公司的輪輻構(gòu)型等[2,3]。
本文針對(duì)一類(lèi)圓形平面陣列,采用啟發(fā)式優(yōu)化算法,在實(shí)際設(shè)計(jì)要求的約束下,提出一種優(yōu)化設(shè)計(jì)方案。利用這種設(shè)計(jì)方案,可以有效地提升主旁瓣比,抑制虛像,改善定位或波束形成的效果。
圓形平面陣列是實(shí)際應(yīng)用最為廣泛的一類(lèi)陣列。陣列尺寸D和麥克風(fēng)總數(shù)量N是兩個(gè)硬性的設(shè)計(jì)約束,基本不存在調(diào)整優(yōu)化的余地。因此,將D和N設(shè)定為固定值,在這兩個(gè)固定約束下,設(shè)計(jì)最優(yōu)的陣列構(gòu)型。與常規(guī)的優(yōu)化問(wèn)題不同,陣列構(gòu)型優(yōu)化問(wèn)題的目標(biāo)函數(shù)和約束條件都不存在解析形式,只能采用啟發(fā)式搜索方法,如遺傳算法、微分進(jìn)化、模擬退火等進(jìn)行求解。
陣列的性能指標(biāo)包括主瓣寬度、旁瓣電平、陣列增益等,它們之間不是獨(dú)立的。因此,對(duì)陣列進(jìn)行優(yōu)化,必須在這些指標(biāo)之間的進(jìn)行合適的折中。在白噪聲條件下,陣增益變?yōu)榘自肼曉鲆?,而白噪聲增益僅與陣元數(shù)量有關(guān),在限定傳聲器數(shù)量N的情況下,不將陣列增益作為優(yōu)化目標(biāo)。
低的旁瓣電平可以有效抑制來(lái)自于目標(biāo)方向以外的干擾噪聲,降低目標(biāo)檢測(cè)的虛警概率;窄的主瓣寬度則可以提高目標(biāo)方向分辨能力,主瓣越窄,陣列的指向性越好。因此,如果陣列用于定位,可將極小化旁瓣電平作為目標(biāo);如果陣列用于波束形成/定向拾音,可將極小化主瓣寬度作為目標(biāo)[4~6]。
在線性陣列中,主瓣寬度一般定義為波束主瓣下降到-3 dB時(shí)的兩方向夾角。在平面陣列中,方向由方位角θ和φ俯仰角決定。構(gòu)造一個(gè)右手坐標(biāo)系,陣列處于xoy平面上,如圖1所示,S(r,θ,φ)為聲源位置??芍轿唤铅取蔥0°,360°],俯仰角φ定義為聲源到坐標(biāo)原點(diǎn)的連線與z軸之間的夾角,為了去模糊,只考慮z軸正方向的聲源,即φ∈[0°,180°]。
圖1 右手坐標(biāo)系
參照線陣列中關(guān)于主瓣寬度的定義,將面陣列的主瓣寬度定義為主瓣下降到-3 dB的等高線內(nèi)方位角與俯仰角所形成的面積表示主瓣寬度。面積越小,說(shuō)明主瓣越窄。以一個(gè)30陣元的輻射式麥克風(fēng)陣列為例,陣列直徑為24 cm,自圓心輻射出6條半徑,將圓等分為6個(gè)扇形,即陣列形狀為。當(dāng)聲源入射方向?yàn)?θ,φ)=(90°,30°)時(shí),其三維波束和平面投影波束如圖2所示。在這種情況下,輻射式陣列主瓣寬度為[7 64]°×[50 132]°。
圖2 輻射式陣列的波束
(1)
其含義為歸一化的最大旁瓣增益在不超過(guò)某個(gè)增益閾值G0的前提下,使得主瓣寬度最小。問(wèn)題就成為如何計(jì)算主瓣的寬度了。為了計(jì)算方便,可將問(wèn)題(1)構(gòu)造為一個(gè)無(wú)約束優(yōu)化問(wèn)題
(2)
式中K>0為加權(quán)系數(shù),如果要求偏重于控制旁瓣,則K值取較大的數(shù)。
給定一個(gè)直徑為24 cm的圓形陣列面板,設(shè)計(jì)一個(gè)由30個(gè)陣元構(gòu)成的麥克風(fēng)陣列??紤]到生產(chǎn)加工等實(shí)際問(wèn)題,要求任意2只麥克風(fēng)之間的最小間距不能低于1 cm?;谶@一點(diǎn),考慮將圓形陣列面劃分為大小為1 cm×1 cm的正方形格子。接下來(lái)是在這些格子中挑選出30個(gè)格子,組成一個(gè)“最優(yōu)陣列”。組合方式的數(shù)量超過(guò)1 046,因此,只能設(shè)計(jì)優(yōu)化算法來(lái)快速獲取“最優(yōu)陣列”。
這不是一個(gè)凸優(yōu)化問(wèn)題,可能存在多個(gè)局部極值點(diǎn)。因此,采用啟發(fā)式搜索算法是比較合適的選擇。遺傳算法作為一種常用的啟發(fā)式搜索算法,在尋找全局最優(yōu)解方面具備明顯優(yōu)勢(shì),在實(shí)際工程中得到了廣泛引用[7]。因此,本文采用該方法進(jìn)行求解問(wèn)題(2)。
遺傳算法的可分為種群生成、種群選擇、種群樣本交叉、變異等操作,不停的迭代運(yùn)算,直到滿足迭代停止條件。
在圓域劃分出的多個(gè)1 cm×1 cm方格內(nèi),隨機(jī)選取30個(gè)點(diǎn),生成一組樣本(xi,yi,zi),i=1,2,…,30,zi=0;循環(huán)執(zhí)行這一操作,可得到N組樣本,生成一個(gè)種群。圓域中各坐標(biāo)點(diǎn)的橫向范圍為[-11.5,11.5]cm,按照1 cm的間隔進(jìn)行采樣;縱向范圍與橫向范圍一致。而隨機(jī)抽樣的坐標(biāo)點(diǎn)(xi,yi,0)一般不會(huì)恰好位于方格的中心,因此,應(yīng)該按照以下方式進(jìn)行適當(dāng)?shù)奶幚?/p>
(3)
式中 ?」為向0取整。yi也可以參照這種方式進(jìn)行處理。
在生成的種群中,通過(guò)一定的策略,選擇合適的樣本,生成一個(gè)新的種群,容量與原種群保持一致?;静呗允潜M量將“較好的”樣本,即目標(biāo)函數(shù)F較大的樣本選入新種群。一種最為簡(jiǎn)單的選擇策略是輪盤(pán)賭模式,其思路為使得較好的樣本能夠有更大的機(jī)會(huì)進(jìn)入種群??紤]到目標(biāo)函數(shù)F>0,因此可直接取F作為樣本的適應(yīng)度,適應(yīng)度越大,選入新種群的可能性越大。目標(biāo)函數(shù)涉及到主瓣和旁瓣的計(jì)算,遠(yuǎn)場(chǎng)情形下,陣列的波束圖為
A(ω,θ,φ)=|exp(-jωτ)*exp(-jωτ′)|
式中ω為入射波的頻率(rad/s),(θ,φ)分別為入射方位角和俯仰角;τ為在該入射方向下,聲音到達(dá)各麥克風(fēng)的時(shí)間,具體計(jì)算方式可參見(jiàn)文獻(xiàn)[2]。通過(guò)二維尋峰算法,可得到波束圖的主瓣和旁瓣,以及對(duì)應(yīng)的主瓣寬度。
樣本交叉指的是從種群中選擇成對(duì)的樣本進(jìn)行處理,產(chǎn)生新一代樣本,相應(yīng)替換原有的樣本。隨機(jī)選擇M(M D1=αD(1)+(1-α)D(2),D2=αD(2)+(1-α)D(1) 式中D(1)和D(2)為待交叉的兩個(gè)樣本中的坐標(biāo)點(diǎn),D1和D2為交叉后的兩個(gè)樣本中的坐標(biāo)點(diǎn),α為(0,1)之間的隨機(jī)數(shù)。這種交叉方式可保證D1和D2仍然位于圓域內(nèi)。需要注意的是,D1和D2有可能不是恰好位于1 cm×1 cm方格的中心,可按照式(3)進(jìn)行處理,使其位于中心內(nèi)。此外,D1和D2如果與樣本中的其他既有坐標(biāo)重復(fù),則不替換原有坐標(biāo)D(1)和D(2)。 變異指的是對(duì)種群中某些樣本進(jìn)行適當(dāng)“干擾”,避免樣本過(guò)早成熟。通常首先設(shè)定一個(gè)較小的變異概率Pb,各樣本都以這一概率進(jìn)行變異。具體計(jì)算方式為產(chǎn)生一個(gè)(0,1)之間的隨機(jī)數(shù)α,當(dāng)α 在圓域內(nèi)隨機(jī)生成一個(gè)坐標(biāo)點(diǎn)W,生成一個(gè)(0,1)之間的隨機(jī)數(shù)α,從某個(gè)樣本中隨機(jī)選擇一個(gè)坐標(biāo)點(diǎn)D,按照D′=αD+(1-α)W的方式產(chǎn)生變異點(diǎn)D′。與交叉操作類(lèi)似,D′應(yīng)該進(jìn)行適當(dāng)處理,保證位于方格中心,且不與樣本中的既有點(diǎn)重復(fù),如果重復(fù),則反復(fù)執(zhí)行上述變異過(guò)程,直到得出30個(gè)不重復(fù)的坐標(biāo)點(diǎn)。 有兩類(lèi)停止規(guī)則,一類(lèi)是迭代次數(shù)超過(guò)了預(yù)設(shè)的最大值,另一類(lèi)是相鄰兩代種群的變化較小或者是單代種群中各樣本的變化較小。兩類(lèi)停止規(guī)則可同時(shí)使用。相鄰兩代種群的變化率可利用目標(biāo)函數(shù)的平均值變化率表示,單代種群中各樣本的變化率可用各樣本對(duì)應(yīng)的目標(biāo)函數(shù)值的標(biāo)準(zhǔn)差來(lái)表示,標(biāo)準(zhǔn)差越小,說(shuō)明單代種群中各樣本越趨同,當(dāng)小到一定程度,繼續(xù)迭代的意義已經(jīng)不大了。 設(shè)定種群數(shù)量N=50,用于交叉的種群數(shù)量M=30,權(quán)重系數(shù)K=0.01,開(kāi)展交叉的坐標(biāo)點(diǎn)數(shù)量k=5,變異概率Pb=0.05;入射方向設(shè)定為(90°,30°),入射波頻率為f=2 000 Hz。利用遺傳算法開(kāi)展優(yōu)化設(shè)計(jì),目標(biāo)函數(shù)的迭代曲線(圖3(a))和最終的優(yōu)化陣列構(gòu)型(圖3(b))。 從圖3可以看出:在迭代過(guò)程中,目標(biāo)函數(shù)值迅速上升,10次迭代之后,目標(biāo)函數(shù)趨于穩(wěn)定,說(shuō)明算法已經(jīng)收斂,可認(rèn)為已經(jīng)得到了最優(yōu)解。 圖3 目標(biāo)函數(shù)迭代曲線與優(yōu)化陣列構(gòu)型 圖4給出了優(yōu)化陣列的波束圖,計(jì)算得到其主瓣寬度[12 54]°×[47 137]°,小于圖2所示的輻射型陣列的主瓣寬度,在[0 90]°×[0 180]°的范圍內(nèi),不存在旁瓣。 圖4 優(yōu)化陣列波束 在兼顧主瓣寬度和最大旁瓣增益的情況下,構(gòu)造了一個(gè)合適的目標(biāo)函數(shù),消除了優(yōu)化問(wèn)題的約束條件,使其成為一個(gè)無(wú)約束優(yōu)化問(wèn)題,便于求解??紤]到電路設(shè)計(jì)的具體情況,將圓形面板劃分為1 cm×1 cm的方格,保證優(yōu)化得到的陣列結(jié)構(gòu)是可實(shí)現(xiàn)的。針對(duì)遺傳算法選擇、交叉和變異等操作,給出了一系列的解決方案,保證整個(gè)算法可行。仿真結(jié)果表明,優(yōu)化算法確實(shí)能夠保證目標(biāo)函數(shù)的下降趨勢(shì),且在一定的迭代次數(shù)后保持穩(wěn)定,優(yōu)化的陣列構(gòu)型比常規(guī)的規(guī)則型陣列,在主瓣寬度和最大旁瓣增益控制方面有著更好的表現(xiàn)。 下一步將著重進(jìn)行陣列的硬件實(shí)現(xiàn),并將其投入到具體的工程應(yīng)用中,如研發(fā)定向拾音、噪聲定位等設(shè)備。2.4 種群樣本變異
2.5 迭代停止規(guī)則
3 仿真分析
4 結(jié) 論