郭業(yè)才 劉力瑋 顧弘毅
(1.南京信息工程大學(xué)電子與信息工程學(xué)院,南京,210044;2.南京信息工程大學(xué)濱江學(xué)院,無(wú)錫,214105)
Key words:DOA estimation;array imperfection;generalized cross-correlation;residual network
波達(dá)方向(Direction of arrival,DOA)估計(jì)是陣列信號(hào)處理的重要方向之一,其廣泛應(yīng)用在遠(yuǎn)程自動(dòng)語(yǔ)音識(shí)別[1],電話會(huì)議和自動(dòng)攝像機(jī)轉(zhuǎn)向[2]等方面。然而,當(dāng)陣列流型存在缺陷時(shí),要得出準(zhǔn)確的DOA估計(jì)是很困難的。因此,需要一種可以在缺少陣列流型誤差的先驗(yàn)信息時(shí)進(jìn)行魯棒DOA估計(jì)的方法。
傳統(tǒng)DOA估計(jì)方法主要可以分為:(1)子空間方法,例如多重信號(hào)分類(Multiple signal classification,MUSIC)[3]和借助旋轉(zhuǎn)不變技術(shù)估計(jì)信號(hào)參數(shù)技術(shù)(Estimating signal parameters via rotational invariance techniques)[4];(2)廣義互相關(guān)(Generalized cross-correlation,GCC)[5]和最小二乘法(Least squares,LS)[6];(3)信號(hào)同步方法,例如基于聯(lián)合可控響應(yīng)功率和相位變換(Steered response power using the phase transform weight,SRP-PHAT)方法[7]和多通道互相關(guān)(Multichannel cross-correlation coefficient,MCCC)方法[8];(4)脈沖響應(yīng)的盲識(shí)別方法,例如自適應(yīng)特征值分解(Adaptive eigenvalue decomposition,AED)算法[9]和獨(dú)立分量分析方法[10];(5)基于l1范數(shù)懲罰的稀疏信號(hào)表示方法[11];(6)基于模型的方法,例如最大似然法[12]。上述方法計(jì)算成本高,并且依賴對(duì)陣列流型的假設(shè)。
針對(duì)上述傳統(tǒng)方法存在的問(wèn)題,近幾年出現(xiàn)了基于神經(jīng)網(wǎng)絡(luò)的DOA估計(jì)方法[13,14]。這些方法只對(duì)語(yǔ)音信號(hào)做簡(jiǎn)單的特征處理,如計(jì)算信號(hào)的協(xié)方差矩陣或廣義互相關(guān),利用神經(jīng)網(wǎng)絡(luò)完成信號(hào)特征到DOA結(jié)果之間的映射關(guān)系。這些方法將DOA視作分類問(wèn)題,沒(méi)有對(duì)信號(hào)做過(guò)強(qiáng)的假設(shè),一定程度上克服了傳統(tǒng)方法的缺點(diǎn),取得了良好的DOA估計(jì)效果。
近年來(lái),深度卷積神經(jīng)網(wǎng)絡(luò)在圖像處理研究中取得一系列突破。網(wǎng)絡(luò)深度是深度卷積網(wǎng)絡(luò)的一個(gè)重要參數(shù),更深的網(wǎng)絡(luò)能強(qiáng)化特征提取和非線性映射能力,但堆疊過(guò)深會(huì)產(chǎn)生梯度爆炸、消失的問(wèn)題。盡管此問(wèn)題可以通過(guò)增加初始?xì)w一化[15]和中間歸一化層解決,但隨著網(wǎng)絡(luò)深度的進(jìn)一步增加,擬合精度變飽和后迅速退化。殘差卷積網(wǎng)絡(luò)[16]一定程度上解決了這一問(wèn)題,通過(guò)更深的網(wǎng)絡(luò)提高擬合精度。
結(jié)合以上背景,本文在文獻(xiàn)[13]的基礎(chǔ)上,將殘差網(wǎng)絡(luò)(Residual network,ResNet)應(yīng)用于聲源DOA估計(jì)中,并根據(jù)神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)驅(qū)動(dòng),不依賴陣列流型的特點(diǎn),提出了一種在陣列誤差條件下基于ResNet的穩(wěn)健語(yǔ)音DOA估計(jì)算法。與其他基于神經(jīng)網(wǎng)絡(luò)的DOA估計(jì)方法不同,該算法沒(méi)有將DOA估計(jì)視作分類問(wèn)題,使用基于歐幾里德距離的代價(jià)函數(shù)對(duì)DOA進(jìn)行回歸建模。將整個(gè)定位范圍分若干個(gè)子區(qū)間,使用一個(gè)基于神經(jīng)網(wǎng)絡(luò)的深層分類器對(duì)信號(hào)分類,根據(jù)分類結(jié)果選取對(duì)應(yīng)子區(qū)間數(shù)據(jù)訓(xùn)練得到的ResNet對(duì)信號(hào)DOA估計(jì),即為本文的基于ResNet的缺陷陣列DOA語(yǔ)音估計(jì)。
設(shè)均勻線型麥克風(fēng)陣列有M個(gè)陣元,陣元間距為d,每個(gè)陣元都是相同的全向麥克風(fēng),遠(yuǎn)場(chǎng)信號(hào)以θ入射。假設(shè)噪聲為與入射信號(hào)獨(dú)立的高斯白噪聲,均值為0,方差為σ2,則陣列在k時(shí)刻的輸出為
式中:a(θ)為M×1維的陣列流型矩陣,s(k)為1×K維的目標(biāo)信源復(fù)振幅矢量,n(k)為M×K維的加性噪聲復(fù)矢量。
式中:ρ∈[0,1]為控制陣列誤差程度的系數(shù),M為陣元個(gè)數(shù)。相位誤差矢量為
考慮2種典型的陣列誤差,增益、相位誤差以及麥克風(fēng)位置誤差。本文使用的增益誤差矢量為
位置誤差矢量為
式中,d為均勻線陣的間距。加入陣列誤差的陣列流型為
式中:δ(?)為控制誤差是否存在的參數(shù),IM為M×M的酉矩陣,diag(?)為對(duì)角線設(shè)置為給定矢量的對(duì)角矩陣。雖然式(6)的陣列流型與實(shí)際情況相比簡(jiǎn)化了很多,但在利用神經(jīng)網(wǎng)絡(luò)進(jìn)行DOA估計(jì)的過(guò)程中整個(gè)系統(tǒng)沒(méi)有用到有關(guān)陣列誤差的先驗(yàn)信息,這里的陣列流型僅用來(lái)生成仿真數(shù)據(jù),因此神經(jīng)網(wǎng)絡(luò)DOA估計(jì)的穩(wěn)健性并不是針對(duì)特定的陣列誤差,可以認(rèn)為這里的簡(jiǎn)化是合理的。
基于廣義互相關(guān)的傳統(tǒng)DOA估計(jì)算法都存在過(guò)強(qiáng)的假設(shè),例如不存在混響、噪聲與信號(hào)之間互不相關(guān)、陣列模型為均勻線陣或圓陣等。因此,極端環(huán)境下經(jīng)典DOA估計(jì)算法往往會(huì)有較大偏差甚至失效。針對(duì)此問(wèn)題,本文使用ResNet完成基于GCC的DOA估計(jì)結(jié)果的映射。由于ResNet的卷積結(jié)構(gòu),將輸入特征以一對(duì)麥克風(fēng)對(duì)的GCC為一行,堆疊成矩陣,卷積時(shí)可以獲取不用麥克風(fēng)對(duì)之間的特征信息。
傳統(tǒng)的基于GCC的DOA估計(jì)算法需要先通過(guò)GCC估計(jì)時(shí)延,再通過(guò)時(shí)延得到信號(hào)入射角度。通過(guò)時(shí)延估計(jì)入射角的過(guò)程依賴于陣列流型,因此當(dāng)陣列模型存在與理想模型偏差較大時(shí),DOA估計(jì)誤差會(huì)明顯增大。而神經(jīng)網(wǎng)絡(luò)由數(shù)據(jù)驅(qū)動(dòng),DOA估計(jì)的過(guò)程不依賴于陣列流型,仍然可以在陣列模型誤差條件下獲得良好的DOA估計(jì)效果。
選取GCC-PHAT作為輸入特征的基礎(chǔ)。先將麥克風(fēng)陣列接收的語(yǔ)音信號(hào)分為長(zhǎng)0.1 s的語(yǔ)音幀,對(duì)每幀語(yǔ)音做GCC-PHAT處理。根據(jù)陣列模型參數(shù)和環(huán)境參數(shù)對(duì)每幀語(yǔ)音尺寸裁剪,得到子特征矩陣。最后,將所有子特征矩陣加權(quán)求和得到語(yǔ)音信號(hào)的特征矩陣。
2.1.1 GCC-PHAT
設(shè)陣列模型中的第m和n個(gè)麥克風(fēng)陣元接收的信號(hào)經(jīng)過(guò)離散采樣后分別為xm(k)和xn(k),則
式中:nm(k),nn(k)分別為兩個(gè)麥克風(fēng)接收信號(hào)中的噪聲;am,an為信號(hào)幅度衰減因子;τm,τn為聲源信號(hào)傳播到2個(gè)麥克風(fēng)所用的時(shí)間采樣點(diǎn)數(shù)量;s(k)為聲源信號(hào)。
忽略混響的影響,xm(k)和xn(k)的相關(guān)函數(shù)為
將式(7,8)代入式(9)得
設(shè)s(k),nm(k)和nn(k)互不相關(guān),則式(3)可寫為
式中,τmn=τm-τn,Rss(τ)為聲源s(k)的自相關(guān)函數(shù)。
當(dāng)τ-τmn=0時(shí),Rmn(τ)取最大值。因此可由Rmn(τ)的最大值估計(jì)兩個(gè)麥克風(fēng)陣元接收信號(hào)的時(shí)延采樣點(diǎn)τmn。
由互相關(guān)函數(shù)和互功率譜的關(guān)系,可得
GCC通過(guò)在式(4)加上加權(quán)函數(shù),得
式中:Wmn(n)為加權(quán)函數(shù),Gmn(n)為2個(gè)信號(hào)的互功率譜。PHAT加權(quán)函數(shù)其效果等價(jià)于白化濾波。
2.1.2 特征矩陣構(gòu)建
設(shè)均勻線陣由M個(gè)陣元,陣列間距為d,陣元麥克風(fēng)之間兩兩組合總共有m=C2M對(duì)麥克風(fēng)對(duì),對(duì)每0.1 s信號(hào)計(jì)算GCC并做相位變換(GCC-PHAT),2個(gè)麥克風(fēng)陣元之間的最大間隔為(M-1)d,陣元之間存在的最大時(shí)延為(設(shè)聲速為c),設(shè)入射信號(hào)采樣率為fs(單位Hz),代表時(shí)延的GCC波峰一定會(huì)出現(xiàn)在中間n=fs×τ個(gè)點(diǎn)中。因此,輸入矩陣維度為m×n。
由于語(yǔ)音信號(hào)的特點(diǎn),在對(duì)語(yǔ)音信號(hào)分幀處理時(shí)可能有一些非語(yǔ)音幀,為了更強(qiáng)的魯棒性對(duì)每個(gè)語(yǔ)音幀加權(quán)[16]
式中:om為第m個(gè)語(yǔ)音幀,D為GCC矩陣的元素?cái)?shù),om(d)為GCC矩陣的第d個(gè)元素,|·|為取絕對(duì)值,a為控制參數(shù),若a=0則獲得GCC向量的平均值。使用大的a可有效降低靜音幀對(duì)GCC矩陣的影響。
深層分類器是一個(gè)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),如圖1所示。分類器輸入為基于GCC的特征矩陣,分類器的前向傳播為
式中:outi為第i層神經(jīng)元的輸出,Wi為第i層與第i+1層之間的神經(jīng)元連接權(quán)重,bi為第i+1層的神經(jīng)元偏置,p為神經(jīng)網(wǎng)絡(luò)層數(shù),f(?)為神經(jīng)元激活函數(shù)。out1為網(wǎng)絡(luò)輸入,即基于GCC-PHAT的特征矩陣,outp為網(wǎng)絡(luò)的輸出,即信號(hào)所在的子區(qū)間編號(hào)。
輸出層的激活函數(shù)取softmax函數(shù),損失函數(shù)為
式中:m為樣本個(gè)數(shù),n為網(wǎng)絡(luò)輸出層神經(jīng)元個(gè)數(shù)(與子區(qū)間個(gè)數(shù)相等),1{?}為示性函數(shù),y(i)為第i個(gè)樣本的標(biāo)簽,θTjx為輸出層第j個(gè)神經(jīng)元的輸入。再通過(guò)誤差的反向傳播,更新整個(gè)分類器網(wǎng)絡(luò)的權(quán)重。
圖1 深層分類器的結(jié)構(gòu)Fig.1 Structure of deep classifier
ResNet與其他卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural network,CNN)的區(qū)別在于其殘差結(jié)構(gòu)。殘差結(jié)構(gòu)的典型結(jié)構(gòu)如圖2所示,設(shè)期望映射為H(x),則殘差結(jié)構(gòu)的期望映射為F(x)=H(x)-x,最終的輸出結(jié)果為F(x)+x。
F(x)+x通過(guò)外加求和單元的前饋神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn),增加求和單元不會(huì)增加參數(shù),整個(gè)網(wǎng)絡(luò)可以按照原來(lái)的反向傳播算法進(jìn)行訓(xùn)練。
改良的ResNet將批歸一化層(Batch normalization,BN)和激活層(Relu)的位置由非線性層的后面轉(zhuǎn)移到前面[17],改良的ResNet結(jié)構(gòu),如圖3所示。圖中除第一個(gè)卷積塊以外所有卷積塊都由BN、Relu和卷積層依次連接得到。
圖2 殘差單元結(jié)構(gòu)Fig.2 Residual element structure
每個(gè)殘差求和層(Sum)前有2個(gè)3×3的卷積塊,每次卷積時(shí)加上尺寸為1的Pad保持尺寸不變。每4次殘差以后的一個(gè)卷積塊選用3×3的卷積核,加1尺寸的Pad,以2為步長(zhǎng)對(duì)輸入進(jìn)行卷積,縮小尺寸1/2,通道數(shù)加倍。縮小3次后在經(jīng)過(guò)一個(gè)卷積塊將尺寸收縮到1×1,通過(guò)全連接層,送入Loss層。
網(wǎng)絡(luò)使用基于歐幾里德距離的損失函數(shù)為
式中:yi為第i個(gè)樣本的標(biāo)簽,Yi為第i個(gè)樣本特征輸入網(wǎng)絡(luò)后網(wǎng)絡(luò)的輸出,m為樣本個(gè)數(shù)。
采用均方根誤差(Root mean square error,RMSE)來(lái)比較本文算法、基于多層感知器(Multi-layer perceptron,MLP)的算法和LS-TDOA算法的準(zhǔn)確性和穩(wěn)定性。RMSE定義為
式中:R為測(cè)試使用的樣本數(shù),θS為信號(hào)的真實(shí)入射角度,θ?rS為DOA系統(tǒng)得出的估計(jì)入射角度。
仿真實(shí)驗(yàn)條件,如圖4所示,房間尺寸為5.5 m×3.3 m×2.3 m,均勻陣列放置在高度為1 m位置,陣列的陣元間隔為0.2 m,陣元數(shù)量為8個(gè)。房間的四面墻壁和天花板反射系數(shù)為0.95(普通石灰墻),地板的反射系數(shù)為0.90。
數(shù)據(jù)集聲源信號(hào)選取純凈的語(yǔ)音信號(hào),入射角度以0.1°遍歷各個(gè)分組的定位范圍,按7∶3的比例隨機(jī)抽取訓(xùn)練集和測(cè)試集。數(shù)據(jù)集規(guī)模約為4.5萬(wàn)個(gè)。將音響設(shè)置在參考陣元的不同角度作為聲源,實(shí)驗(yàn)數(shù)據(jù)由一個(gè)8陣元線型麥克風(fēng)陣列采集,陣元間距為0.2 m。
圖3 ResNet結(jié)構(gòu)Fig.3 Structure of ResNet
圖4 仿真條件示意圖Fig.4 Schematic of simulation conditions
3.2.1 子區(qū)間個(gè)數(shù)對(duì)DOA性能的影響
劃分的子區(qū)間個(gè)數(shù)對(duì)系統(tǒng)性能的影響,如圖5所示。圖中橫坐標(biāo)代表測(cè)試信號(hào)的信噪比,縱坐標(biāo)為估計(jì)結(jié)果與實(shí)際結(jié)果之間的均方根誤差。圖5表明,隨著P的增大,每個(gè)子區(qū)間的寬度減小,用于DOA估計(jì)的ResNet的泛化壓力隨之降低,因此系統(tǒng)性能提升。當(dāng)P大于6以后,繼續(xù)增大P對(duì)DOA系統(tǒng)的提升不再明顯。
3.2.2 陣列誤差對(duì)DOA估計(jì)性能的影響
陣列誤差的DOA估計(jì)性能的影響,如圖6所示。圖中橫坐標(biāo)為控制陣列誤差大小的參數(shù)ρ,縱坐標(biāo)為估計(jì)結(jié)果與實(shí)際結(jié)果之間的均方根誤差,3條曲線分別為MUSIC算法、基于MLP的語(yǔ)音DOA估計(jì)算法[13]和本文提出的基于ResNet的語(yǔ)音估計(jì)算法??梢钥闯鯩USIC算法雖然在ρ較小時(shí)性能更強(qiáng),但隨著陣列流型與理想流型相差增大,估計(jì)性能顯著下降?;贛LP的語(yǔ)音估計(jì)算法雖然表現(xiàn)出了一定的穩(wěn)健性,但由于其結(jié)構(gòu)簡(jiǎn)單,泛化能力不夠強(qiáng),性能仍有一定下降。基于ResNet的DOA估計(jì)算法由于增加了分類器結(jié)構(gòu),降低了泛化壓力,又得益于ResNet比MLP更強(qiáng)的建模能力,對(duì)陣列誤差的穩(wěn)健性更強(qiáng)。
3.2.3 信噪比對(duì)性能的影響
信噪比對(duì)系統(tǒng)性能的影響,如圖7所示。圖中將本文算法、基于MLP的DOA估計(jì)算法以及MUSIC算法在不同信噪比下的性能進(jìn)行對(duì)比,圖中實(shí)線為使用約3000個(gè)仿真測(cè)試信號(hào)在隨機(jī)角度位置的測(cè)試結(jié)果,圖中虛線為使用約100個(gè)語(yǔ)音信號(hào)在消聲室3個(gè)固定角度的測(cè)試結(jié)果。
由圖7表明,在高信噪比時(shí)幾種算法之間的差異不是很大,但信噪比在10 dB以下時(shí),MUSIC算法性能顯著下降,而2種基于神經(jīng)網(wǎng)絡(luò)的DOA算法仍能有效工作,且本文提出的算法性能更佳。由于實(shí)驗(yàn)器材的電噪聲和測(cè)量時(shí)引入的不可避免的誤差等原因,幾種算法的RMSE均有所上升,但本文算法在低信噪比下的優(yōu)勢(shì)仍十分明顯。
本文首次使用ResNet解決了陣列誤差條件下語(yǔ)音信號(hào)的定位問(wèn)題。通過(guò)增加分類器結(jié)構(gòu),降低了神經(jīng)網(wǎng)絡(luò)的泛化壓力。利用ResNet強(qiáng)大的非線性映射能力,在普通石灰墻房間和消聲室環(huán)境中均取得了良好的效果,證明了基于ResNet的DOA估計(jì)算法對(duì)陣列誤差的穩(wěn)健性。
但在極低信噪比下,深度神經(jīng)網(wǎng)絡(luò)仍出現(xiàn)了一定程度的過(guò)擬合現(xiàn)象,如果擴(kuò)大數(shù)據(jù)集的同時(shí)使用更深的網(wǎng)絡(luò)結(jié)構(gòu)可能會(huì)獲得更好的效果。
圖5 劃分的子區(qū)間個(gè)數(shù)對(duì)系統(tǒng)性能的影響Fig.5 Influence of the number of subintervals on system performance
圖6 陣列誤差對(duì)DOA估計(jì)性能的影響Fig.6 Effectof array error on DOA estimation performance
圖7 信噪比對(duì)系統(tǒng)性能的影響Fig.7 Influence of signal to noise ratio on system performance