回聲消除概述
2016-02-21 23:00:00
分類: android平台
首先,a的聲音傳給b,b然後用喇叭放出來,
而這時b的mic則會採集到喇叭放出來的聲音,然後傳回給a,
如果這個傳輸的過程中時延足夠大,a就會聽到自己剛才說的話,這就是回聲。
回聲消除器的作用就是在b端對b採集到的聲音進行處理,把採集到的聲音中包含的a的聲音去掉之後在傳給a,
這樣a就不會聽到自己說過的話了。
傳給回聲消除器的兩個聲音頻號,必須同步得非常好,
這裡有一段延時,這時b再採集,然後傳給回聲消除器,與那個參考資料比較,從採集到的資料中把頻率和參考資料相同的部分消除掉。
如果傳給消除器的兩個訊號同步得不好,即兩個訊號找不到頻率相同的部分,就沒有辦法進行消除了。
而採集本地的聲音併發送到對方又是在另乙個執行緒中進行的,
而要同步這兩個執行緒中的資料是非常困難的,因為稍稍有些不同步,聲學回聲消除器中的自適應濾波器就會發散,
不但消除不了回聲,還會破壞採集到的原始聲音,使被破壞的聲音難以分辨。
聲學回聲主要又分成以下兩種:
1、直接回聲:由揚聲器產生的聲音未經任何反射直接進入麥克風
2、間接回聲:由揚聲器發出的聲音經過多次反射後,再進入mic
對於第二種回聲,擁有多路徑、時變性的特點,是比較難處理的。
回聲消除有兩種方式:
第一種:通過硬體實現,
有很多手機就是這麼做的,也有專業的晶元,但是只支援8khz的,
如果要求高質量的音質的話,基本實現不了。
第二種:通過軟體實現,
qq,msn,skype很多具有通話功能的軟體,現在都具有回聲消除的功能(需是比較高版本的,低版本的可能沒有),
但是實現**是不對外的,開源的回聲消除**只有speex和webrtc。
一般常用的開源的aec有兩個:speex 和 webrtc
webrtc相對比speex強的多,原因如下:
1,webrtc有回聲時延估計演算法模組
2,webrtc有neteq模組
3,webrtc核心就是gips,原因***
回聲消除答疑
0 問 為什麼使用回聲消除?答 比較常見的應用場景,a與b打 a端手機開啟擴音,這時bb 端就會聽到自己的聲音從a 1 問 回聲消除有什麼開源 答 主要有 webrtc 的aec aecm aec3 還有speex。2 問 回聲消除需要用到什麼演算法?答 線性回聲消除用 nlms,pbfdaf,md...
回聲消除 AEC 原理
一 前言 因為工作的關係,筆者從2004年開始接觸回聲消除 echo cancellation 技術,而後一直在某大型通訊企業從事與回聲消除技術相關的工作,對回聲消除這個看似神秘 高階和難以理解的技術領域可謂知之甚詳。要了解回聲消除技術的來龍去脈,不得不提及作為現代通訊技術的理論基礎 數字訊號處理理...
WebRTC回聲消除(1)
語音通話中回聲分為兩種 1.電路回聲 已經被解決 2.聲學回聲 webrtc源 中設計了兩個回聲消除模組 1.aec acoustic echo canceller 電腦端 2.aecm acoustic echo canceller mobile 移動端 aecm 產生聲學回聲的原因 近端說話者的...