1. 程式人生 > >WebRTC回聲消除(1)

WebRTC回聲消除(1)

通過 幹凈 過程 info ebr src 保存 語音 代碼

語音通話中回聲分為兩種:

1.電路回聲(已經被解決)

2.聲學回聲

WebRTC源代碼中設計了兩個回聲消除模塊:

1.AEC(Acoustic Echo Canceller):電腦端

2.AECM(Acoustic Echo Canceller Mobile):移動端

AECM:

產生聲學回聲的原因:

  近端說話者的聲音被自己的麥克風拾取後通過網絡傳到遠端,

  遠端揚聲器播放出來的聲音被麥克風拾取後通過網絡又重新發回近端。

加上網絡和數據處理等各種延遲的影響,使得近端通話著能夠從揚聲器中聽到自己的剛才說的話,產生回聲。

技術分享圖片

WebRTC中所采用的回聲消除器AECM的結構如圖所示。其中自適應濾波器起到了最核心的作用,利用抽頭系數估計出回聲路徑,並用誤差信號作為反饋區自適應的調節系數。

詳細過程:

遠端產生信號被麥克風采集------>傳送到近端(自適應濾波器保存一定長度的遠端信號到緩沖區-幹凈信號)------>近端揚聲器播出,經過多次反射產生回聲。回聲信號+近端語音進入自適應濾波器(帶噪信號)。

帶噪信號-幹凈信號=誤差信號

誤差信號反饋給濾波器,調節濾波系數的大小,知道誤差信號為0,消除回聲。

WebRTC回聲消除(1)