本發(fā)明涉及數(shù)字通信領(lǐng)域里的信號處理技術(shù),更具體的說,本發(fā)明涉及語音信號處理中的回聲消除(AEC,Acoustic Echo Cancellation)技術(shù)。
背景技術(shù):
回聲消除是電話通信系統(tǒng)中不可缺少的一個環(huán)節(jié)。如圖1所示為回聲產(chǎn)生的過程:遠端傳送過來的下行信號u(n),經(jīng)近端揚聲器外放了以后,就可以變成人耳能夠聽到的聲音了。
與此同時,外放的這個聲音經(jīng)過近端聲學媒介的反射與傳輸以后,最終又會被麥克拾起作為上行信號中的一部分,傳向遠端,這樣使遠端的說話者聽到了自己的聲音,便形成了回聲?;芈暤拇嬖诳陀^上影響了通話的質(zhì)量和通話者之間的信息交流,主觀上則給通話者帶來了很不好的通話感受,但它在免提通話系統(tǒng)中又不可避免。當前針對這一問題的處理主要還是通過自適應(yīng)濾波來解決的。
在圖1中,s(n)為近端信號,y(n)為遠端傳送過來的信號u(n)經(jīng)揚聲器外放后在近端產(chǎn)生的回聲,[w0(n)w1(n)...wM-1(n)]為橫向自適應(yīng)濾波器權(quán)系數(shù),回聲消除就是根據(jù)一定的規(guī)則來不斷的修正橫向自適應(yīng)濾波器的權(quán)系數(shù),以使得其幅頻響應(yīng)能夠最大限度地接近真實的回聲路徑,并用其輸出y1(n)來逼近真實的回聲y(n),然后從Mic拾取到的總信號s(n)+y(n)中減去y1(n),達到抵消回聲的目的。自適應(yīng)濾波器的性能對回聲抵消效果的影響起到了主導的作用。
自適應(yīng)濾波器的各類實現(xiàn)算法包括:
1、LMS(Least-Mean-Square,最小均方)自適應(yīng)算法及其衍生算法,如NLMS(Normalized LMS),DLMS(Delayed LMS)、ALMS(Adjoint LMS)、BLMS(Block LMS)、快速BLMS、PBFDAF(Partitioned block frequency-domain Adaptive Filter)、PBUFD(Partitioned block unconstrained frequency-domain)等;
2、AP(Affine-Projection algorithm,仿射投影算法)及其衍生算法,如APRU(Affine projection with recursive matrix updates)、BAP(Block affine projection)等;
3、RLS(Recursive Least-Squres,遞歸最小二乘)算法及衍生算法,如QR-RLS(QR-decomposition-based RLS,基于QR分解的RLS),QR-LSL(QR-decomposition-based least-squares lattice,基于QR分解的最小二乘格型)等;
其中NLMS、DLMS、ALMS、APRU、RLS類算法是在時域以單個樣值輸入為單位對濾波器系數(shù)進行更新,BLMS、快速BLMS、PBFDAF、PBUFD、BAP是在時域以數(shù)據(jù)塊輸入為單位對濾波器系數(shù)進行更新。
以上幾類自適應(yīng)濾波算法,就濾波器的收斂特性、跟蹤能力而言,最好的為RLS,但RLS最終的輸出效果好是以高昂的計算復(fù)雜度作為代價的,對于具有長延時特性的實際回聲信道,當把RLS應(yīng)用于實際的AEC實現(xiàn)時其中所涉及到的一些相關(guān)的優(yōu)化工作和難度,也是不言而喻的;但就計算復(fù)雜度而言,所需要計算量最少的應(yīng)當是LMS類算法,但LMS類算法收斂特性差,自適應(yīng)濾波器進入穩(wěn)態(tài)所需要的時間長。
技術(shù)實現(xiàn)要素:
本發(fā)明從AEC實際的工程應(yīng)用要求考慮,對將LMS類算法應(yīng)用于AEC時實際存在的收斂特性差、自適應(yīng)濾波器進入穩(wěn)態(tài)所需要的時間長、起始通話階段回聲消不干凈的不足,基于快速BLMS,對其算法本身進行了深度的優(yōu)化和改進,提出了一種優(yōu)化回聲消除器收斂特性的方法,以增強通話起始階段及后期濾波器進入穩(wěn)態(tài)后回聲抵消的效果。
本發(fā)明提出了一種優(yōu)化回聲消除器收斂特性的方法,用于對回聲消除器的橫向自適應(yīng)濾波器的權(quán)系數(shù)進行不斷修正,包括如下步驟:
步驟a:對回聲消除器的近端數(shù)據(jù)、遠端數(shù)據(jù)進行對齊處理;
步驟b:初始化濾波器頻域權(quán)系數(shù)向量遠端信號功率譜為零向量;
步驟c:將第i個新輸入的遠端數(shù)據(jù)塊[u(iM),u(iM+1)...,u(iM+M-1)]記為近端數(shù)據(jù)塊[x(iM),..,x(iM+1),x(iM+M-1)]記為長度均為M個數(shù)據(jù)樣本,對每個新輸入的數(shù)據(jù)塊和與之相鄰的前一個數(shù)據(jù)塊共同構(gòu)成的2M個數(shù)據(jù)做傅氏變換并根據(jù)近端與遠端信號的幅度譜一階差分相關(guān)系數(shù)進行單端通話檢測;
步驟d:進行頻域約束及收斂加速因子估計以得到時域回聲估計,并獲得對近端信號進行回聲抵消后的誤差輸出;以及
步驟e:在AEC處于單端通話狀態(tài)的情況下,根據(jù)上述誤差輸出對濾波器權(quán)系數(shù)進行更新。
本發(fā)明具有以下優(yōu)點:本發(fā)明的優(yōu)化回聲消除器收斂特性的方法基于快速BLMS算法,在繼承了其計算復(fù)雜度低的優(yōu)點、易于實現(xiàn)的情況下,極大的縮短了其進入穩(wěn)態(tài)所需要的時間和改善了其收斂特性,解決了將其應(yīng)用于AEC時起始通話階段回聲抵消效果差、進入穩(wěn)態(tài)后抵消的效果不夠理想的不足,同時又繞開了AP類、RLS類算法的收斂特性好是以計算復(fù)雜度高為代價的缺點。
附圖說明
圖1為現(xiàn)有的回聲消除器框圖;
圖2為單端通話檢測的結(jié)果對比圖;
圖3為本發(fā)明對BLMS算法進行改進前后的收斂特性對比示意圖;
圖4為本發(fā)明的優(yōu)化回聲消除器收斂特性的方法的流程圖。
具體實施方式
為更好地理解本發(fā)明的精神,以下結(jié)合本發(fā)明的部分優(yōu)選實例對其作進一步說明。
下面參考圖4對本發(fā)明方法進行詳細說明。本發(fā)明的優(yōu)化回聲消除器收斂特性的方法通過如下步驟對回聲消除器的橫向自適應(yīng)濾波器的權(quán)系數(shù)進行不斷修正。在輸入的近端(上行)信號和遠端(下行)信號都通過各自的緩存后,執(zhí)行下述步驟:
步驟a:對回聲消除器的近端數(shù)據(jù)、遠端數(shù)據(jù)進行對齊處理;
步驟b:初始化濾波器頻域權(quán)系數(shù)向量遠端信號功率譜為一零向量;這里,T表示矩陣的轉(zhuǎn)置,M表示塊數(shù)據(jù)樣本的長度,括號中的0表示第0幀的數(shù)據(jù);(為使流程圖簡潔,該初始化步驟未圖示);
步驟c:將第i個新輸入的遠端數(shù)據(jù)塊[u(iM),u(iM+1)...,u(iM+M-1)]記為近端數(shù)據(jù)塊[x(iM),..,x(iM+1),x(iM+M-1)]記為長度均為M個數(shù)據(jù)樣本,對每個新輸入的數(shù)據(jù)塊和與之相鄰的前一個數(shù)據(jù)塊共同構(gòu)成的2M個數(shù)據(jù)做傅氏變換并根據(jù)近端與遠端信號的幅度譜一階差分相關(guān)系數(shù)進行單端通話檢測;
步驟d:進行頻域約束及收斂加速因子估計以得到時域回聲估計,并獲得對近端信號進行回聲抵消后的誤差輸出;以及
步驟e:在判定AEC處于單端通話狀態(tài)的情況下,根據(jù)上述誤差輸出對濾波器權(quán)系數(shù)進行更新。
下面對上述各步驟進行進一步說明。
步驟c中包括對所述遠端數(shù)據(jù)塊和近端數(shù)據(jù)塊進行傅氏變換的步驟c1,得到:
步驟c中對數(shù)據(jù)塊做傅氏變換后進行的單端通話檢測,進一步包括如下步驟:
步驟c2:獲得遠端塊數(shù)據(jù)幅度譜的一階差分以及近端塊數(shù)據(jù)幅度譜的一階差分分別如下:
其中,分別表示向量的第m個分量,其它依此類推;
步驟c3:根據(jù)上述和計算第i幀近端與遠端信號的幅度譜一階差分相關(guān)系數(shù)ρ,其中,為一符號函數(shù),當大于某一預(yù)設(shè)的產(chǎn)生回聲的能量門限值時,則符號函數(shù)的值取1,否則取0;
步驟c4:當上述步驟c3計算獲得的ρ大于某一預(yù)設(shè)的單端通話門限值TSingleTalk時,即可判定AEC處于單端通話狀態(tài)。
步驟d進一步包括:
步驟d1:初步估計回聲頻譜:diag為表示由向量產(chǎn)生相應(yīng)對角陣的數(shù)學符號;
步驟d2:計算近端信號幅度譜與估計的回聲信號幅度譜之間的誤差:
這里M表示當前輸入數(shù)據(jù)塊的長度;
其中,分別為向量的第m個分量;
上述步驟d1和d2主要是為了下述步驟d3中計算收斂加速因子和時域回聲信號而進行的,為使流程圖簡潔,該兩個步驟未在圖4中示出。
步驟d3:進行頻域約束以及收斂加速因子估計,獲得時域內(nèi)估計的回聲信號:
取其后M個元素;
其中,向量的第m個分量常量β的計算方法為γ為一很小的正數(shù),1+γ→1+,1-γ→1-;為論述方便,此處將標量命名為收斂加速因子,命名為收斂加速因子向量;
步驟d4:獲得對近端信號進行回聲抵消后的誤差輸出:
其中,為近端信號,為在時域得到的估計的回聲信號。
步驟e中當判定AEC處于單端通話狀態(tài)時對濾波器權(quán)系數(shù)進行更新,進一步包括:
步驟e1:對估計誤差進行時域約束:表示維數(shù)為Mx1的列向量;
步驟e2:對遠端信號功率譜的各譜分量進行一階滯后濾波:
其中,為一對角陣,其元素由的各個分量取倒數(shù)后得到,η為一常數(shù),
0<η<1,σ為一很小的正數(shù),σ→0+;
步驟e3:根據(jù)上述時域約束后得到誤差和對自適應(yīng)濾波器權(quán)系數(shù)進行更新:
的最前M個元素
其中,α為步長因子,其取值范圍需滿足標準BLMS算法的要求,表示維數(shù)為Mx1的列向量。
通過上述步驟,可以對回聲消除器的橫向自適應(yīng)濾波器的權(quán)系數(shù)進行不斷修正,優(yōu)化回聲消除器收斂特性,從而增強通話起始階段回聲抵消的效果。
下面對本發(fā)明方法的理論基礎(chǔ)進行詳細說明。
如圖1所示,為n時刻橫向濾波器的抽頭輸入,y(n)為u(n)經(jīng)Speaker外放后產(chǎn)生的回聲,s(n)為近端信號,為n時刻橫向濾波器抽頭權(quán)系數(shù);回聲消除即為根據(jù)一定的規(guī)則來不斷的修正橫向濾波器的權(quán)系數(shù),以求使得其幅頻響應(yīng)能夠最大限度的接近真實的回聲路徑,并用其輸出y1(n)來逼近真實的回聲y(n),然后從Mic拾取到的回聲信號和近端信號中減去y1(n):
假定s(n)為一均值為0、方差為σ2的白噪聲;基于最小均方誤差準則,現(xiàn)考慮一代價函數(shù)
它是橫向濾波器權(quán)向量的連續(xù)可微函數(shù);上式的意義在于:在限定的時刻n1到n2的時間范圍內(nèi),給定期望值s(n)+y(n)和輸入值u(n),需要尋找到一最佳權(quán)系數(shù)使能夠達到最??;根據(jù)《自適應(yīng)濾波器原理》(第四版)(鄭寶玉等譯,電子工業(yè)出版社,2003.4),將代價函數(shù)在當前的權(quán)值處進行一階泰勒展開,得到:
上式在較小時成立,為在處的梯度向量,令
μ為一很小的正數(shù),稱為步長因子;將(4)式代入(3)式可得:
符號||表示求模運算;從(3)-(5)式可以看到:當在處的修正量沿著處的負梯度方向行進時,代價函數(shù)將逐漸減小,隨著修正次數(shù)的增加最后并趨近于最小值Jmin;以上即為LMS及其衍生算法如NLMS、DLMS、BLMS算法等基于最速下降法的理論基礎(chǔ);
若將在進行二階泰勒展開:
H(n)為海森(Hessian)矩陣,上式對求導并令倒數(shù)為0,可得:
上式即為牛頓法迭代公式,可實現(xiàn)一步更新使代價函數(shù)達到最小值;
現(xiàn)對(4)式做如下更改:
其中,β→1,(8)式代入(3)式得:
由(9)式可得,其最后一項具有加速或阻礙代價函數(shù)向趨近的速度,即:
(I)(β-1)與異號時,起加速作用;
(II)(β-1)與同號時,起阻礙作用。
因此,只要每次在對進行修正的過程中控制好β,就能夠有效的避開(7)式所表述的牛頓迭代公式所涉及的大量矩陣運算,同時又可顯著的加快濾波器的起始收斂速度,此即為本發(fā)明實現(xiàn)改進方法的理論基礎(chǔ)。采用本發(fā)明方法優(yōu)化后的回聲消除器的收斂特性與優(yōu)化前的收斂特性的對比見圖3的上子圖;從圖中可以看出經(jīng)本發(fā)明的方法優(yōu)化后,可以具有更好的收斂特性;圖3的下子圖為輸出的代價函數(shù)隨時間的變化圖,從圖中可以看出,經(jīng)本發(fā)明的方法優(yōu)化后,代價函數(shù)的值隨時間的變化特性要好于優(yōu)化前(也即優(yōu)化后的代價函數(shù)的值比優(yōu)化前的要小得多)。
當圖1每輸入一個數(shù)據(jù)長度為L=1的樣本時,濾波器的權(quán)系數(shù)就更新一次,對應(yīng)的算法即為LMS/NLMS等;當輸入的數(shù)據(jù)長度為一段L>1的數(shù)據(jù)塊后,濾波器的權(quán)系數(shù)才更新一次時,對應(yīng)的算法即為BLMS。
下面對頻域約束進行說明。
圖1中,Mic拾取到的總信號為s(n)+y(n),y1(n)為對回聲信號y(n)的估計;令S(k)、Y(k)、Y1(k)分別為s(n)、y(n)、y1(n)的傅氏變換;既然是估計,那就不可避免的存在估計誤差;從頻域上看,當:
|Y1(k)|>|S(k)+Y(k)| (10)
即估計出來的回聲信號的幅度譜大于原始總信號的幅度譜時,這是不合理的,因此在新算法的實現(xiàn)當中,每次對回聲信號進行估計的時候,都強加了如下的頻域約束:
|E(k)|≤|S(k)+Y(k)| (11)
|U(k)W(k)|≤|S(k)+Y(k)| (12)
U(k)、W(k)分別為濾波器輸入和權(quán)系數(shù)的傅里葉變換;這種頻域約束能夠直接影響到誤差,反過來進而能更深一步的影響到權(quán)值調(diào)節(jié)機制,同時保證濾波器在性能還不穩(wěn)定、或是由于回聲信道變化等各種原因?qū)е碌臑V波器性能短暫惡化、甚至發(fā)散的時候,遠端也不至于聽到突然增大的、令人難以忍受的噪聲。
下面對單端通話檢測進行說明。
AEC中,濾波器抽頭系數(shù)的修正只能在單端通話情況下進行,即在(1)式中,只有當s(n)不包含近端語音時才能對濾波器系數(shù)進行更新;當s(n)包含近端語音時,構(gòu)成代價函數(shù)J(w)的主要成分是語音,此時若再更新濾波器系數(shù)使J(w)趨于最小的話,近端語音成分勢必會受到不同程度的影響,嚴重時甚至會導致濾波器發(fā)散;雙端通話檢測主要有:Geigel算法、ERLE算法、歸一化互相關(guān)檢測算法、系統(tǒng)緩存雙濾波法等,其中較為常用和穩(wěn)健的為歸一化互相關(guān)檢測算法。
語音是有特征的,回波信號在主觀感知上聽起來既然能夠和參考信號沒差多少,就說明在語音的本質(zhì)特征上二者有共性;從頻域的角度來看,語音的這種異同主要體現(xiàn)在語譜圖各譜分量的差別和相對變化上,鑒于語音識別領(lǐng)域里目前應(yīng)用得比較成功了的語音頻域特征——Mel頻率倒譜系數(shù),本發(fā)明通過綜合計算近、遠端幀信號幅度譜一階差分的相關(guān)性與遠端信號的能量來檢測單端通話模式。
圖2為歸一化互相關(guān)檢測算法與本發(fā)明采用的方法對實際信號進行處理得到的單端通話檢測結(jié)果對比,可以看到:圖中在0.5秒至1.2秒時間段箭頭標示出來的部分前者產(chǎn)生了漏檢(即前者計算出來的相關(guān)系數(shù)小、沒有把單端通話狀態(tài)檢測出來)、在4秒到4.5秒的時間段用箭頭標示出來的部分前者產(chǎn)生了虛檢(即前者計算出來的相關(guān)系數(shù)大、將非單端通話狀態(tài)錯檢成了單端通話狀態(tài)),而本發(fā)明的單端通話檢測則表現(xiàn)良好,具有更好的魯棒性。
本發(fā)明的技術(shù)內(nèi)容及技術(shù)特點已揭示如上,然而熟悉本領(lǐng)域的技術(shù)人員仍可能基于本發(fā)明的教示及揭示而作種種不背離本發(fā)明精神的替換及修飾。因此,本發(fā)明的保護范圍應(yīng)不限于實例所揭示的內(nèi)容,而應(yīng)包括各種不背離本發(fā)明的替換及修飾,并為本專利申請權(quán)利要求書所涵蓋。