• 沒有找到結果。

第二章 背景與相關研究

2.3 回音消除方法分類

立 政 治 大 學

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 f

echo

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個組合:假設每個使用者都可 能有『說話』或『不說話』兩種狀態,則會有非常多組合產生,相對的特徵值就會有非 常多組。在此情形下,多個人聲混合後特徵值不明顯,聲音會彼此調合因而失去自己的 特性,這將使得前述演算法難以進行聲音特徵比對,判斷回音是否存在。

此外,在封包傳輸時,有可能因為網路擁塞或路徑選擇等因素,造成封包不依照順 序到達(即發生 time sequence disorder 的問題)。這將導致回音和正常語音可能會同時出 現,甚至可能先聽到回音,再聽到正常語音。此狀況發生時,也會讓回音判定演算法失 效。

3. 運算時間之限制

對於VoIP 而言,使用者能忍受的 mouth-to-ear delay time(聲音由說話者傳送到收聽 者的總延遲時間)不可超過 300ms,而在 VoIP 系統中,除了傳輸延遲時間外,還多了編 解碼所需時間,使得容許的回音消除運算時間被大幅壓縮。

聲音送出時必須經過類比數位轉換(A/D),訊框編碼(Encoding)與封包化(Packetize) 的過程(如圖 14)。

圖14:聲音訊號由麥克風傳至網路的必經過程

相反的,在接收端也必須經過解封包,訊框解碼與數位類比轉換(D/A)的過程,圖 15 為由網路收取封包後,還原為聲音的過程。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

圖15:由封包還原為聲音的過程

在這些必須消耗的時間以外,留給Talker 端執行回音消除運算的時間就極為短暫,

對程式實作的挑戰相當大。

4. Mixer 造成的困擾

在P2P Multicast 的 VoIP 系統中,可能會有某些裝置擔任 mixer 負責將來自數個使 用者發出的聲音先進行混音後再轉送[3]。

圖16:mixer 的混音程序

此時,若使用者收到的是混合後的聲音,則不但回音分析的複雜度大幅提昇,而且 要消除混雜於其他聲音之內的回音亦極為困難。

5. 使用者說話行為造成誤判

在多人會談時,使用者們有些說話行為會造成『很像回音,但卻不是回音』的情況 產生。以下兩個狀況就是經常發生的情形。

例1,在選舉造勢場合中的『一呼百應』:

台上主持人:『大家說對不對?』

台下的眾人:『對!』

例2,軍隊或團體活動時的『呼口號』:

主席:『復興中華文化!』

眾人:『復興中華文化!』

以上這種說話的行為,對於程式而言都與回音的狀況非常類似(具有類似特徵的語 音在短時間內重複出現),但實際上卻是正常的會談內容,此時就很容易發生誤判。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

相關文件