680 likes | 1.13k Views
大型網路語音會談中回音消除方法 Echo Cancellation In Large-Scale VoIP Conferencing. 指導教授:連耀南 研究生: 祁立誠. Outline ( 一 ) 簡介. 1.1 Large-Scale VoIP 1.2 網路會談的常見問題 1.3 回音現象描述 1.4 回音消除的基本原理 1.5 VoIP 中的回音 1.6 名詞定義 1.7 研究動機與目的. 1.1 Large-Scale VoIP. 近年來,許多公司內部召開之大規模跨國會議均採用網路會談 (conference) 方式進行。
E N D
大型網路語音會談中回音消除方法Echo Cancellation In Large-Scale VoIP Conferencing 指導教授:連耀南 研究生: 祁立誠
Outline (一)簡介 • 1.1 Large-Scale VoIP • 1.2 網路會談的常見問題 • 1.3 回音現象描述 • 1.4 回音消除的基本原理 • 1.5 VoIP中的回音 • 1.6 名詞定義 • 1.7 研究動機與目的
1.1 Large-Scale VoIP • 近年來,許多公司內部召開之大規模跨國會議均採用網路會談(conference)方式進行。 • 在進行大型網路語音會談時,由於上線人數增加,必須面對的挑戰也更為艱鉅。 • 硬體與網路均採用現有平台。 • 會議品質需求 • 與會成員越多越好 • 聲音品質可達MOS4.0以上
1.2 網路會談的常見問題 • 在大型網路語音會談中,經常會碰到的問題如: • 頻寬使用量 • delay時間 • 封包遺失率 • 與會人數限制 • 無線傳輸品質 • echo epidemic(回音遞迴) • 聲音傳輸到達順序 • 以下列出網路會談中常見問題與解決方案
1.2 網路會談的常見問題 • 本研究考慮的問題為echo epidemic:成員增多,產生迴音的機率也就隨之增高。 • 若x為故障率,n人數,則正常進行的機率為(1−x)n。 • 與會人數至10人以上時,即使故障率僅10%,會議能順利進行的機率仍不到35%。
1.3 回音現象描述 • 傳統電信網路(PSTN)的回音狀況如下圖 • PSTN的回音主要來自聲音的傳導,部份來自於線路阻抗的不匹配。 • 由於有標準話筒,能夠預期回音音量與時間
1.4 回音消除的基本原理 • 基本的 echo cancellation圖示如下: • 播放前先暫存聲音,經由麥克風收回後,再取出原始訊號相減。
1.5 VoIP中的回音-一對一 • VoIP:沒有固定的話筒。 • 喇叭放出聲音後,被收聽者(listener)麥克風收音,則說話者(A)即聽到自己的回音。
1.5 VoIP中的回音-多人會談/一個Echo Generator • 回音消除機制正常運作時,應將回音訊號正常消除。否則回音會由Echo Generator傳給其他與會者:
1.5 VoIP中的回音-多人會談/一個Echo Generator • 由Echo Generator產生的回音會從兩種路徑干擾參與通話者: • Talker->Echo Generator->Talker:發話者聽到自己的Echo,即S'(A) • Talker->Echo Generator->healthy Listener:其他收聽者聽到發話者的聲音以及Echo,即S(A)+S'(A) • 只要有任何一個Echo Generator存在,就會造成Infected Conference(有回音存在的Conference),且Echo Generator本身並不自知。
1.5 VoIP中的回音-多人會談/多個Echo Generator • 當兩位Echo Generator存在時:
1.5 VoIP中的回音-多人會談/多個Echo Generator • 此時回音路徑為: • Speaker A ->Echo Generator A & Echo Generator B • Echo Generator A -(回音)->Speaker A & Echo Generator B • Echo Generator B -(回音)->Speaker A & Echo Generator A • Echo Generator A -(回音的回音)->Speaker A & Echo Generator B • Echo Generator B -(回音的回音)->Speaker A & Echo Generator A • ……..Loop,直到聲音能量衰減至無法收音
1.5 VoIP中的回音-Proximity Problem造成的回音 • Proximity Problem:兩部電腦距離太接近時,使用者的聲音及兩部電腦的喇叭聲音同時被兩部電腦的麥克風收回再次播放的循環造成的刺耳雜音。
1.5 VoIP中的回音-Proximity Problem造成的回音 • 兩部電腦將會同時放出不斷重複的回音,並再次被雙方的麥克風收音,且不斷循環。 • 混亂的回音將如雪崩一般,反覆被放大後造成類似震盪的刺耳噪音。
1.6名詞定義 • Echo Generator:即Listener Echo Cancellation機制產生故障,而使得Conference中其他Node聽到回音產生的Node。相反地,正常的Node稱為Healthy Listener。 • Direct Echo:Talker聽到自己的聲音的回音。 • Indirect Echo:Conference中其他listener聽到Talker聲音的回音。 • Infected Conference:因為有Echo Generator參與,而造成含有Echo亂竄的conference call。
1.7 研究動機與目的 • 目前回音消除的方法的缺陷: • 大多僅針對一對一的通話。 • 對於delay時間不固定等回音經常無法正確消除。 • 只要一位使用者回音消除機制失效,整個conference都會受影響。 • 本研究目的為減少Infected Conference的發生。
Outline (二)背景與相關研究 • 2.1 相關研究 • 2.1.1 VoIP回音消除演算法 • 2.1.2 一對一VoIP的回音消除機制 • 2.2 Listener Echo Cancellation • 2.3 Talker Echo Cancellation • 2.4 總結
2.1.1 VoIP回音消除演算法 • 對於不確定延遲時間的回音,常用NLMS演算法(Normalized Least-Mean-Square,正規化最小平方誤差) 。 • 正規化:站在相同的起跑點。 • 最小平方誤差:相似度比對(尋找可能的回音)。 • 透過大量濾波器(filter)比對目前訊框中的信號。 • 偵測delay時間越長,濾波器數量越多。且每個新訊框輸入時需更新。(成本高)
2.1.2 一對一VoIP的回音消除機制 • 如G. Periakarruppan等人設計的PBEC系統(Packet Based Echo Canceller):作用於VoIP Gateway之間,在傳輸的過程中消除回音。 • 將回音消除演算法實做於VoIP之中,解開封包中的語音資料,消除回音後再包回封包內。
2.2 Listener Echo Cancellation • Listener Echo Cancellation:『由回音產生者消除回音』的方法。 • 由麥克風擷取聲音的一方自己進行回音消除 (操之在他人)。 • 一對一時稱為Far End Echo Cancellation。
2.2 Listener Echo Cancellation • Listener Echo Cancellation失效原因: • 沒有標準的話筒與聽筒: • 延遲時間難以計算 • 回音音量無法預估 • 回音可能有相位與頻率上的嚴重失真。 • 運算資源有限,無法精確運算比對。
2.3 Talker Echo Cancellation • Talker Echo Cancellation:『由回音接收者消除回音』的方法。 • 由收聽端在播放聲音之前,先將回音去除再播放(操之在我)。 • 一對一時稱為Near End Echo Cancellation。
2.3 Talker Echo Cancellation • 實做Talker Echo Cancellation的挑戰: • 聲音可能經過混音,無原始訊號做相減。 • Talker端難以判斷回音:同時多人發話,無法分辨。且出現時間順序難以預估。 • 運算時間緊迫:總delay時間不可超過300ms。 • 使用者說話行為導致誤判:例如眾人呼口號,打招呼等。
2.3 Talker Echo Cancellation • Talker聽到回音的時間包含:語音編/解碼+封包傳輸(transmition & propagation)+聲音傳輸等等時間,總計可能0.5~200ms(難以預估)。
2.4 總結 • 回音消除機制:在傳統電話中品質穩定。 • 網路會談中難以確保無回音: • 無法預估回音時間 • 回音失真導致難以判定 • 網路傳輸問題 • 運算資源有限
Outline (三) VAD回音消除機制 • 3.1 需求分析及研究目標 • 3.2 解決方法 • 3.3 VAD語音動態偵測 • 3.4 系統架構 • 3.5 語音判定演算法 • 3.6 MET VAD演算法
3.1 需求分析及研究目標 • 本研究目標為設計一套適用於大型網路語音會談中避免回音的方法。 • 設計一套避免因為Listener Echo Cancellation失效而導致回音產生的機制。 • 無論Direct Echo或Indirect Echo,均能將回音程度降至最低。
3.2 解決方法 • 在Listener Echo Cancellation之後,加入一套判定機制,判定是否為語音。 • 以語音動態偵測VAD(Voice Activity Detection)作為此判定機制。 • 當原本的回音消除機制失效時,由VAD判定是否為正常語音。
3.3 VAD 語音動態偵測 • VAD(Voice Activity Detection)目的:找出聲音訊息中,有語音內容的部份。 • 人說話的訊號為語音(speech)與非語音(non-speech)交替出現:
3.3 VAD 語音動態偵測 • VAD的基本概念為:以每個訊框為單位,計算能量值(energy),並且與臨界值(threshold)做比較。 • 若超過臨界值,則判定該訊框為語音(標示為ACTIVE),否則為非語音(INACTIVE)。 • Ej為訊框的能量,kEr為臨界值。 IF (Ej> k Er) where k > 1 frame is ACTIVE ELSE frame is INACTIVE
3.4 系統架構 • 當原本Listener Echo Cancellation失效時,回音即產生
3.4 系統架構 • 因此,本研究提出的方法為:在Listener Echo Cancellation後加入VAD機制,判斷是否為語音
3.4 系統架構 • 當原本的Listener Echo Cancellation失效時,即由VAD機制判定,阻擋回音
3.4 系統架構 • 若另一端同時也在說話時,則VAD會偵測到說話能量,並不會阻擋正常語音。
3.4 系統架構 • 本系統採用聲音振幅(amplitude)作為能量計算依據。 • 回音的特性為:振幅通常小於正常語音,但聲音頻率與原始人聲接近,故適用於time domain energy-based的VAD演算法。 • 擷取聲音後,計算訊框的能量,再以VAD演算法判定是否為語音。
3.5 語音判定演算法 • 最典型的time domain energy-based VAD:LED (Linear Energy-Based Detector)演算法 • LED演算法訊框能量計算方式為: • 其中: • E為訊框的能量值 • N為訊框的sample總數 • S[k]為第k個sample的振幅
3.5 語音判定演算法 • 在VAD運作時,需要給予判定臨界值 • 能量超過臨界值,視為語音。 • 反之則為非語音。 • LED演算法採用第一個訊框能量作為臨界初始值 • 假設第一個訊框必定為非語音。
3.5 語音判定演算法 • LED演算法的臨界值更新方式為: • Ednew為每次更新後的臨界值。 • Edold為前一次的臨界值。 • E為最近一次的 訊框能量。 • p則為可調整的參數,可根據不同環境調整。
3.5 語音判定演算法 • p越大臨界值更新越快,新到達的訊框能量影響越大。 • 通常p固定為0.2:下圖為p=0.2時,一段語音能量與臨界值變化關係。 • 臨界值會追隨能量變化。
3.5 語音判定演算法 • LED不適合作為回音判斷機制,其原因為: • p太大時,臨界值更新速度太快,容易將回音誤判為語音。 • p太小時,臨界值會跟不上語音的變化,可能將語音誤判為非語音。
3.5 語音判定演算法 • 根據實驗,網路會議的共同的特點: • 回音能量值為正常語音10%~15%以下。 • 會談程式啟動後短時間內應該會收到一段正常語音訊號(打招呼)。 • 第一個訊框通常僅有背景雜音。 • 以目前PC而言,energy-based VAD針對每個訊框所需的運算時間極短(少於1ms),因此VAD對延遲時間並不構成影響。
3.6 MET VAD演算法 • 根據以上分析,設計一套回音判定VAD方法,稱為『最大能量追蹤VAD』(Maximum Energy Tracking VAD): • 若臨界值未事先設定,則以第一個訊框能量值的10倍作為初始臨界。 • 訊框輸入後,判斷其能量是否大於臨界,若是則標示為語音(ACTIVE),否則為非語音(INACTIVE)。 • 若訊框能量之10%超過目前之臨界值,則以此能量之10%作為新的臨界。 • 避免因為雜訊導致臨界值飆高,當超過100個訊框沒有收到語音訊框時,則將臨界值降低為95%。 • 此判定機制以最高能量作為依據,各參數可依環境需求調整。
3.6 MET VAD演算法 • 演算法流程圖:
3.6MET VAD演算法 演算法Pseudo Code:
Outline (四) 實驗 • 4.1各種 VAD 用於回音消除的效能比較 • 4.1.1實驗環境 • 4.1.2結果分析 • 4.2實際VoIP通話時的回音消除 • 4.2.1實驗環境 • 4.2.2結果分析 • 4.3 Proximity Problem的回音消除 • 4.3.1結果分析
4.1各種 VAD 用於回音消除的效能比較 • 此實驗針對各種time domain VAD演算法對於回音判定的效能做比較。 • 以包含Indirect Echo的樣本聲音資料作為輸入。 • 以誤判率針對演算法效能進行評估。
4.1.1實驗環境 • 本實驗使用的聲音樣本資料如表:
4.1.1實驗環境 • 樣本聲音波形圖:
4.1.1實驗環境 演算法參數設定: