本發(fā)明涉及信號處理技術(shù)領(lǐng)域,特別是一種用于回聲消除的多帶結(jié)構(gòu)自適應(yīng)濾波器切換方法。
背景技術(shù):
聲學(xué)回波消除(Acoustic Echo Cancellation,AEC)是由于麥克風(fēng)和揚聲器的耦合而廣泛存在于車載系統(tǒng)、電話會議和助聽器等通信領(lǐng)域的重要研究課題。它主要通過自適應(yīng)濾波算法實現(xiàn),常用自適應(yīng)算法有最小均方(Least Mean Square,LMS)算法,最小二乘(Recursive Least Square,RLS)法和仿射投影算法(Affine Projection Algorithm,APA)等。
自適應(yīng)回聲消除是將經(jīng)過系統(tǒng)處理后送往揚聲器的信號同時也送往自適應(yīng)濾波器,輸出信號和麥克風(fēng)輸入信號相比較,得到誤差信號,然后通過最小均方準(zhǔn)則對自適應(yīng)濾波器系數(shù)進行調(diào)整,最終使得包含期望信號的目標(biāo)函數(shù)最小化。自適應(yīng)濾波器是對回聲路徑的建模,其輸出信號接近回聲信號,并在系統(tǒng)輸入端減去這個回聲信號,以達(dá)到回聲消除的目的。然而,當(dāng)自適應(yīng)濾波器的輸入信號高度相關(guān)時,算法收斂速度明顯下降。自適應(yīng)濾波器的穩(wěn)態(tài)失調(diào)較高。當(dāng)前采用的算法普遍存在著收斂速度和穩(wěn)態(tài)失調(diào)間的折中問題,需要對信號的不同狀態(tài)進行區(qū)分,且對于不同的狀態(tài)利用不同的自適應(yīng)算法處理。
因此,需要一種用于回聲消除的多帶結(jié)構(gòu)自適應(yīng)濾波器切換方法。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提出一種用于回聲消除的多帶結(jié)構(gòu)自適應(yīng)濾波器切換方法。
本發(fā)明的目的是通過以下技術(shù)方案來實現(xiàn)的:
本發(fā)明提供的一種用于回聲消除的多帶結(jié)構(gòu)自適應(yīng)濾波器切換方法,包括以下步驟:
獲取遠(yuǎn)端語音信號;
然后檢測語音端點,采用語音活性檢測中的包絡(luò)法來判別有無語音段,并獲得VDA標(biāo)志位和包絡(luò)判決閾值;
將語音信號送入揚聲器并進行播放,同背景噪聲和回聲信號一起被話筒拾取,共同構(gòu)成期望信號,所述期望信號用于自適應(yīng)濾波器的參考信號,同時將語音信號輸入到自適應(yīng)濾波器;
所述自適應(yīng)濾波器采用可切換的多帶結(jié)構(gòu),所述多帶結(jié)構(gòu)設(shè)置有若干采用不同自適應(yīng)濾波器的子帶結(jié)構(gòu);根據(jù)當(dāng)前輸入信號的能量值和包絡(luò)判決閥值確定多帶結(jié)構(gòu)中相應(yīng)子帶結(jié)構(gòu)的自適應(yīng)算法,利用最小均方準(zhǔn)則,得到最優(yōu)解;
通過相應(yīng)子帶結(jié)構(gòu)中的自適應(yīng)濾波器輸出信號;
并將輸出信號與期望信號進行比較得到誤差信號;
輸出誤差信號并反饋到自適應(yīng)濾波器中;
輸出殘差信號,并傳向遠(yuǎn)端。
進一步,所述VAD標(biāo)志位采用快慢包絡(luò)算法來區(qū)分有無語音段,并輸出VAD的標(biāo)志位,具體步驟如下:
輸入語音信號經(jīng)過絕對值運算獲得信號絕對值,接著經(jīng)過慢包絡(luò)模塊和快包絡(luò)模塊,兩模塊均采用一階IIR濾波器來平滑輸入信號,但用不同的變量因子來調(diào)節(jié)包絡(luò)信號跟蹤輸入信號的速度,然后輸出快、慢包絡(luò)值,用以跟蹤輸入語音信號的變化趨勢;
對比慢包絡(luò)值、快包絡(luò)值和背景參數(shù),首先比較慢包絡(luò)和背景參數(shù)值,選擇高于背景噪聲能量的值作為背景參數(shù),平滑濾波用來估計背景噪聲,然后選取背景參數(shù)值與快包絡(luò)值比較,當(dāng)快包絡(luò)值大時,表明當(dāng)前在語音區(qū)內(nèi),輸出VAD的標(biāo)志位1,反之則是無語音區(qū),輸出標(biāo)志位0,根據(jù)當(dāng)前的VAD值即知道當(dāng)前的語音狀態(tài)。
進一步,所述改進的包絡(luò)判決閾值按照以下步驟來進行:
首先利用得到的快包絡(luò)和慢包絡(luò)值進行差值運算,得到快慢包絡(luò)的差值曲線,然后通過最值運算得到最大幅值,作為閥值來切換子帶結(jié)構(gòu)中的濾波器的系數(shù);若輸入信號的能量大于閥值則表示當(dāng)前信號短時能量較大,則提高收斂速度;若輸入信號的能量小于包絡(luò)差值能量,則表示當(dāng)前信號的短時能量較小,則降低計算復(fù)雜度。
進一步,所述子帶結(jié)構(gòu)中的自適應(yīng)濾波器采用基于最小干擾準(zhǔn)則的歸一化子帶自適應(yīng)濾波算法,按照以下步驟進行:
首先以期望信號和濾波器輸出信號的最小均方誤差為代價函數(shù),然后用負(fù)梯度最陡下降算法對代價函數(shù)中的權(quán)系數(shù)矢量求偏導(dǎo),利用拉格朗日乘子獲得最優(yōu)解模型,最后,做歸一化處理,得到相應(yīng)權(quán)系數(shù)更新公式,其中,所述權(quán)系數(shù)包括用于調(diào)整誤差和收斂速度的步長參數(shù)和避免分母為零的正則化參數(shù)。
進一步,所述基于多帶結(jié)構(gòu)的歸一化子帶結(jié)構(gòu)中的自適應(yīng)濾波器,按照以下步驟進行處理數(shù)據(jù):
約束權(quán)重系數(shù)向量來最小化子帶結(jié)構(gòu)輸出后驗誤差向量的一階范數(shù),然后通過拉格朗日乘數(shù)法和對角線假設(shè)來解決最優(yōu)化問題,最后用梯度下降法得到權(quán)重更新;如果存在干擾噪聲,則將后驗誤差的能量最小化作為最佳步長的求解,采用變步長矩陣歸一化子帶結(jié)構(gòu)自適應(yīng)算法。
進一步,所述子帶自適應(yīng)濾波算法采用基于最大相關(guān)熵算法,具體按照以下步驟進行:
首先以期望信號和濾波器輸出信號的均方誤差的負(fù)指數(shù)函數(shù)為代價函數(shù),然后用負(fù)梯度最陡下降算法對代價函數(shù)中的權(quán)系數(shù)矢量求偏導(dǎo),利用拉格朗日乘子獲得最優(yōu)解模型,最后,做歸一化處理,得到相應(yīng)權(quán)系數(shù)更新公式,其中,所述權(quán)系數(shù)包括用于調(diào)整誤差和收斂速度的步長參數(shù)和避免分母為零的正則化參數(shù)。
進一步,所述可切換的多帶結(jié)構(gòu)按照以下步驟進行工作:
輸入信號和期望信號經(jīng)過分析濾波器,所述分析濾波器包括一個低通濾波器、一個高通濾波器以及多個帶通濾波器構(gòu)成,且所述各濾波器間無重疊,覆蓋全部區(qū)域,所述輸入信號被分析濾波器組分割成多個頻率子帶,并生成相應(yīng)的子帶信號和子帶期望信號;
經(jīng)過濾波器分頻后的采樣點數(shù)為原信號的多倍,利用下采樣降低總的采樣數(shù),下采樣是將信號頻率進行多倍擴展,并以2π為周期延拓,生成信號的頻譜;
最后,采樣信號通過與閥值比較,若輸入信號的能量大于閥值則表示當(dāng)前信號短時能量較大,則提高收斂速度;若輸入信號的能量小于包絡(luò)差值能量,則表示當(dāng)前信號的短時能量較小,則降低計算復(fù)雜度。
由于采用了上述技術(shù)方案,本發(fā)明具有如下的優(yōu)點:
本發(fā)明提供的切換方法是在保證了穩(wěn)態(tài)失調(diào)的情況下,充分考慮語音特性,實現(xiàn)了算法在收斂速度的優(yōu)勢,同時實現(xiàn)了和算法復(fù)雜度的優(yōu)化選擇??朔爽F(xiàn)有算法收斂速度的增加與穩(wěn)態(tài)之間的矛盾,在對回聲消除的實際應(yīng)用中,單一算法很難滿足各種多變的需求,而本發(fā)明中可變的切換算法為使用者提供了更多的可能性,這對于自適應(yīng)回聲消除的應(yīng)用有重要的意義。
本實施例將與語音信號有重要關(guān)聯(lián)的VAD(Voice Activity Detection)技術(shù)引入算法,采用新的切換方法,該方法根據(jù)信號短時能量特點,利用VAD技術(shù)對信號的不同狀態(tài)進行區(qū)分,對于不同的狀態(tài)利用不同的自適應(yīng)算法處理。整合兩種相似架構(gòu)的自適應(yīng)算法各自在收斂速度和運算量上的優(yōu)點,最終實現(xiàn)了切換算法在收斂速度和計算復(fù)雜度的優(yōu)化配置。切換算法在聲學(xué)回聲消除中能夠有效的提高系統(tǒng)噪聲抵消能力。
本發(fā)明的其他優(yōu)點、目標(biāo)和特征在某種程度上將在隨后的說明書中進行闡述,并且在某種程度上,基于對下文的考察研究對本領(lǐng)域技術(shù)人員而言將是顯而易見的,或者可以從本發(fā)明的實踐中得到教導(dǎo)。本發(fā)明的目標(biāo)和其他優(yōu)點可以通過下面的說明書來實現(xiàn)和獲得。
附圖說明
本發(fā)明的附圖說明如下。
圖1為整個方法流程圖。
圖2為快慢包絡(luò)算法。
圖3為可切換的多帶結(jié)構(gòu)。
具體實施方式
下面結(jié)合附圖和實施例對本發(fā)明作進一步說明。
實施例1
如圖所示,本實施例提供的用于回聲消除的多帶結(jié)構(gòu)自適應(yīng)濾波器切換方法,具體步驟如下:獲取語音信號,然后檢測語音端點,并輸出VAD標(biāo)志位和改進的包絡(luò)判決閾值;語音信號送入巖石圈作為期望信號,同時輸入到自適應(yīng)濾波器;自適應(yīng)濾波器采用可切換的多帶結(jié)構(gòu)和相應(yīng)的自適應(yīng)算法,根據(jù)反饋信息,利用最小均方準(zhǔn)則,調(diào)整濾波參數(shù),得到最優(yōu)解;通過自適應(yīng)濾清的子帶輸出信號;并與期望信號進行比較得到誤差信號,輸出誤差信號并反饋到自適應(yīng)濾波器中。
本實施例提供的用于回聲消除的多帶結(jié)構(gòu)自適應(yīng)濾波器切換方法,包括以下步驟:
獲取遠(yuǎn)端語音信號;
然后檢測語音端點,采用語音活性檢測中的包絡(luò)法來判別有無語音段,并根據(jù)其中的包絡(luò)值和能量比較給出改進的包絡(luò)判決閾值;
語音信號送入揚聲器播放出來,同背景噪聲和回聲信號一起被話筒拾取,共同構(gòu)成期望信號,用于后面自適應(yīng)濾波算法的參考信號,同時還將語音信號輸入到自適應(yīng)濾波器;
自適應(yīng)濾波器采用可切換的多帶結(jié)構(gòu),即根據(jù)當(dāng)前輸入信號的能量值和包絡(luò)判決閥值進行比較,來決定多帶結(jié)構(gòu)采取何種自適應(yīng)算法,根據(jù)反饋信息,利用最小均方準(zhǔn)則,調(diào)整濾波器參數(shù),得到最優(yōu)解;
通過自適應(yīng)濾波器的子帶輸出信號;
并與期望信號進行比較得到誤差信號,
輸出誤差信號并反饋到自適應(yīng)濾波器中。
所述VAD標(biāo)志位采用快慢包絡(luò)算法來區(qū)分有無語音段,并輸出VAD的標(biāo)志位;
輸入信號經(jīng)過絕對值運算獲得信號絕對值,接著經(jīng)過慢包絡(luò)模塊和快包絡(luò)模塊,兩模塊均采用一階IIR濾波器來平滑輸入信號,但用不同的變量因子來調(diào)節(jié)包絡(luò)信號跟蹤輸入信號的速度,然后輸出快、慢包絡(luò)值,用以跟蹤輸入信號的變化趨勢;
對比慢包絡(luò)值、快包絡(luò)值和背景參數(shù),首先比較慢包絡(luò)和背景參數(shù)值,選擇高于背景噪聲能量的值作為背景參數(shù),平滑濾波可用來估計背景噪聲,以防止將講話中的音節(jié)停頓誤判為無語音區(qū),然后選取其中的較大值同快包絡(luò)值比較,快包絡(luò)值大時,表明當(dāng)前在語音區(qū)內(nèi),輸出VAD的標(biāo)志位1,反之則是無語音區(qū),輸出標(biāo)志位0,根據(jù)當(dāng)前的VAD值即知道當(dāng)前的語音狀態(tài)。
所述改進的包絡(luò)判決閾值按照以下步驟來進行:
首先利用前文所述快慢包絡(luò)算法得到的快包絡(luò)和慢包絡(luò)值進一步做差值運算,得到快慢包絡(luò)的差值曲線,然后通過最值運算得到其幅值最大值,將其作為閥值來切換子帶濾波器的系數(shù)更新算法;若輸入信號的能量大于閥值則表示當(dāng)前信號短時能量較大,需要收斂性能好的自適應(yīng)算法提高收斂速度;若輸入信號的能量小于包絡(luò)差值能量則表示當(dāng)前信號的短時能量較小,則使用計算量較低的自適應(yīng)算法降低計算復(fù)雜度。
所述子帶自適應(yīng)濾波算法為基于最小干擾準(zhǔn)則的歸一化子帶自適應(yīng)濾波算法,按照以下步驟進行:
首先以期望信號和濾波器輸出信號的最小均方誤差為代價函數(shù),然后用負(fù)梯度最陡下降算法對代價函數(shù)中的權(quán)系數(shù)矢量求偏導(dǎo),利用拉格朗日乘子獲得最優(yōu)解模型,最后,考慮到自適應(yīng)過程中所受輸入濾波的影響,做歸一化處理,即得到相應(yīng)權(quán)系數(shù)更新公式,其中,包含了用于調(diào)整誤差和收斂速度的步長參數(shù),和可以避免分母為零的正則化參數(shù)。
所述基于多帶結(jié)構(gòu)的歸一化子帶符號自適應(yīng)濾波,按照以下步驟進行:
可以歸結(jié)為一個受線性約束的最小化過程,約束權(quán)重系數(shù)向量來最小化子帶輸出后驗誤差向量的一階范數(shù),然后通過拉格朗日乘數(shù)法和對角線假設(shè)來解決最優(yōu)化問題,最后用梯度下降法得到權(quán)重更新。如存在干擾噪聲,也可進一步將后驗誤差的能量最小化作為最佳步長的求解,將算法改進為變步長矩陣歸一化子帶符號自適應(yīng)算法。
所述子帶自適應(yīng)濾波算法為基于最大相關(guān)熵算法,按照以下步驟進行:其步驟與權(quán)利5所述類似,只是其代價函數(shù)不再是最小均方誤差,而是均方誤差的負(fù)指數(shù)函數(shù)形式。
所述可切換的多帶結(jié)構(gòu)按照以下步驟進行工作:
輸入信號和期望信號經(jīng)過分析濾波器,理想條件下,分析濾波器為一個低通濾波器、一個高通濾波器以及多個帶通濾波器構(gòu)成,且濾波器間無重疊,覆蓋全部區(qū)域,所以,信號被分析濾波器組分割成多個頻率子帶,生成相應(yīng)的子帶信號和子帶期望信號;
經(jīng)過濾波器分頻后的采樣點數(shù)為原信號的多倍,為降低計算量,利用下采樣降低總的采樣數(shù),下采樣是將信號頻率進行多倍擴展,并以2π為周期延拓,生成信號的頻譜;
最后,采樣信號通過與閥值比較,采用如權(quán)利4所述的方法來選擇合適的自適應(yīng)濾波算法處理。
實施例2
本實施例提供的自適應(yīng)濾波器采用基于子帶和多速率的子帶自適應(yīng)濾波,子帶算法利用分析濾波器組將輸入信號和期望信號分割成多個頻率子帶。對子帶信號進行抽取獲得采樣信號,最后對采樣信號進行自適應(yīng)濾波器處理。每個子濾波器的長度通常比全頻帶濾波器的長度短,計算量低,故收斂速度快。但是這種子帶結(jié)構(gòu)會在濾波器的輸出端產(chǎn)生混跌分量,從而導(dǎo)致子帶自適應(yīng)濾波器的穩(wěn)態(tài)失調(diào)較高。可利用多帶結(jié)構(gòu)來解決這一問題;考慮到輸入語音信號的高相關(guān)性特點,本實施例將與語音信號有重要關(guān)聯(lián)的VAD(Voice Activity Detection)技術(shù)引入算法,采用新的切換方法,該方法根據(jù)信號短時能量特點,利用VAD技術(shù)對信號的不同狀態(tài)進行區(qū)分,對于不同的狀態(tài)利用不同的自適應(yīng)算法處理。整合兩種相似架構(gòu)的自適應(yīng)算法各自在收斂速度和運算量上的優(yōu)點,最終實現(xiàn)了切換算法在收斂速度和計算復(fù)雜度的優(yōu)化配置。切換算法在聲學(xué)回聲消除中能夠有效的提高系統(tǒng)噪聲抵消能力。
1.采用快慢包絡(luò)算法區(qū)分有無語音段,輸出VAD的標(biāo)志位:輸入信號經(jīng)過絕對值運算獲得信號絕對值,然后經(jīng)過慢包絡(luò)模塊和快包絡(luò)模塊后輸出慢包絡(luò)值、快包絡(luò)值。通過對比慢包絡(luò)值、快包絡(luò)值和背景噪聲獲得VAD的值判斷當(dāng)前語音狀態(tài)。在語音區(qū)內(nèi),快包絡(luò)值比慢包絡(luò)值大;在無語音區(qū)內(nèi),快包絡(luò)值比慢包絡(luò)值慢,而且短時能量大于背景噪聲,包絡(luò)跟蹤方法利用快包絡(luò)和慢包絡(luò)跟蹤輸入信號的變化趨勢。同時為了防止將講話中音節(jié)停頓誤判為無語音區(qū),需要引入背景參數(shù)。選擇高于背景噪聲能量的值作為背景參數(shù),平滑濾波可用來估計背景噪聲。
2.提出一種基于包絡(luò)的判決閥值:包絡(luò)差值曲線可反映語音信號瞬時值,因此可以作為輸入信號幅值的參考。利用VAD的包絡(luò)曲線差值的最大值作為閥值切換子帶濾波器的系數(shù)更新算法。算法切換的關(guān)鍵是區(qū)分輸入信號的狀態(tài)。若輸入信號的能量大于閥值則表示當(dāng)前信號短時能量較大,需要收斂性能好的自適應(yīng)算法提高收斂速度。若輸入信號的能量小于包絡(luò)差值能量則表示當(dāng)前信號的短時能量較小,則使用計算量較低的自適應(yīng)算法降低計算復(fù)雜度。
3.以聲學(xué)回聲消除中的應(yīng)用為基礎(chǔ),從不同角度出發(fā),可以采用以下幾種子帶自適應(yīng)濾波算法,也可根據(jù)實際需求做選擇。
a.基于最小干擾準(zhǔn)則的歸一化子帶自適應(yīng)濾波算法,以子帶的最小均方誤差準(zhǔn)則為代價函數(shù),利用拉格朗日乘子獲得最優(yōu)解模型,通過對自適應(yīng)濾波器系數(shù)進行調(diào)整,最終使得包含期望信號的目標(biāo)函數(shù)最小化。利用負(fù)梯度最陡下降算法求抽頭梯度,可得到相應(yīng)權(quán)系數(shù)更新公式,其中,包含了用于調(diào)整誤差和收斂速度的步長參數(shù),和可以避免分母為零的正則化參數(shù)。
b.通過約束權(quán)重系數(shù)向量來最小化子帶輸出后驗誤差向量一范數(shù)的歸一化子帶符號算法,通過拉格朗日乘數(shù)法和對角線假設(shè),最后得到權(quán)重更新。將后驗誤差的能量最小化作為求解最佳步長的變步長矩陣歸一化子帶符號自適應(yīng)算法。
c.還有各種變設(shè)計參數(shù)、基于最大相關(guān)熵等方案可供選擇。
4.本實施例提供的用于切換的多帶結(jié)構(gòu)不同于傳統(tǒng)子帶自適應(yīng)濾波器;每個子帶獨享一個自適應(yīng)子濾波器,基于最小干擾準(zhǔn)則的多帶結(jié)構(gòu)自適應(yīng)濾波器,由于各個子帶使用相同的全帶自適應(yīng)濾波器,因此可以克服存在于濾波器輸出端的混疊分量。在該結(jié)構(gòu)中,輸入信號和期望信號經(jīng)過分析濾波器分割,生成相應(yīng)的子帶信號和子帶期望信號。子帶信號通過濾波器組將信號和期望信號進行下采樣抽取,生成抽取后的子帶信號,然后進行自適應(yīng)濾波器處理后,生成自適應(yīng)濾波器的子帶輸出信號。本發(fā)明中涉及使用不同算法的兩個全帶自適應(yīng)濾波器,根據(jù)閥值的取值,來決定選取的算法。
本實施例提供的算法避免了現(xiàn)有算法收斂速度的增加幾乎都是以穩(wěn)態(tài)失調(diào)為代價的問題,在保證了穩(wěn)態(tài)失調(diào)的情況下,充分考慮語音特性,實現(xiàn)了算法在收斂速度的優(yōu)勢,同時實現(xiàn)了和算法復(fù)雜度的優(yōu)化選擇。在對回聲消除的實際應(yīng)用中,單一算法很難滿足各種多變的需求,而可變的切換算法為使用者提供了更多的可能性,這對于自適應(yīng)回聲消除的應(yīng)用有重要的意義。
最后說明的是,以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制,盡管參照較佳實施例對本發(fā)明進行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對本發(fā)明的技術(shù)方案進行修改或者等同替換,而不脫離本技術(shù)方案的宗旨和范圍,其均應(yīng)涵蓋在本發(fā)明的保護范圍當(dāng)中。