語音通話中回聲分爲兩種:網絡
1.電路回聲(已經被解決)設計
2.聲學回聲blog
WebRTC源代碼中設計了兩個回聲消除模塊:反射
1.AEC(Acoustic Echo Canceller):電腦端自適應
2.AECM(Acoustic Echo Canceller Mobile):移動端im
AECM:數據
產生聲學回聲的緣由:db
近端說話者的聲音被本身的麥克風拾取後經過網絡傳到遠端,img
遠端揚聲器播放出來的聲音被麥克風拾取後經過網絡又從新發回近端。移動
加上網絡和數據處理等各類延遲的影響,使得近端通話着可以從揚聲器中聽到本身的剛纔說的話,產生回聲。
WebRTC中所採用的回聲消除器AECM的結構如圖所示。其中自適應濾波器起到了最核心的做用,利用抽頭係數估計出回聲路徑,並用偏差信號做爲反饋區自適應的調節係數。
詳細過程:
遠端產生信號被麥克風採集------>傳送到近端(自適應濾波器保存必定長度的遠端信號到緩衝區-乾淨信號)------>近端揚聲器播出,通過屢次反射產生回聲。回聲信號+近端語音進入自適應濾波器(帶噪信號)。
帶噪信號-乾淨信號=偏差信號
偏差信號反饋給濾波器,調節濾波係數的大小,知道偏差信號爲0,消除回聲。