基于MCU的AEC算法實(shí)現(xiàn)
引言
較之傳統(tǒng)電話,VoIP語(yǔ)音質(zhì)量較差。影響因特網(wǎng)語(yǔ)音質(zhì)量的關(guān)鍵因素之一是回聲。要提高因特網(wǎng)的語(yǔ)音質(zhì)量,就必須在語(yǔ)音傳輸?shù)倪^(guò)程中進(jìn)行回聲消除的處理。AEC是基于自適應(yīng)算法、可被應(yīng)用于VoIP的回聲消除技術(shù)。
本文用于AEC算法實(shí)現(xiàn)與研究的硬件平臺(tái)足以MCF523X系列是以帶有增強(qiáng)型乘加運(yùn)算單元(eMAC)的ColdFire V2內(nèi)核為核心,同時(shí)結(jié)合了增強(qiáng)型時(shí)序處理單元(eTPU)和10/100M以太網(wǎng)多媒體通道控制模塊(MAC)的MCU,具有強(qiáng)大的數(shù)據(jù)處理能力和豐富的接口,能夠滿足VoIP電話終端對(duì)于數(shù)據(jù)處理速度以及剛絡(luò)通信安全性的要求。
回聲消除器介紹
聲學(xué)回聲消除原理
AEC是以揚(yáng)聲器信號(hào)與由它產(chǎn)生的多路徑回聲的相關(guān)性為基礎(chǔ),建立遠(yuǎn)端信號(hào)的語(yǔ)音模型,利用它對(duì)回聲進(jìn)行估計(jì),并不斷修改濾波器的系數(shù),使得估計(jì)值更加逼近真實(shí)的回聲。然后,將回聲估計(jì)值從話筒的輸入信號(hào)中減去,從而達(dá)到消除回聲的目的。
聲學(xué)回聲消除器的結(jié)構(gòu)如圖l所示。y(n)代表遠(yuǎn)端語(yǔ)音信號(hào),r(n)代表回聲,x(n)是近端語(yǔ)音信號(hào)。近端信號(hào)x(n)疊加了回聲信號(hào)r(n)。對(duì)同聲消除器來(lái)說(shuō),將遠(yuǎn)端信號(hào)作為一個(gè)參考信號(hào),自適應(yīng)濾波器用它來(lái)產(chǎn)生回聲的估計(jì)值r(n),從近端帶有回聲的語(yǔ)音信號(hào)中將r(n)減去,估計(jì)出近端輸出信號(hào)μ(n)。在近端沒(méi)有說(shuō)話的情況下,即當(dāng)x(n)=0時(shí),μ(n)為回聲的殘差信號(hào)e(n)。e(n)的計(jì)算方程為:
自適應(yīng)FIR濾波器
在聲學(xué)回聲消除器里,橫向結(jié)構(gòu)的自適應(yīng)濾波器通過(guò)采用參考信號(hào)來(lái)產(chǎn)生回聲的副本,如果這個(gè)橫向結(jié)構(gòu)的自適應(yīng)濾波器的轉(zhuǎn)換函數(shù)與回聲通道的函數(shù)模型一致,那么,回聲的副本與回聲就應(yīng)該是一致的,通過(guò)兩者的抵消就可以達(dá)到消除回聲的目的。
FIR濾波器的最主要特點(diǎn)是沒(méi)有反饋回路,是一種非遞歸系統(tǒng),它的沖激響應(yīng)h(n)是一個(gè)有限長(zhǎng)序列。下面的方程被用來(lái)計(jì)算FIR濾波器的輸出:
自適應(yīng)FIR濾波器是根據(jù)上一時(shí)刻的近端輸出信號(hào)μ(n)以及遠(yuǎn)端語(yǔ)音信號(hào)y(n),通過(guò)某種自適應(yīng)算法來(lái)估算當(dāng)前時(shí)刻FIR濾波器的系數(shù)ak(n+1)。
LMS和NLMS算法
在輸入信號(hào)和參考信號(hào)都是平穩(wěn)隨機(jī)信號(hào)的情況下,自適應(yīng)濾波器的均方誤差E[e(n)]性能曲面是濾波器加權(quán)系數(shù)ak的二次函數(shù)。其系數(shù)修正的算法通常是采用使均方誤差最小的最優(yōu)化求解算法,如最速下降算法。
由于實(shí)際的梯度值只能根據(jù)觀測(cè)數(shù)據(jù)估計(jì),因此,LMS算法提出的一個(gè)基本思想就是用平方誤差來(lái)代替均方誤差。它是對(duì)基本的最速下降算法的改進(jìn),其算法迭代公式為:
其中,y(n)為輸入信號(hào),μ為迭代步長(zhǎng)常量。
規(guī)一化LMS(NLMS)算法被用來(lái)在LMS自適應(yīng)濾波器方程里修正FIR濾波器的系數(shù)。NLMS算法與LMS算法幾乎是一樣的,唯一的不同是在NLMS算法中用可變的步長(zhǎng)控制因予代替了LMS算法中的常量因子,其目的是加快算法的收斂速度。其算法迭代公式為:
其中μ應(yīng)由試驗(yàn)來(lái)確定。μ的選取至關(guān)重要,為了確保收斂,必須滿足0μ2。本方案中的自適應(yīng)算法就采用了NLMS。
實(shí)現(xiàn)方案
聲學(xué)回聲消除器AEC主要包括FIR濾波模塊、Geigle雙端語(yǔ)音判決模塊、NLMS系數(shù)更新模塊、語(yǔ)音狀態(tài)控制模塊4個(gè)部分,圖2為AEC簡(jiǎn)要的結(jié)構(gòu)。
實(shí)驗(yàn)結(jié)果及分析
在Matlab環(huán)境下,對(duì)AEC進(jìn)行測(cè)試。將需要的三部分語(yǔ)音信號(hào)同時(shí)輸入到回聲消除器,測(cè)試回聲消除的相關(guān)性能。
輸入語(yǔ)音信號(hào)波形如圖4所示,從上到下依次表示遠(yuǎn)端語(yǔ)音信號(hào)y(n)、近端語(yǔ)音信號(hào)x(n)和回聲信號(hào)echo(n),其中,echo(n)與x(n)之和作為近端輸入,與y(n)一同構(gòu)成了回聲消除器的兩個(gè)輸入信號(hào)。將濾波器的階數(shù)設(shè)置為512,即采取64ms延時(shí)的回聲消除,通過(guò)回聲消除處理得到殘差信號(hào)e(n),其波形如圖5所示。
從圖4和圖5的對(duì)比中可以發(fā)現(xiàn),當(dāng)只存在遠(yuǎn)端信號(hào)和回聲信號(hào),近端緘默的情況下,回聲消除器能夠快速收斂并消除絕大部分的回聲;當(dāng)雙端存在信號(hào),回聲消除器能在消除回聲的基礎(chǔ)上較好地保持近端語(yǔ)音波形。
結(jié)語(yǔ)
本文介紹了聲學(xué)回聲消除的原理,并介紹了聲學(xué)回聲消除器的設(shè)計(jì)以及AEC在基于MCF5235開(kāi)發(fā)平臺(tái)的VoIP語(yǔ)音通信終端上的集成。該AEC實(shí)現(xiàn)了包括語(yǔ)音檢測(cè)、自適應(yīng)濾波等語(yǔ)音處理算法。程序執(zhí)行的實(shí)時(shí)性良好。通過(guò)Matlab模型的仿真和通話主觀測(cè)試的結(jié)果,證明該方案實(shí)現(xiàn)的聲學(xué)回聲消除器能夠滿足網(wǎng)絡(luò)通信對(duì)語(yǔ)音的要求。
參考文獻(xiàn)
1. 王琦. VOIP 中為保證語(yǔ)音質(zhì)量所采用的關(guān)鍵技術(shù)[J ] 1 中國(guó)數(shù)據(jù)通信, 2002, (2) : 25 291
2. MCF5235 ColdFire Integrated Microprocessor User’s Manual. Freescale Semiconductor, Inc. 2004.
3. Emmanuel C. Ifeachor, Barrie W. Jervis. Digital Signal Processing A Practical Approach, Second Edition. 北京:電子工業(yè)出版社 2004.
評(píng)論