1、回聲的產生
不管是實際環境仍是語音通話中,回聲老是存在的。可是須要知足以下兩個條件,咱們才能感受到回聲的存在:html
一、回波通路延時足夠長web
回波通路延時 | 效果 |
小於30ms | 不易察覺 |
小於50ms | 有感知 |
大於50ms | 影響嚴重,須要干預 |
二、回波信號能量足夠強
算法
也就是說,返回的回波信號必須足夠強到,能讓用戶可以聽見。網絡
在實時音頻會議通話中,產生回聲的主要來源有兩點:電學回聲、聲學回聲。回波消除的算法也有兩種:EC、AEC。通常EC是電學回波消除,部署在PSTN網關或接入設備上。AEC指的是聲學回波消除,用於終端設備。測試
2、回聲的種類及抑制
一、電學回聲
目前你們可能不多據說電學回聲,過去使用固定座機電話時,會有電學回聲問題。它的產生原理以下:spa
在幾乎全部的通訊網絡中,信號的傳遞都是採用4線傳輸,也就是在接收和發送兩個方向上,各使用兩條線傳輸信號,其中一條是參考地,另外一條是信號線。可是電話用戶使用的話機都是經過2線傳輸的方式接入本地交換機,一條線是參考地,另外一條信號線上同時傳輸收發雙向的信號。因此須要在本地交換機中採用2/4線轉換(hybrid)實現這兩種傳輸方式之間的轉換。操作系統
因爲實際使用的2/4線變換器中混合線圈不可能作到理想情況,老是存在必定的阻抗不匹配,不能作到將發送端和接收端徹底隔離,因此從4線一側接收的信號總有一部分沒有徹底轉換到2線一側,部分泄露到了4線一側的發送端,所以產生回波。設計
電學回聲的時延通常都比較小100ms之內,通常在近電話接入網關側開啓軟件EC功能,就能比較好的解決這類問題。orm
二、聲學回聲
在麥克風與揚聲器互相做用影響的雙工通訊系統中極易產生聲學回聲。以下圖所示:htm
遠端講話者A-->麥克風A-->電話A-->電話B---->揚聲器B--->麥克風B-->電話B-->電話A-->揚聲器A--->麥克風A--->.........就這樣無限循環。
聲學回聲信號根據傳輸途徑的差異能夠分別直接回聲信號和間接回聲信號。
- 1)直接回聲
近端揚聲器B將語音信號播放出來後,近端麥克風B直接將其採集後獲得的回聲。直接回聲不受環境的影響,與揚聲器到麥克風的距離及位置有很大的關係,所以直接回聲是一種線性信號。直接回聲在音頻會議中容易造成嘯叫,這類回聲的處理方法分爲兩大類:前向抑制、反饋抵消
- 2)間接回聲
近端揚聲器B將語音信號播放出來後,語音信號通過複雜多變的牆面反射後由近端麥克風B將其拾取。間接回聲的大小與房間環境、物品擺放以及牆面吸引係數等等因素有關,所以間接回聲是一種非線性信號。
- 3)回聲抑制
回聲抑制方法主要有三方面:
一、物理降噪
牆壁、天花板換成吸音材料,有效的較少聲音的反射,能夠較爲直接的抑制間接噪聲,可是直接噪聲沒法抑制;
使用耳機代替音響外放,能夠阻斷回波路徑。
二、硬件降噪
硬件結構化設計,有麥克和音響擺放的角度,聲音迴路設計。麥克風beamforming陣列,頻移器,均衡器,反饋抑制器等等。
三、軟件降噪
軟件降噪的原理是使用不一樣的自適應濾波算法調整濾波器的權值向量,估計一個近似的回聲路徑來逼近真實回聲路徑,從而獲得估計的回聲信號,並在純淨語音和回聲的混合信號中除去此信號來實現回聲的消除。
三、webrtc的實現
webrtc建立連接的時候,會檢測操做系統類型,iOS、安卓、Windows都使用的是系統內置的AEC。這些內置的AEC都對硬件結構化設計都要求,若不知足他們的要求,降噪效果不是很理想。
如果實際測試時,發現降噪效果差,建議使用webrtc_M74版本後的自帶的AEC3功能,實測效果比較好。
3、參考
http://www.javashuo.com/article/p-ocbifkji-hb.html
https://www.infoq.cn/article/FkolDeUHgahsxXcbsLXJ
《麥克風陣列信號處理技術》:https://www.sohu.com/a/223797137_99991918
《自適應濾波器在反饋嘯叫抑制中的應用研究》