引言
在許多音頻設備(如視頻會議系統)中,音響研究揚聲器播放出來的系統聲音被麥克風拾取后要發回遠端,使得遠端談話者能聽到自己的回波聲音(經一個聲路徑延遲的聲音),從而干擾語音傳輸,抵消稱為聲學回波。音響研究
聲學回波抵消器(AcousticEchoCancellor,系統AEC),回波是對揚聲器信號與由它產生的多路徑回波的相關性為基礎建立的遠端信號語音模型。利用它可對回波進行估計,并不斷地修改濾波器的系數,使得估計值更加逼近真實的回波;然后再將回波估計值從話筒的輸入信號中減去,從而達到消除回波的目的。AEC還會將話筒的輸入與揚聲器過去的值相比較,從而消除延長延遲的多次反射的聲學回波。根椐存儲器存放的過去的揚聲器輸出值的大小,通過AEC可以消除各種延遲的回波。
1回波抵消算法
聲學回波抵消算法(簡稱AEC算法)采用一種成熟的商用頻域算法模塊,由美國的SPIRITCorp設計,遵循國際電信聯盟(IUT)G.167標準,可用來去除由揚聲器到麥克風的聲音反饋所引起的回波,用戶可設的最大回波路徑延遲達508ms,該算法的原理框圖如圖1所示。
圖1中的CNG(Comfortnoisegenerator)為舒適噪聲產生器,DT(Doubletalk)detector為雙端回話檢測器,ERL(Echoreturnloss)為回聲傳播損失,NLP(Non-linearprocessor)為非線性處理器,NS(Noisesuppressor)為噪聲抑制器,Tonedetector為音調檢測器,Sub-bandadaptivesubtractors為子帶自適應減法器,Sub-bandnoisesuppressor為子帶噪聲抑制器,Anti-howlingcontrol為抗嘯叫控制單元,Convergencemonitor為算法收斂檢測器。Felnput為遠端參考信號輸入,FeoUtpUt為經過AEC算法處理后的近端參考信號輸出,稱為接收回路;Nemput為回波信號與近端語音的混合信號,Neoutput為去除回波的近端語音信號,稱為發送回路。
在AEC開始處理時,采用半雙工方式可以避免AEC算法收斂時殘余回波被聽到,收斂監控器用于跟蹤當前回波返回損失并檢測收斂。一旦收斂AEC轉向全雙工方式,而且因為它對背景噪聲和回波路徑改變,非線性失真都非常強,所以不會再轉向半雙工方式,這樣就能保證在任何條件下的全雙工通訊。因為其子帶結構,AEC僅處理32個輸入緩沖區的樣本,并在內部有96個樣本的延遲。
AEC具有強大雙端會話檢測器,因而允許AEC算法在本地語音存在的條件下收斂,并且在雙端會話期間不會帶來殘余回波增大。雙端會話檢測器可以在信噪比大于6dB的噪聲條件下工作,雙端會話檢測器可控制自適應濾波器、NLP和CNG,以防止它們不收斂。當雙端會話開始被檢測到后,發送回路中的NLP關閉,并以確定速度逐漸增加其傳輸增益,直到達到其最大值1(16位時為32767)。當雙端會話結束被檢測到時,NLP打開并逐漸降低其增益,直到定義的最小值,這樣就增加了回波抵消。
發送回路和接收回路中的NLP在半雙工模式下都支持開關切換。CNG在NLP打開時工作產生與背景噪聲幅度相適應的適度噪聲,但其幅度小于設定的最大值。AEC具有內部音調檢測器,可以防止AEC收斂在如撥號音或振鈴音的正弦信號,這種收斂可能造成AEC運行錯誤。特別是在AEC收斂在這類信號的開始處,這一點對免提電話特別有用。AEC還具有抗嘯叫控制單元,可用來避免因為聲音在麥克風和揚聲器間反饋引起的嘯叫(Larsen效應),這種情況只有在遠端和近端運行在全雙工模式下才會發生。
2回波抵消器硬件構成
本文的回波抵消器硬件平臺主要基于TI公司TMS320VC5416高性能DSP芯片來進行設計,其硬件平臺結構如圖2所示。
平臺的工作原理:以DSP芯片TMS320VC5416作為主處理器完成算法的調用處理和音頻數據流的控制調度;SRAM作為外擴存儲器,用來存放中間運算結果;FLASH存儲器用來固化算法和應用程序模塊,使回波抵消器系統在外界環境固定,并使其在不需要調整控制參數時,能作為一個獨立系統脫機工作。
codec采用高度集成的立體聲音頻編解碼芯片TLV320AIC23B來處理音頻輸入和輸出。系統的立體聲輸入部分,一路接Ne’nput近端語音與回波信號的混合信號,另一路接Femput遠端參考信號,即遠端說話人語音信號;而立體聲輸出部分的一路接Neoutput,即經過AEC處理的近端語音信號輸出,另一路接FeOutput,即遠端參考信號經過AEC處理的輸出。AEC的控制參數可通過串口通訊來實現,由PC機向回波抵消系統發送AEC調控參數,可以達到最佳的抑制效果。
MCBSP
圖2回波抵消器硬件平臺結+構示意圖
本回波抵消器硬件平臺采用+5V單電源供電,可與PC機提供的+5V電源連接,并具有外部手動復位鍵,操作簡單方便。
3串口通訊規則
為了方便調整AEC算法運行參數,本系統采用了RS232串口通訊方式。串口通訊的編程分為兩部分:一部分采用匯編與C混合編程的方式,在TMS320C5416上運行;另一部分則采用VB6.0的人機控制界面設計図。
通訊機制采用查詢方式。回波抵消器主程序上電運行時,對兩個輸入通道采樣32個樣本,在AEC算法處理前應查詢一下串口有無控制參數發出。如沒有,則按默認參數運行;如果串口有控制參數,則保存并按新的控制參數執行[6]。VB具有面向對象的設計方法,并具有簡單方便的串行通訊和實用性強等優點。利用串行端口控件Mscomm可以實現簡單的串行通信,該控件屏蔽了通信過程中的底層操作,用戶可以設置、監視Mscomm控件的屬性和事件,并可結合Timer控件完成對串行口的初始化和數據的輸入輸出工作。
串口控件Mscomm的使用和設置非常簡單,通過以下代碼即可完成該控件相應屬性的初始化:
strset="19200,n,8,1"
Form1.MSComm1.InBufferSize=512‘定義輸入緩沖區大小
Form1.MSComm1.OutBufferSize=512‘定義輸出緩沖區大小
Form1.MSComm1.CommPort=1‘設置串行端口號
Form1.MSComm1.Settings=strset,設置數據格式
Form1.MSComm1.PortOpen=True'打開串口
這里將控制參數分類并排序,發送和接收都應當嚴格按次序執行,以確保通訊過程的正確。控制參數主要分為三類,圖3所示是回波抵消器的人機控制界面圖。其中,量化參數位于圖3左側,該類參數有具體數值,對于超過8位二進制數的參數,可采用分高低字節發送,并使用Slider控件來實現;AEC開關量為圖3中間部分的參數,該類參數表示AEC算法中某些運算模塊的打開和關閉,可采用Checkbox控件實現;選控參量為圖3右側的參數,該類參數表示AEC算法中某些參量數值的選擇,如采樣率、回波延遲設置等,主要采用
ComboBox控件實現。
圖3回波抵消器人機控制界面圖
用戶使用時,在設置相應參數完畢后,點擊“應用”即可完成參數傳遞過程,也可點擊“復位”加載算法本身提供的默認參數。控制參數一旦根據音頻設備使用環境設置完畢,則不需頻繁修改,參數設置過程不影響算法的實時運行。
4結語
通過語音數據文件的仿真分析及實際會場環境檢測證明,該回波抵消系統具有較好的回波抑制效果,而且算法收斂速度快,性能穩定,因而應用十分廣泛。
20211012_6165a60b73ee6__音響系統回波抵消研究