第一章 簡介
1.5 VoIP 中的回音
1.5.2 Proximity Problem 造成的回音
國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
1.5.2 Proximity Problem 造成的回音
所謂的Proximity Problem 為電腦之間距離太近時,所發生一種聲音傳遞上造成的干 擾問題[7]。若兩部電腦距離太接近時,則使用者的聲音(假設只有一個人說話)及兩部 電腦的喇叭聲音,同時被兩部電腦的麥克風收回,此狀況發生的狀況如圖9 所示。則此 時兩部電腦的喇叭將會同時放出包含發話者以及不斷重複的回音,且如此混亂的聲音將 再次被雙方的麥克風收音,導致此現象不斷循環。如此一來,將會造成複雜且混亂的回 音加上互相收音所造成的雜音。就如雪崩效應一般,收回的聲音被放大後播出,接著又 立刻被收音且播放,不斷反覆而造成類似震盪的刺耳噪音。
圖9:Proximity Problem 現象 1.6 名詞定義
a. Echo Generator:即回音消除機制產生故障,而使得會談中其他使用者聽到回音產 生的裝置,亦即此裝置為Compromized Node。反之,功能正常者則稱為 Healthy Listener。
b. Direct Echo:由 Echo Generator 所產生,使得 Talker 聽到自己的聲音的回音。
c. Indirect Echo:網路會談中其他 listener 聽到 Talker 聲音的回音。
d. Infected Conference:因為有 Echo Generator 參與,而造成含有 Indirect Echo 亂竄 的網路語音會談。
1.7 研究動機與目的
由於目前各種針對回音消除的方法,大多僅針對一對一的通話所產生的回音進行消 除,且考慮的僅有聽筒到話筒間固定長度且短距離造成的回音,針對距離不固定,甚且
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
參與會談人數增加時所造成的回音狀況均沒有加以歸納分析,以至於常常無法正確的消 除回音。雖然現在的電腦音效卡中均有內建回音消除演算機制,VoIP 軟體中也有加入類 似的判斷與修正機制,但卻常常發生失效的狀況,更常見的是部份失效,亦即回音消除 不完全而產生噪音,且當多人進行大型網路語音會談時,經常由於一個使用者的設備出 現問題,而造成整個會談的通話品質受到嚴重干擾,以至於難以溝通。
此外,當與會成員沒有在說話時,傳統的會談程式仍然會持續將空白的語音封包送 至網路上,如此將造成網路資源的浪費。基於以上理由,本研究希望分析在大型網路語 音會談中,回音消除機制失效的成因與語音的特性,以此設計消除回音與Slience Suppression 的方法,抑制會談中不必要的回音與靜音,確保語音會談正常進行的方法,
同時節省網路頻寬。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y 第二章 背景與相關研究
本章針對目前已經存在的回音消除機制相關作法與其歷史進行說明,探討它們的實 作原理與尚須改進的部份。
2.1 回音消除技術演進
在1950 年代以前,電話系統中並沒有回音消除機制存在。當時的通訊系統為了消 除回音對通訊造成的干擾,而採用回音抑制(echo suppression)的方式降低回音。由於 當時的通話系統均為一對一通話,沒有多方通話技術出現,因此人與人的溝通是以半 雙工(half-duplex)方式進行,亦即同一時間僅其中一方在說話,另一方是收聽者[20]。
此回音抑制機制會判定電話的那一方是說話者,則在說話期間就保留正常的語音,將 收聽者回傳的訊號視為回音進行衰減或阻止其傳輸,以達到回音抑制的目的。此方法 雖有效消除半雙工通話中的回音,但回音抑制機制的判定速度往往跟不上發話者切換 的速度,如此可能導致使用者開始講話時的語音遺失,或者雙方同時講話時無法判定 那一方是說話者而造成誤判產生回音[21]。
直到1970 年代,隨著半導體的進步,市場上才逐漸出現回音消除機制的產品。此 時的技術開始採用前述的以訊號暫存與相減的方式消除回音[11],以此方式取代先前 回音抑制機制的信號開關。直到90 年代,隨著 DSP 數位訊號處器普及,回音消除機 制才逐漸整合於電話交換機內,並且能更精準的消除延遲時間不固定的回音。
2.2 回音消除原理
如同前述,在VoIP 系統中,不像傳統電話,由於沒有標準的聽筒裝置,因此回音 的延遲時間與音量/失真狀況相當難以預估。所以,針對此狀況需要加入更多的判斷機制 來掌握回音的狀況,並即時的進行消除。例如Perry P. He 等人提出的"Network Echo
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
Cancellers: Requirements, Applications and Solutions"[4]一文中所提出的解決方案,此系統 與傳統電話的回音消除機制類似,在受話端加入回音消除裝置,但此裝置包含了訊號即 時比對的裝置:
圖10:VoIP 系統中回音消除機制
圖10 為 VoIP 中所使用的回音消除機制示意,其中包含的主要元件為 Echo Inverter 與Adaptation Filiter,其功能分別為:
a. Echo Inverter:此部份包含了暫存記憶體(buffer)與訊號反向的運算機制。目的為將接 收到的語音訊號暫存,若經由演算判斷回音發生時,則取出暫存器中的訊號做反,
相並與回音訊號相減,以達到抵銷的目的。
b. Adaptation filter:此部份包含預期回音傳回的時間,判斷回音是否發生與決定相減訊 號的衰減程度等等。透過LMS/NLMS 等演算法[9],將可能有回音的訊號做誤差還 原後,逐一與原始訊號做比較,判斷回音是否發生。若回音發生時,則由此部份決 定回音傳遞時間與衰減幅度等等因素,將前述Echo Inverter 中原始訊號取出,經過 處理後相減以消除回音。
通常,此部份需要不斷進行暫存,濾波器參數運算調整,比對,訊號處理與相減等 等複雜的計算工作,因此在目前絕大多數的系統中,都是由DSP (Digital Signal Processor-數位訊號處理器) 進行運算[8],以避免如此大量的計算影響 VoIP 等通訊軟體的正常工 作。
2.2.1 回音消除演算法
‧
Algorithm,正規化最小平方誤差演算法) 或LMS (Least Mean Square Algorithm,最小平 方誤差演算法) 。此演算法為1960年由B. Widrow等人所提出[17][18],最初為用來作為 信號誤差修正用,後來被DSP系統用來實做回音消除裝置。例如U. I. Choudhry等人提出 的”A Highly Adaptive Acoustic Echo CancellationSolution for VoIP Conferencing
Systems”[1]一文中,就採用LMS演算法。由於經過空間傳遞或反射後的回音訊號,無論
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
2.3 回音消除方法分類
回音消除機制根據實做的使用者端不同,可分為以下兩種方式:
2.3.1 Listener Echo Cancellation
這是『由回音產生者消除回音』的方法,亦即由麥克風擷取聲音(發話者)一方自己 進行回音消除的動作。若此方法使用在一對一的傳輸狀況下則稱為Near End Echo Cancellation。
圖11:Listener Echo Cancellation 機制
如圖 11,此方法是由產生回音的收聽者 B 負責消除回音。當收聽收到來自發話者 A 的訊號時,會先經過暫存。當麥克風收到回音時,就將此包含回音的訊號與原本暫存反 向後的訊號相減,以去除回音。
2.3.2 Listener Echo Cancellation 失效原因
在VoIP 系統中,雖然每部參與會談的裝置的都有 Listener Echo Cancellection,但卻 常因某些因素造成此機制失效,這些原因包含:
VoIP 沒有標準的話筒與聽筒,延遲時間難以計算,且回音的音量也難以預估,不一定 能正確將回音訊號抵銷。
根據使用者所使用的收/放音設備不同,聲音傳輸距離造成的回音延遲時間差異相當 大。可能的聲音傳輸距離與其所需時間範圍如表3 所列(以音速在空氣中速度為 340.29 m / sec 計算):
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
表3:Acoustic 延遲時間
Echo 路徑
距離Delay Time
手機聽筒---話筒 10cm 0.29ms 一般電話聽筒---話筒 15cm 0.44ms 喇叭---麥克風 50cm 1.47ms
喇叭---牆壁反射---麥克風 2~5m 5.88ms~14.69ms
由麥克風擷取的回音可能經過牆壁反射而造成相位相反,此時若再與反向過的訊號相 加,則不但不能減少回音,反而使回音更為嚴重。另外,由於環境(包含空間,材質,
距離等等)因素,由麥克風收到的回音訊號可能會在相位與頻率上產生嚴重失真,而 難以判定回音是否產生。
2.3.3 Talker Echo Cancellation
與前述相反,這是『由回音接收者消除回音』的方法。由聽到回音的收聽端在播 放聲音之前,先將聲音中的回音去除再播放。若此方法使用在一對一的傳輸狀況下則 稱為Far End Echo Cancellation。[5][6]
圖12:Talker Echo Cancellation 機制
如圖 12,此方法是由說話者(A)在送出聲音之前,先將自己的聲音存下,當回音訊 號透過收聽端傳回後,由說話者A 取出先前暫存的訊號,比對回音是否存在,一旦發 現回音存在,就將訊號經過衰減後相減。
2.3.4 Talker Echo Cancellection 的挑戰
如前述,Listener Echo Cancellection 有許多導致失效的因素。但同樣的,若要設計
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
一套由Talkerer 端主動消除回音的機制也會有相當多挑戰存在,尤其在多人網路會談 中,某些問題將變得比一對一時更加複雜,這些問題列舉如下:
1. 回音時間難以預估
在語音會談中,若使用者之間距離相當遙遠(例如跨國 VoIP 會談),則回音到達的時 間可能難以預估,其傳輸途徑如圖13:
圖13:遠距離 VoIP 會談時的傳輸時間難以預估
如圖13,發話者 A 說出 S(A)聲音後,若在遠方的另一使用者 C 為 Echo Generator,
則A 聽到回音訊號 S’(A)的延遲時間為:
( 2 )
2
e d t p fecho
T T T T T
T
其中:
Techo為說話者聽到回音所需的總延遲時間。
Te為語音訊框編碼(encode)時間。
Td為語音訊框解碼(decode)時間。
Tt為封包傳輸時間(transmition delay)。
Tp為傳輸延遲(propagation delay)。
Tf為聲音在空間中傳遞的時間。
在這些時間中,Tc與Tt為固定值,很容易事先預估。而如同前述,由於VoIP 沒有 固定的聽筒與話筒,故Tf的傳遞時間並不容易預估。另外,說話者與收聽者之間距離越 遠,所需要的網路傳輸時間Tp也隨之增加,若再考慮網路擁塞時封包在router 中排隊
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
遠或經過的網路hop 數量越多,Listener 端的回音就越難以消除。
2. 說話人數與聲音到達順序
在一對一的VoIP 中,通常都可假設絕大部份時間的講話者只有一位,即一方為說 話者,另一方必定為收聽者,即使有兩者同時說話,也只有短暫時間。不過一旦與會人 數很多時,多人同時說話的機率隨之增加。
假設參與會談人數為N 個時,同時說話的組合有 2N個組合:假設每個使用者都可 能有『說話』或『不說話』兩種狀態,則會有非常多組合產生,相對的特徵值就會有非 常多組。在此情形下,多個人聲混合後特徵值不明顯,聲音會彼此調合因而失去自己的
假設參與會談人數為N 個時,同時說話的組合有 2N個組合:假設每個使用者都可 能有『說話』或『不說話』兩種狀態,則會有非常多組合產生,相對的特徵值就會有非 常多組。在此情形下,多個人聲混合後特徵值不明顯,聲音會彼此調合因而失去自己的