龍 超,曾慶寧,羅 瀛
(桂林電子科技大學(xué)電子工程與自動(dòng)化學(xué)院,廣西桂林541004)
語音增強(qiáng)對(duì)于語音通信和語音識(shí)別具有重要的應(yīng)用價(jià)值[1]。語音增強(qiáng)可分為單通道語音增強(qiáng)[2-3]和陣列語音增強(qiáng)[4-5],由于陣列語音增強(qiáng)含有多路信號(hào),其增強(qiáng)效果通常優(yōu)于單路語音增強(qiáng)。在陣列語音增強(qiáng)中,由于小陣的孔徑很小,十分有利于嵌入諸如手機(jī)、電話、助聽器等小型設(shè)備之中,應(yīng)用場(chǎng)合更為廣泛[6-7]。
廣義旁瓣抵消(Generalized Sidelobe Cancellation,GSC)方法是陣列語音增強(qiáng)中的一種傳統(tǒng)方法[8-11],但由于小陣中各通道的語音與噪聲信號(hào)相互串?dāng)_的現(xiàn)象十分嚴(yán)重,GSC 方法的增強(qiáng)效果十分有限,于是基于VAD(Voice Activity Detector)的 GSC 方法被提出,即 VAD-GSC 方法[1,6]。而陣列抗串?dāng)_自適應(yīng)噪聲抵消(Array Crosstalk Resistant Adaptive Noise Cancellation,ACRANC)方法對(duì)于處理小陣中信號(hào)串?dāng)_的問題往往具有比VAD-GSC更加明顯的優(yōu)越性,因而ACRANC語音增強(qiáng)方法被提出[12]。對(duì)于小陣語音增強(qiáng),ACRANC 方法通常比VAD-GSC 方法效果更為顯著,尤其是當(dāng)語音源和噪聲源距離陣列較近時(shí),其優(yōu)勢(shì)尤為突出。
本文旨在進(jìn)一步改進(jìn)ACRANC 小陣語音增強(qiáng)方法,通過將ACRANC 方法與波束形成(BeamForming,BF)方法[13]相結(jié)合,提出一種效果更好的小陣語音增強(qiáng)方法。基本思路如下:在ACRANC 中,取一路含噪語音信號(hào)作為主信號(hào),其余路信號(hào)作為參考信號(hào),其輸出信號(hào)是主信號(hào)中經(jīng)過降噪后的語音增強(qiáng)信號(hào)。由于主信號(hào)其實(shí)是可以任意選取的,如果分別把小陣中的每一路信號(hào)取作為主信號(hào),其余信號(hào)作為參考信號(hào),分別應(yīng)用ACRANC 便可得到多路經(jīng)過降噪后的語音增強(qiáng)信號(hào)。如果對(duì)這些多路語音增強(qiáng)信號(hào)進(jìn)一步使用BF 方法進(jìn)行降噪處理,將可得到更好的語音增強(qiáng)效果。為此,本文探討并給出了ACRANC 與延遲求和(Delay And Sum,DAS)波束形成[13]相結(jié)合的方法。真實(shí)環(huán)境下的實(shí)驗(yàn)結(jié)果表明,本文方法可以進(jìn)一步提高ACRANC方法的降噪效果。
假設(shè)語音信號(hào)為s(k),噪聲信號(hào)為n(k),它們通過多條路徑分別到達(dá)麥克風(fēng)Mi并轉(zhuǎn)化成信號(hào)si(k)和ni(k),語音和噪聲從語音源和噪聲源到達(dá)麥克風(fēng)Mi的傳播沖激響應(yīng)為hsi(k)和hni(k),相應(yīng)的Z變換分別記為Hsi(z)和Hni(z)。如圖1 所示,麥克風(fēng)Mi實(shí)際拾取的信號(hào)可表示為xi(k) = si(k) + ni(k),其中i = 1,2,…,N,k = 0,1,2,…,這里N 表示陣列中麥克風(fēng)的個(gè)數(shù),k是離散時(shí)間序號(hào)。
圖1 語音與噪聲的傳播及串?dāng)_示意圖Fig.1 Schematic diagram of propagation and crosstalk of speech and noise
由圖1可得出:
其中:i = 1,2,…,N;*是卷積運(yùn)算符號(hào)。
記語音信號(hào)si到語音信號(hào)sj的中間傳播的沖擊響應(yīng)為hsjsi(k),而噪聲信號(hào)ni到噪聲信號(hào)nj的中間傳播沖擊響應(yīng)為hnjni(k),則:
其中i,j = 1,2,…,N。由式(2)~(5)可得:
其中i,j = 1,2,…,N。
圖2 所示即為一個(gè)ACRANC 系統(tǒng)結(jié)構(gòu),該系統(tǒng)以麥克風(fēng)Mi獲得的信號(hào)xi(k)作為主路信號(hào),而其他N - 1 個(gè)麥克風(fēng)獲得的信號(hào)xj(k)(j = 1,…,i - 1,i + 1,…,N)作為參考信號(hào)。
圖2 ACRANC結(jié)構(gòu)Fig.2 Structure diagram of ACRANC
首先,在全局無聲階段(即各路信號(hào)均屬于無聲的階段),通過濾波器Ai用多路參考信號(hào)中的噪聲去抵消主路中的噪聲。
在全局無聲階段,可以假定語音信號(hào)si(k) = 0(i =1,2,…,N)。因此由圖2有:
所以:
其中:xi(k) = ni(k),ei1(k) = erri(k)是預(yù)測(cè)誤差,yi1= wini(k)是濾波器Ai的輸出。wi是1×(N - 1)(L + 1)維的濾波器Ai的系數(shù)向量,即
其中 wij=(wij0,wij1,…,wijL);ni(k)是N(L + 1) × 1 維的噪聲信號(hào)向量。
其中:nij(k) =[nij(k),nij(k - 1),…,nij(k - L)]T,顯然L 是參考通道噪聲信號(hào)延遲的樣點(diǎn)數(shù)。
然后,在緊隨全局無聲階段后面的有聲階段,在假定環(huán)境是不變或緩慢變化的條件下,不妨保持濾波器Ai的最優(yōu)系數(shù)不變,于是有:
這里xi(k)和si(k)分別表示拾取的含噪語音向量和純語音向量,表達(dá)形式類似于式(11)中的純?cè)肼曄蛄縩i(k)的形式。然后由式(8)與式(13)有:
上述ei1(k)是一路含有殘余噪聲的畸變語音,pi(k)便是其中的畸變的語音,由式(15)可見,它其實(shí)由第i 路中的純凈語音信號(hào)si(k)畸變而來。
ei1(k)是將第i 路信號(hào)作為主信號(hào),其他信號(hào)作為參考信號(hào)而得到的。如果讓i 從1 至N,即分別將各路信號(hào)當(dāng)作主信號(hào),其余信號(hào)作為參考信號(hào),那么就可得到N路含殘余噪聲的畸變語音信號(hào)ej1(k)(j = 1,2,…,N)。
如果濾波器Bi的系統(tǒng)函數(shù)為,則由式(17)和式(18)有:
如同在自適應(yīng)噪聲抵消(Adaptive Noise Cancellation,ANC)系統(tǒng)中一樣,不妨假設(shè)噪聲與語音信號(hào)是不相關(guān)的,那么ni(k)與si(k)不相關(guān),于是,為使濾波器Bi的系統(tǒng)函數(shù)趨于只需調(diào)節(jié)圖2 中濾波器Bi的系數(shù)使的平方和最小即可,這是因?yàn)椋?/p>
而:
由上述分析可知:圖2 的ACRANC 系統(tǒng)的輸出yi2趨于純凈語音 si,記 x^i(k) = yi2(k)。
第1章的ACRANC 方法可以與波束形成方法結(jié)合形成更為有效的語音增強(qiáng)方法,本文考慮與延遲求和(Delay And Sum,DAS)波束形成[15-16]相結(jié)合的方法。如圖3 所示,該方法由N 個(gè) ACRANC 子系統(tǒng)、1 個(gè)延遲求和波束形成(BF)子系統(tǒng)和1 個(gè)自適應(yīng)模式控制(Adaptation Mode Control,AMC)子系統(tǒng)組成,其中N 為陣列中麥克風(fēng)的個(gè)數(shù)。圖3 中每個(gè)ACRANC 子系統(tǒng)均由虛線矩形框框出。AMC 用于控制這些子系統(tǒng)中的濾波器何時(shí)更新系數(shù)以及何時(shí)固定系數(shù)不變。每個(gè)ACRANC 子系統(tǒng)的輸出也都是一路初步增強(qiáng)的語音,而所有子系統(tǒng)的輸出再輸入一個(gè)DAS 波束形成器以得到更好的語音增強(qiáng)結(jié)果。
在實(shí)際問題中,環(huán)境因素大多是緩變甚至基本不變的,因此,可以僅在沒有語音的無聲階段(Non-Voice Period ,NVP)[14]調(diào)整濾波器Ai的最優(yōu)系數(shù)以補(bǔ)償環(huán)境因素變化引起的誤差。由于語音到達(dá)麥克風(fēng)陣中不同麥克風(fēng)的時(shí)間不同,各個(gè)麥克風(fēng)拾取得的信號(hào)的無聲階段也略有不同,因此這里需要定義一個(gè)全局無聲階段(Over-all NVP,ONVP),各個(gè)子系統(tǒng)的第一級(jí)濾波器Ai只在ONVP期間調(diào)整最優(yōu)系數(shù)。
由麥克風(fēng)Mi拾取得第i路含噪語音信號(hào)xi(k)的無聲階段記為NVP(i),NVP(i)顯然由一系列離散區(qū)間組成,即:
定義ONVP為:
于是,容易證明:
圖3 ACRANC結(jié)合波束形成方法示意圖Fig.3 Schematic diagram of ACRANC combined with beamforming method
調(diào)整濾波器Ai的最優(yōu)系數(shù)時(shí),任何一路信號(hào)中最好都不含有語音信號(hào),否則,語音會(huì)被當(dāng)作噪聲一同抵消,因此,只在如下的L-ONVP階段調(diào)整濾波器Ai的系數(shù)。
其中L是參考信號(hào)輸入濾波器Ai的延遲時(shí)間點(diǎn)數(shù),而:
如果k″j< k′j+ L,同樣定義式(26)中[k′j+ L,k″j]= ?。
在L-ONVP 階段,所有信號(hào)及本文用到的延遲全部屬于無聲階段,不包括任何語音信號(hào),因此可以在L-ONVP 階段調(diào)整濾波器Ai的最優(yōu)系數(shù),第1 章中所指的特殊的NVP 階段指的就是L-ONVP或L-ONVP的一部分。
現(xiàn)在已有許多語音判決方法可以用來判決一個(gè)含噪語音信號(hào)的 NVP 階段或者 VP(Voice Period)階段[13],但要準(zhǔn)確地確定VP 或NVP 還是很難的,好在本文系統(tǒng)實(shí)際上并不需要準(zhǔn)確地確定VP 或NVP,只要在NVP 內(nèi)確定出一段純?cè)肼晛砀滤袨V波器Ai的最優(yōu)系數(shù)以補(bǔ)償噪聲環(huán)境的變化即可,因此,其實(shí)可以使用一個(gè)比較簡單的語音判決方法。進(jìn)而,為計(jì)算簡便起見,完全可以僅對(duì)某一路信號(hào)xi0(k)進(jìn)行語音判決即可,不必要根據(jù)上述式(23)~(27)對(duì)全部N 路信號(hào)都作判決,為此,可以只在如下定義的(Δ,Δ′)-ONVP 階段進(jìn)行濾波器Ai最優(yōu)系數(shù)的調(diào)整。
其中δ 是噪聲從麥克風(fēng)陣的其他麥克風(fēng)傳播到第i0個(gè)麥克風(fēng)之間的時(shí)間延遲,以延遲樣點(diǎn)數(shù)計(jì)。最多延遲樣點(diǎn)數(shù)為:
其中:di是麥克風(fēng)Mi0與麥克風(fēng)Mi之間的距離;f 是陣列的采樣頻率;而c是音頻信號(hào)在空氣中的傳播速度。
在(Δ,Δ′)-ONVP 之外的階段,每個(gè)子系統(tǒng)的濾波器 Ai的最優(yōu)系數(shù)保持原值不變,濾波器Ai只作濾波使用。
類似地,可以定義一個(gè)特殊的有聲階段的子集(Δ,Δ′)-OVP(Overall Voice Period),為了補(bǔ)償環(huán)境變化以及說話位置移動(dòng)而引起的語音傳播函數(shù)的變化,應(yīng)當(dāng)在這個(gè)有聲階段的子集里自適應(yīng)地調(diào)整所有濾波器Bi的最優(yōu)系數(shù)。但實(shí)際應(yīng)用中,如果為了簡便起見,也可對(duì)Bi自始至終不停地作自適應(yīng)濾波。
總而言之,通過陣列中某一路信號(hào)用VAD 定出無聲階段的子集(Δ,Δ′)-ONVP,在此子集內(nèi),所有子系統(tǒng)的濾波器Ai都作自適應(yīng)濾波,而濾波器Bi始終作自適應(yīng)濾波。
根據(jù)圖3 所示的方法,每一個(gè)子系統(tǒng)的輸出都是一路降噪后的語音信號(hào),所有的N 路輸出可以輸入一個(gè)波束形成器以得到更好的語音降噪效果。本文使用常用的DAS 波束形成器,該波束形成器可通過如下的輸入輸出關(guān)系描述:
式中,τi是相對(duì)于陣列中選定的一個(gè)參考麥克風(fēng)Mi0而言,語音到達(dá)麥克風(fēng)Mi的延遲時(shí)間。參考麥克風(fēng)Mi0可以任選為陣列中任何一個(gè)麥克風(fēng),但通常選擇位于麥克風(fēng)陣中央或接近中央的麥克風(fēng)作為參考麥克風(fēng),顯然τi0= 0。
如果麥克風(fēng)陣的陣列孔徑很小(小型陣列通常如此),而且陣列信號(hào)的采樣頻率不是很高的話,所有的τi可視為0 處理。例如,如果陣列中任何一個(gè)麥克風(fēng)Mi到參考麥克風(fēng)Mi0的距離都小于2 cm,而且陣列的快拍采樣頻率為8 000 Hz,那么最大的延長時(shí)間將小于半個(gè)采樣時(shí)間間隔,所以,這時(shí)不妨取所有的τi= 0。
對(duì)于圖3 所示的語音增強(qiáng)方法,其中AMC 和DAS 波束形成器的計(jì)算量都不大,AMC其實(shí)可以通過一個(gè)VAD 實(shí)現(xiàn)。所以,方法的計(jì)算復(fù)雜度主要在于N 個(gè)子系統(tǒng)的ACRANC 方法的計(jì)算量估計(jì),對(duì)于ACRANC,其計(jì)算量取決于所有濾波器Ai和Bi所采用的自適應(yīng)算法。如果本文采用最小均方(Least Mean Square,LMS)自適應(yīng)算法,則不難算出N 個(gè)子系統(tǒng)的ACRANC方法的計(jì)算量不超過:
其中:2A表示2次加法運(yùn)算;3M表示3次乘法運(yùn)算;L是決定濾波器Ai階數(shù)的式(10)中參考信號(hào)所用到的延遲時(shí)間樣點(diǎn)數(shù);N是陣列中麥克風(fēng)的個(gè)數(shù);LB是濾波器Bi的階數(shù);fT是麥克風(fēng)陣列的采樣率。由于許多芯片可以在一次操作中同時(shí)完成一個(gè)加法和乘法,其真實(shí)計(jì)算時(shí)間遠(yuǎn)少于式(32)所示所需要的時(shí)間。
例如,如果選取決定濾波器Ai長度的L = 24,濾波器Bi的長度LB= 48,采樣頻率fT=8 000 Hz,并且陣列由N = 5 個(gè)麥克風(fēng)構(gòu)成,則根據(jù)式(32)可得所關(guān)心的計(jì)算量將不超過29.8 MFLOPS,足見其可用目前普通的DSP芯片實(shí)時(shí)實(shí)現(xiàn)。
實(shí)驗(yàn)在普通室內(nèi)進(jìn)行,實(shí)驗(yàn)中所用的麥克風(fēng)小陣如圖4所示,由5個(gè)麥克風(fēng) M1,M2,…,M5置于一圓盤上組成,M1位于圓盤中心,其余四個(gè)麥克風(fēng)圍繞中心均勻放置,每個(gè)麥克風(fēng)Mi(i = 2,3,4,5)與中心麥克風(fēng)M1的距離僅2 cm。噪聲由喇叭播出噪聲庫NoiseX92 中的多種噪聲,喇叭與麥克風(fēng)陣的中心距離為1.5 m。語音為一說話人朗讀句子“本段語音用于測(cè)試”,說話人位于麥克風(fēng)正前方30 cm 處。陣列快拍采樣率為8 000 Hz。
實(shí)驗(yàn)數(shù)據(jù)一的錄取是將語音和噪聲分開發(fā)出并錄取,然后再將它們疊加合成含噪語音陣列數(shù)據(jù);實(shí)驗(yàn)數(shù)據(jù)二則是將語音和噪聲同時(shí)發(fā)出并錄取的含噪語音陣列數(shù)據(jù)。實(shí)驗(yàn)結(jié)果表明:本文方法對(duì)實(shí)驗(yàn)數(shù)據(jù)一與實(shí)驗(yàn)數(shù)據(jù)二的語音增強(qiáng)效果幾乎沒有差別,但使用實(shí)驗(yàn)數(shù)據(jù)二將無法進(jìn)行信噪比(Signalto-Noise Ratio,SNR)計(jì)算和語音質(zhì)量的 PESQ(Perceptual Evaluation of Speech Quality)評(píng)分[15-19],因此,以下不妨針對(duì)實(shí)驗(yàn)數(shù)據(jù)一給出實(shí)驗(yàn)結(jié)果。
圖4 麥克風(fēng)小陣Fig.4 Small microphone array
在對(duì)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行語音增強(qiáng)的過程中,選取L = 24 和LB= 48,所以,每個(gè)ACRANC 子系統(tǒng)中,濾波器Ai的階數(shù)均為(24 + 1) × 4 - 1= 99,濾波器Bi的階數(shù)均為48。
采用最小均方(LMS)自適應(yīng)算法來調(diào)節(jié)每個(gè)子系統(tǒng)中的有限脈沖響應(yīng)(Finite Impulse Response,F(xiàn)IR)濾波器Ai和Bi的系數(shù)向量,而LMS 算法中步長因子選為μ = 0.01。同時(shí),選擇麥克風(fēng)M1作為DAS 波束形成中的參照麥克風(fēng),并且,選擇麥克風(fēng)M1獲得的信號(hào)x1(k)作為VAD 的探測(cè)信號(hào)。為獲得(Δ,Δ′)-ONVP,選 Δ′= 100。由于陣列中麥克風(fēng)距離很近,而且采樣率不高,因此,語音在各麥克風(fēng)中的延遲少于一個(gè)樣點(diǎn),于是為簡便計(jì)算可將DAS 波束形成簡化為求和波速形成。
表1 給出了針對(duì)多種噪聲采用VAD-GSC 方法、ACRANC方法和本文方法的增強(qiáng)語音的信噪比SNR。從表1 中可以看出,ACRANC 方法的語音增強(qiáng)效果顯著優(yōu)于傳統(tǒng)的VAD-GSC方法,而本文方法的效果相較ACRANC 方法又有所提高。表2 給出了針對(duì)多種噪聲采用VAD-GSC 方法、ACRANC 方法和本文方法的增強(qiáng)語音的客觀質(zhì)量評(píng)分PESQ。從表2 中同樣可以看出,本文方法具有更好的語音增強(qiáng)性能。
圖5 是噪聲為白噪聲時(shí)各個(gè)有關(guān)信號(hào)的波形圖。其中:(a)是麥克風(fēng)M1拾取純凈語音信號(hào);(b)是麥克風(fēng)M1拾取的含噪語音信號(hào)x1(k),由其他麥克風(fēng)拾取的含噪語音信號(hào)與x1(k)的圖幾乎相同;(c)是通過VAD-GSC 方法輸出的增強(qiáng)語音信號(hào),其SNR 改善了3.28 dB,PESQ 提高了0.05;(d)是對(duì)應(yīng)圖3 中第一個(gè)子系統(tǒng)的輸出x^1(k),也就是使用ACRANC 方法增強(qiáng)后的語音信號(hào),其SNR 改善了11.18 dB,PESQ 提高了0.23,其他四個(gè)子系統(tǒng)輸出的語音信號(hào)的SNR 改善量分別為10.92 dB、12.09 dB、11.82 dB 和10.83 dB;(e)是通過本文方法輸出的增強(qiáng)語音信號(hào)y(k),相較于中心麥克風(fēng)拾取得含噪語音信號(hào)x1(k),其 SNR 改善量為 14.99 dB,而 PESQ 提高了0.41。
表1 針對(duì)多種噪聲采用不同方法的增強(qiáng)語音信號(hào)的SNR單位:dBTab. 1 SNR of speech signals enhanced by different methods under several kinds of noises unit:dB
表2 針對(duì)多種噪聲采用不同方法的增強(qiáng)語音信號(hào)的PESQTab. 2 PESQ of speech signals enhanced by different methods under several kinds of noises
圖5 不同方法的語音增強(qiáng)信號(hào)波形圖Fig.5 Waveforms of speech signals enhanced by different methods
本文在陣列抗串?dāng)_自適應(yīng)噪聲抵消(ACRANC)方法的基礎(chǔ)上,探討并提出了ACRANC 與延遲求和(DAS)波束形成相結(jié)合的方法,分析了其語音增強(qiáng)原理及計(jì)算復(fù)雜度,真實(shí)環(huán)境下的實(shí)驗(yàn)結(jié)果表明了本文方法的有效性。
需要指出,經(jīng)過本文方法處理后所輸出的增強(qiáng)語音信號(hào),還可以繼續(xù)使用單路語音增強(qiáng)方法進(jìn)行增強(qiáng)處理,以得到殘留噪聲更少的增強(qiáng)語音信號(hào),但由于單路語音增強(qiáng)方法不可避免地會(huì)對(duì)語音信號(hào)造成損傷,因此,應(yīng)根據(jù)具體應(yīng)用情況決定是否再進(jìn)行單路增強(qiáng)處理。