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