芮賢義, 唐宇軒
(蘇州大學(xué)電子信息學(xué)院,江蘇 蘇州 215006)
回聲消除作為語(yǔ)音交互、視頻會(huì)議等領(lǐng)域不可或缺的一項(xiàng)重要技術(shù),主要用來(lái)解決雙端通信中回聲干擾問(wèn)題[1-2],例如智能對(duì)講系統(tǒng)中的回聲消除[3],在提高語(yǔ)音通話質(zhì)量的同時(shí),也為安全增添了一份保障。隨著語(yǔ)音交互技術(shù)越來(lái)越成熟,回聲消除在人機(jī)交互領(lǐng)域也發(fā)揮著重大的作用,例如車(chē)載語(yǔ)音、智能音響中的回聲消除,可以提高語(yǔ)音的喚醒率和識(shí)別率,從而實(shí)現(xiàn)更好的語(yǔ)音控制[4-5]。在自適應(yīng)信號(hào)處理領(lǐng)域中,濾波器理論是非常重要的內(nèi)容,回聲消除最早且最基礎(chǔ)的理論就是基于維納理論發(fā)展起來(lái)的最小均方差算法,也是自適應(yīng)濾波算法中的主要算法之一[6]。
回聲消除根據(jù)消除對(duì)象可以分為線性回聲消除和非線性回聲消除。前者是回聲消除的主要對(duì)象;后者由于聲學(xué)器件的小型化和廉價(jià)化,使原本線性的回聲產(chǎn)生了非線性失真,使得整個(gè)回聲成為非線性回聲。線性回聲消除算法包括基于最小均方差(Least Mean Square,LMS)算法、歸一化最小均方差算法(Normalized Least Mean Square,NLMS)[7]、比例歸一化最小均方差算法(Proportionate Normalized Least Mean Square,PNLMS)[8]等,針對(duì)線性回聲,這些算法都有較好的消除效果,但當(dāng)存在非線性回聲時(shí),算法的性能大大降低。Sankar等[9]通過(guò)引入核函數(shù)與傳統(tǒng)線性自適應(yīng)濾波器結(jié)合,構(gòu)造出一種消除非線性回聲的帶核自適應(yīng)濾波算法;Raghuwanshi等[10]設(shè)計(jì)了一種組合函數(shù)鏈路自適應(yīng)濾波器,兩種方法均先將遠(yuǎn)端信號(hào)通過(guò)線性和非線性函數(shù)擴(kuò)展的支路,再將兩路信號(hào)進(jìn)行合并,以便消除非線性回聲。
面向自適應(yīng)濾波的教學(xué)和科研需要,本文設(shè)計(jì)了自適應(yīng)回聲消除實(shí)驗(yàn),采用基于最小均方差的改進(jìn)算法進(jìn)行線性和非線性回聲消除。線性回聲消除實(shí)驗(yàn)中的遠(yuǎn)端信號(hào)和非線性回聲消除中的遠(yuǎn)端信號(hào)和近端信號(hào)均采用ICASSP聲學(xué)回聲消除挑戰(zhàn)賽數(shù)據(jù)庫(kù)[11]中的遠(yuǎn)端和近端語(yǔ)音信號(hào),線性回聲消除中的近端信號(hào)則由模型仿真生成,再通過(guò)相應(yīng)的自適應(yīng)濾波算法對(duì)系統(tǒng)進(jìn)行回聲消除,最后完成近端語(yǔ)音回聲消除。實(shí)驗(yàn)中可以使用現(xiàn)有的自適應(yīng)算法直接進(jìn)行回聲消除,也可由學(xué)生改進(jìn)算法進(jìn)行創(chuàng)新實(shí)驗(yàn)。
自適應(yīng)回聲消除的基本原理框架如圖1所示。圖中:x(n)為遠(yuǎn)端語(yǔ)音信號(hào),也是自適應(yīng)濾波器的輸入信號(hào);y(n)為實(shí)際回聲信號(hào);v(n)為近端語(yǔ)音信號(hào);d(n)為實(shí)際麥克風(fēng)信號(hào),是近端語(yǔ)音信號(hào)v(n)和實(shí)際回聲信號(hào)y(n)的疊加;y′(n)為濾波器估計(jì)的輸出信號(hào),也就是估計(jì)的回聲信號(hào);e(n)為誤差信號(hào)。
回聲消除就是利用自適應(yīng)濾波器來(lái)估計(jì)實(shí)際回聲信號(hào),根據(jù)誤差e(n)更新濾波器的系數(shù),使得估計(jì)的回聲信號(hào)y′(n)不斷逼近實(shí)際回聲信號(hào)y(n)。最終達(dá)成回聲消除的目標(biāo)。
當(dāng)遠(yuǎn)端語(yǔ)音信號(hào)通過(guò)近端房間的揚(yáng)聲器播放時(shí),又直接或間接被近端麥克風(fēng)接收到,隨后都傳送回給遠(yuǎn)端,這就是產(chǎn)生了線性聲學(xué)回聲。
隨著低成本的小型設(shè)備在免提通話中的廣泛應(yīng)用,近端的放大器和揚(yáng)聲器之間的非線性失真問(wèn)題日益嚴(yán)峻[12]。因而在進(jìn)行回聲消除時(shí),必須考慮到非線性存在的問(wèn)題。
為了更好地模擬線性回聲,Allen等[13]提出了一種Image模型來(lái)模擬房間脈沖響應(yīng)。該模型可以通過(guò)設(shè)置近端房間的大小、麥克風(fēng)的位置、墻面反射系數(shù)等參數(shù)生成房間脈沖響應(yīng)h(n),以便更好地構(gòu)造出房間混響模型。
為了準(zhǔn)確模擬放大器和揚(yáng)聲器引起的非線性回聲,引入一個(gè)函數(shù)模型應(yīng)用于遠(yuǎn)端信號(hào)x(n),其表達(dá)式為
式中,
γ為Sigmoid函數(shù)增益,一般取γ=2;p的值由q(n)確定:
再將O(n)與房間脈沖響應(yīng)h(n)卷積,得到非線性回聲。
對(duì)自適應(yīng)濾波器,如何更新濾波器的系數(shù)是關(guān)鍵所在。其中Widrow和Hoff在1960年提出的LMS算法是回聲消除領(lǐng)域內(nèi)最基礎(chǔ)的自適應(yīng)濾波算法。
具體操作步驟如下:
(1)初始化:將濾波器的權(quán)值H(n)初始化為0。
(2)初始輸入:x(n),d(n),M,μ,其中x(n)為遠(yuǎn)端信號(hào)在n時(shí)刻的M×1維抽頭輸入向量,
d(n)為在n時(shí)刻的期望響應(yīng);M為濾波器長(zhǎng)度;μ為步長(zhǎng)因子,且0<μ<2/λmax,λmax是輸入x(n)的相關(guān)矩陣的最大值。
(3)計(jì)算濾波輸出
(4)計(jì)算估計(jì)誤差
(5)權(quán)值向量更新
由式(3)~(5)可知,對(duì)于LMS算法,當(dāng)x(n)較大時(shí),會(huì)導(dǎo)致梯度放大;當(dāng)x(n)較小時(shí),算法收斂速度較慢。為解決這個(gè)問(wèn)題,提出了NLMS算法。NLMS算法僅在權(quán)值更新上不同,其權(quán)值向量更新為
式中,α為很小的正整數(shù),防止除數(shù)為0的情況。
在免提通話中,系統(tǒng)的回聲路徑被認(rèn)為是稀疏的,即回聲路徑中僅有少量系數(shù)具有顯著值,而其他系數(shù)為0或非常小的沖激響應(yīng)。Duttweiler根據(jù)系統(tǒng)脈沖響應(yīng)的系數(shù)性特性,提出了PNLMS算法。PNLMS算法也只在權(quán)值更新上不同,表達(dá)式如下:
式中:ρ=5/M;α,μ與NLMS中的含義相同;δp由下式得出,
X為輸入遠(yuǎn)端信號(hào)的長(zhǎng)度。
通過(guò)引入步長(zhǎng)控制矩陣G(n+1),算法在迭代過(guò)程中對(duì)全部參數(shù)按比例因子重新分配,大系數(shù)獲得大步長(zhǎng),小系數(shù)獲得小步長(zhǎng),以提高算法的收斂速度。Deng等[14-15]通過(guò)在權(quán)系數(shù)分配上引入對(duì)數(shù)函數(shù),得到了μ準(zhǔn)則下比例歸一化最小均方差算法(PNLMS based on Mu-law,MPNLMS),該算法更合理地分配了權(quán)系數(shù),使得算法的收斂速度得到了提升。MPNLMS引入對(duì)數(shù)函數(shù)為:
本文提出一種基于協(xié)同函數(shù)鏈接型的核自適應(yīng)濾波算法(Kernel Adaptive Filtering Algorithm Based on Collaborative Function Link,CF-KAF),其結(jié)構(gòu)如圖2所示,濾波器兩支路的更新權(quán)值遵循MPNLMS算法。
如圖2所示,該方法將遠(yuǎn)端語(yǔ)音信號(hào)同時(shí)傳入線性自適應(yīng)濾波器和非線性自適應(yīng)濾波器,再將兩者的輸出組合,作為整個(gè)系統(tǒng)的濾波輸出。具體步驟如下:
(1)遠(yuǎn)端輸入核函數(shù)擴(kuò)展。由于高斯核函數(shù)有通用逼近能力,且數(shù)值計(jì)算穩(wěn)定,所以使用高斯核函數(shù)做核擴(kuò)展,表達(dá)式如下:
通過(guò)式(15)可以得到擴(kuò)展后的輸入信號(hào)Φ。
(2)計(jì)算非線性濾波輸出
(3)通過(guò)協(xié)同函數(shù)方法組合線性和非線性濾波輸出。線性濾波輸出與式(4)相同,為了區(qū)別,這里記為CL,那么組合的濾波輸出為
式中,λ(n)為Sigmoid函數(shù),
以及a(n)的迭代式如下:
式中:μa為a(n)的步長(zhǎng)因子;r(n)是非線性自適應(yīng)濾波器的輸出信號(hào)功率
β是一個(gè)平滑因子。
(4)計(jì)算誤差信號(hào)。整體誤差信號(hào):
局部誤差信號(hào):
(5)權(quán)系數(shù)更新。線性權(quán)系數(shù)更新與MPNLMS算法更新方式相同;非線性權(quán)系數(shù)更新公式為
式中:μFL為非線性自適應(yīng)濾波器長(zhǎng);
ρ=5/MNL和MFL為核自適應(yīng)濾波器階數(shù);
Y為輸入信號(hào)核化后的長(zhǎng)度。
(1)從數(shù)據(jù)庫(kù)中獲取遠(yuǎn)端信號(hào),期望信號(hào)可以由建立模型生成,也可在數(shù)據(jù)庫(kù)中直接獲取。
(2)設(shè)置實(shí)驗(yàn)所需參數(shù),選擇相應(yīng)的算法,并根據(jù)誤差更新迭代濾波器系數(shù),計(jì)算輸出。
(3)給出兩種評(píng)價(jià)指標(biāo)分別用于衡量線性與非線性回聲消除性能。
權(quán)值誤差(Weight Error Vector Norm,WEVN)定義為
式中:h為實(shí)際回聲路徑脈沖響應(yīng);H為自適應(yīng)濾波器權(quán)值。WEVN值越小,表明自適應(yīng)濾波器的收斂性能越好,權(quán)值越逼近回聲路徑的脈沖響應(yīng)。
回聲衰減增益(Echo Return Loss Enhancement,ERLE)被定義為
式中:d(n)是期望信號(hào);e(n)是誤差信號(hào)。ERLE值越大,表明回聲抑制越有效,算法性能越好。
利用MATLAB軟件完成系統(tǒng)GUI界面設(shè)計(jì),包含語(yǔ)音信號(hào)導(dǎo)入、算法選擇、設(shè)置步長(zhǎng)參數(shù)和結(jié)果顯示等。
2.2.1 線性回聲消除實(shí)驗(yàn)結(jié)果
當(dāng)系統(tǒng)進(jìn)行線性回聲消除時(shí),設(shè)置線性步長(zhǎng)為0.05,選擇PNLMS算法,并采用式(29)來(lái)評(píng)價(jià)算法的性能,如圖3所示。
2.2.2 非線性回聲消除實(shí)驗(yàn)結(jié)果
當(dāng)系統(tǒng)進(jìn)行非線性回聲消除時(shí),設(shè)置線性步長(zhǎng)為0.02,非線性步長(zhǎng)為0.005,選擇CF-KAF算法,并采用式(30)來(lái)評(píng)價(jià)算法的性能,如圖4所示。
不同信噪比條件下回聲消除性能對(duì)比如表1所示,可以看出隨著信噪比的下降,本文的改進(jìn)算法CFKAF仍能保持一定的優(yōu)越性。
表1 不同信噪比下的回聲衰減增益性能比較
本文設(shè)計(jì)了基于自適應(yīng)濾波的回聲消除實(shí)驗(yàn),充分體現(xiàn)科研反哺教學(xué)的理念[16],培養(yǎng)學(xué)生的創(chuàng)新思維和實(shí)踐動(dòng)手能力。實(shí)驗(yàn)結(jié)果表明,基于協(xié)同函數(shù)鏈接型的核自適應(yīng)濾波算法對(duì)非線性回聲消除有較好的效果,且不同信噪比的高斯白噪聲環(huán)境下仍能保持一定的優(yōu)越性。通過(guò)實(shí)驗(yàn)的設(shè)計(jì)和操作,可以讓學(xué)生更好地掌握回聲消除的原理和系統(tǒng)的整體設(shè)計(jì)過(guò)程,也為進(jìn)一步理解自適應(yīng)濾波原理打下良好的基礎(chǔ)。