魏丹丹,李念念,毛海峰
(遵義師范學(xué)院 信息工程學(xué)院,貴州 遵義 563002)
免提語音通信系統(tǒng)、音頻會議系統(tǒng)和助聽器等回聲消除應(yīng)用場景中,由于揚(yáng)聲器和麥克風(fēng)耦合產(chǎn)生回波是一個(gè)亟須解決的問題[1]。自適應(yīng)濾波器為此提供了很好的解決方案,方案包括算法和結(jié)構(gòu)兩方面。其中,自適應(yīng)濾波算法主要用于更新濾波器權(quán)重系數(shù),使濾波器可以在不斷變化的外部環(huán)境中穩(wěn)定工作[2-3]?;贜LMS 或LMS 的橫向自適應(yīng)濾波器具有均方誤差小、計(jì)算成本低、實(shí)現(xiàn)簡單、魯棒性強(qiáng)等優(yōu)點(diǎn),成為最優(yōu)選擇。但由于語音信號具有高相關(guān)性和非穩(wěn)態(tài)特點(diǎn),算法收斂速度較慢。同時(shí)由于聲波回波路徑的時(shí)變性,需要通過不斷更新自適應(yīng)濾波器系數(shù)[4]來跟蹤其變化。為了解決這一問題,文獻(xiàn)[5-6]中提出了幾種NLMS的改進(jìn)方法。其中一類得到廣泛應(yīng)用的改進(jìn)算法是稀疏類自適應(yīng)濾波算法,該類充分利用聲學(xué)回聲路徑的稀疏先驗(yàn)性來提高算法收斂速度。所謂稀疏先驗(yàn)性,是指濾波器權(quán)重系數(shù)大多數(shù)都是零或者較小的系數(shù),很少有非零或大系數(shù)。根據(jù)非零系數(shù)的分布,常見系統(tǒng)有單一簇狀稀疏系統(tǒng)或多簇稀疏系統(tǒng)[7-8]。
在對相關(guān)稀疏算法進(jìn)一步研究的基礎(chǔ)上,提出一種更具有工程實(shí)踐意義的切換算法,該算法利用語音活動(dòng)檢測(VAD)技術(shù)引入一個(gè)閾值來區(qū)分輸入語音信號是高電平還是低電平。利用快、慢包絡(luò)計(jì)算邊際的最大功率值作為閾值,構(gòu)造一個(gè)穩(wěn)定變量。將閾值與輸入信號功率值進(jìn)行比較后,算法在NLMS 和BSNLMS 之間進(jìn)行切換。利用BS-NLMS 作為輸入激勵(lì)在高電平時(shí)增強(qiáng)收斂性,當(dāng)NLMS 作為語音在低電平時(shí)增強(qiáng)收斂性。
聲學(xué)回聲消除(Acoustic Echo Cancellation,AEC)的系統(tǒng)框架結(jié)構(gòu)如圖1 所示[9],遠(yuǎn)端語音信號x(n)經(jīng)過聲學(xué)回聲路徑w(n)產(chǎn)生回波信號d(n),傳遞函數(shù)w(n)通過對遠(yuǎn)端語音信號x(n)濾波產(chǎn)生回聲信號的復(fù)制信號y(n)。應(yīng)用最廣泛的是基于負(fù)梯度瞬時(shí)均方誤差最陡下降方法的NLMS 算法,橫向?yàn)V波器的權(quán)重矢量更新公式歸納如下:
圖1 聲學(xué)回聲消除系統(tǒng)框架圖
上述NLMS 算法中,x(n)Tx(n)是正則化因子,步長因子取值范圍:0 <μ<2,起著決定穩(wěn)態(tài)誤差和收斂速度的重要作用,抽頭系數(shù)在時(shí)刻n的值:
M是濾波器長度。輸出信號y(n)如下:
殘余回聲:
一般情況下,聲學(xué)回波信道的脈沖響應(yīng)只有少量非零系數(shù),并且非零系數(shù)通常是以單簇或多簇的形式規(guī)律分布[10],本文討論的是典型具有稀疏特性的單聚類聲學(xué)回聲信道。此類聲學(xué)回聲信道的模擬可以采用塊稀疏自適應(yīng)濾波算法,算法在代價(jià)函數(shù)中插入額外的附加因子l(2,0)混合低階范數(shù)改善算法稀疏性能,該混合范數(shù)利用其良好的約束性,使得算法的參數(shù)解盡可能靠近0而得到稀疏解,算法代價(jià)函數(shù)如下:
式中,低階混合范數(shù)l(2.0)用來衡量信道塊稀疏程度,參數(shù)λ是平衡附加因子和算法均方誤差的正數(shù)。
其中,w[i]=[w(i-1)P+1,w(i-1)P+1,...,wiP]T是第i組權(quán)重系數(shù)矢量,N和P分別是抽頭系數(shù)w(n)的分組數(shù)目以及分組長度。利用最陡下降算法更新權(quán)重系數(shù)矢量,得到如下利用稀疏先驗(yàn)特性的系數(shù)更新公式:
其中,g(w) =[g1(w),g2(w),...,gL(w)]T,而
α是一個(gè)正常數(shù),μ是步長因子,主要用來保障穩(wěn)態(tài)誤差和收斂速度之間的平衡,κ=μλ/2 是用來調(diào)整更新公式對靠近0解的吸引力參數(shù)[11-12]。
根據(jù)文獻(xiàn)12得到如圖2所示,基于包絡(luò)跟蹤法跟蹤輸入激勵(lì)的快、慢包絡(luò),以提高自適應(yīng)濾波器的性能和控制自適應(yīng)算法的更新。對于慢包絡(luò)跟蹤器,輸入信號絕對值x(n)的一階IIR平滑處理如下:
圖2 VAD的快慢包絡(luò)檢測法
相似地,可以得到快包絡(luò):
VAD 的基本原理是:在活躍語音時(shí)段,快速包絡(luò)跟蹤器輸出始終大于慢速包絡(luò)跟蹤器,當(dāng)語音信號屬于靜默時(shí)段,慢速包絡(luò)輸出將超過快速包絡(luò)輸出。最終得到如下VAD的輸出xD(n):
新算法的基本思想是采用開關(guān)機(jī)制對不同算法分別更新,通過VAD 方案在NLMS 和BS-NLMS 之間選擇,算法的原則是根據(jù)輸入信號的功率,方案如圖3所示。利用BS-NLMS 和NLMS 算法在收斂性和均方誤差方面不同的性能。通過VAD 輸出得到用于能量比較的閾值,算法在輸入能量大的時(shí)段使用BSNLMS 算法,在輸入能量小的時(shí)段使用NLMS 算法,兩種算法具有相同的濾波器結(jié)構(gòu)。
圖3 改進(jìn)算法的切換結(jié)構(gòu)
在切換結(jié)構(gòu)中,引入新變量Ts= max(xD(n)),它是VAD輸出xD(n)的最大值,可以寫成:
當(dāng)輸入信號P(n)的功率小于Ts時(shí),采用NLMS 算法對系數(shù)進(jìn)行自適應(yīng),得到較小的均方誤差。當(dāng)輸入信號P(n)的功率大于Ts時(shí),采用BS-NLMS算法對系數(shù)進(jìn)行自適應(yīng),收斂速度較快。
遞歸方程可以寫成:
其中,μ1,μ2是步長參數(shù),γ是正則參數(shù)??紤]到算法的切換,計(jì)算復(fù)雜度不容易計(jì)算。因此,對于計(jì)算復(fù)雜度,只考慮每次迭代的乘法計(jì)算。設(shè)L為自適應(yīng)濾波器長度,P是濾波器分組后的長度。該算法將輸入信號建模為低M 階自回歸(Auto Regressive)過程進(jìn)行自適應(yīng)濾波。在文獻(xiàn)[13]中,NLMS算法每次迭代需要2L次乘法來更新權(quán)值,對于BS-NLMS,需要2L+6次乘法,4L+ 6次加法,L P次除法。本文中,由于算法是在兩個(gè)算法之間切換,所以改進(jìn)的切換算法運(yùn)算量在兩個(gè)運(yùn)算量之間。
對本文第2節(jié)中描述的改進(jìn)切換算法進(jìn)行了仿真實(shí)驗(yàn),驗(yàn)證了其對語音輸入的性能,AEC實(shí)驗(yàn)進(jìn)行如下。在本次實(shí)驗(yàn)中,麥克風(fēng)放置在離揚(yáng)聲器0.45 m的地方,分別對回波信號和高斯噪聲進(jìn)行采集。圖4所示為遠(yuǎn)端語音在普通辦公室中揚(yáng)聲器播放的信號能量估計(jì)。近端語音是零均值高斯白噪聲的系統(tǒng)噪聲。圖5是該仿真條件下的真實(shí)房間脈沖響應(yīng)和算法估計(jì)的房間脈沖響應(yīng)。在算法估計(jì)中,參數(shù)可以選擇以下常數(shù):
圖4 遠(yuǎn)端及近端語音信號和能量估計(jì)
圖5 房間脈沖響應(yīng)及其估計(jì)
快速包絡(luò)|uF(n) |為上曲線,慢速包絡(luò)|uS(n) |為下曲線。結(jié)果繪制如圖6 所示??梢钥闯?,圖6 中的閾值Ts是uD(n)的最大值。圖7 顯示了使用NLMS 和本文算法的AEC輸出。實(shí)驗(yàn)結(jié)果表明,該方法具有較好的回波抑制效果。值得注意的是,該算法的性能得到了提高,特別是回波峰值明顯降低。
圖6 語音的VAD估計(jì)及快慢包絡(luò)
圖7 殘余回聲對比
本文提出的方案結(jié)合了兩種不同算法的優(yōu)點(diǎn)。通過快、慢包絡(luò)的能量計(jì)算得到閾值,通過閾值和輸入語音信號能量的比較,得出切換點(diǎn)。結(jié)果表明,該方法有明顯的回波抑制效果。此外,它實(shí)現(xiàn)了一個(gè)相對合適的計(jì)算復(fù)雜度。