1. 程式人生 > >即時通訊音視訊開發(十):實時語音通訊的迴音消除技術詳解

即時通訊音視訊開發(十):實時語音通訊的迴音消除技術詳解

前言


即時通訊應用中的實時音視訊技術,幾乎是IM開發中的最後一道高牆。原因在於:實時音視訊技術 = 音視訊處理技術 + 網路傳輸技術 的橫向技術應用集合體,而公共網際網路不是為了實時通訊設計的。

系列文章

內容概述


筆者從2004年開始接觸迴音消除(Echo Cancellation)技術,而後一直在某大型通訊企業從事與迴音消除技術相關的工作,對迴音消除這個看似神祕、高階和難以理解的技術領域可謂知之甚詳。

要了解迴音消除技術的來龍去脈,不得不提及作為現代通訊技術的理論基礎——數字訊號處理理論。首先,數字訊號處理理論裡面有一門重要的分支,叫做自適應訊號處理。而在經典的教材裡面,迴音消除問題從來都是作為一個經典的自適應訊號處理案例來討論的。既然迴音消除在教科書上都作為一種經典的具體的應用,也就是說在理論角度是沒有什麼神祕和新鮮的,那麼迴音消除的難度在哪裡?為什麼提供迴音消除技術(不管是晶片還是演算法)的公司都是來自國外?迴音消除技術的神祕性在哪裡?

產生迴音原因


從通訊迴音產生的原因看,可以分為聲學回音(Acoustic Echo)和線路迴音(Line Echo),相應的迴音消除技術就叫聲學回音消除(Acoustic Echo Cancellation,AEC)和線路迴音消除(Line Echo Cancellation, LEC)。聲學回音是由於在擴音或者會議應用中,揚聲器的聲音多次反饋到麥克風引起的(比較好理解);線路迴音是由於物理電子線路的二四線匹配耦合引起的(比較難理解)。

迴音的產生主要有以下兩種原因。
 

1由於空間聲學反射產生的聲學回音(見下圖)

111306j60woabqbxwioww2.jpg (550Ã300)

圖中的男子說話,語音訊號(speech1)傳到女士所在的房間,由於空間的反射,形成迴音speech1(Echo)重新從麥克風輸入,同時疊加了女士的語音訊號(speech2)。此時男子將會聽到女士的聲音疊加了自己的聲音,影響了正常的通話質量。此時在女士所在房間應用迴音抵消模組,可以抵消掉男子的迴音,讓男子只聽到女士的聲音。
 

2由於2-4線轉換引入的線路迴音(見下圖)

111336d2e0p5r0r6825ev2.jpg (287Ã237)

在ADSL Modem和交換機上都存在2-4線轉換的電路,由於電路存在不匹配的問題,會有一部分的訊號被反饋回來,形成了迴音。如果在交換機側不加回音抵消功能,打電話的人就會自己聽到自己的聲音。

迴音消除技術詳解


不管產生的原因如何,對語音通訊終端或者語音中繼交換機需要做的事情都一樣:在傳送時,把不需要的迴音從語音流中間去掉。

試想一下,對一個至少混合了兩個聲音的語音流,要把它們分開,然後去掉其中一個,難度何其之大。就像一瓶藍墨水和一瓶紅墨水倒在一起,然後需要把紅墨水提取出來,這恐怕不可能了。所以迴音消除被認為是神祕和難以理解的技術也就不奇怪了。誠然,如果僅僅單獨拿來一段混合了迴音的語音訊號,要去掉迴音也是不可能的(就算是最先進的盲訊號分離技術也做不到)。但是,實際上,除了這個混合訊號,我們是可以得到產生迴音的原始訊號的,雖然不同於迴音訊號。

我們看下面的AEC聲學回音消除框圖:

111834w69cqg6ycsmqca8d.jpg (400Ã177)

其中,我們可以得到兩個訊號:一個是藍色和紅色混合的訊號1,也就是實際需要傳送的speech和實際不需要的echo混合而成的語音流;另一個就是虛線的訊號2,也就是原始的引起迴音的語音。那大家會說,哦,原來回音消除這麼簡單,直接從混合訊號1裡面把把這個虛線的2減掉不就行了?請注意,拿到的這個虛線訊號2和迴音echo是有差異的,直接相減會使語音面目全非。我們把混合訊號1叫做近端訊號ne,虛線訊號2叫做遠端參考訊號fe,如果沒有fe這個訊號,迴音消除就是不可能完成的任務,就像“巧婦難為無米之炊”。

雖然參考訊號fe和echo不完全一樣,存在差異,但是二者是高度相關的,這也是echo稱之為迴音的原因。至少,迴音的語義和參考訊號是一樣的,也還聽得懂,但是如果你說一句,馬上又聽到自己的話回來一句,那是比較難受的。既然fe和echo高度相關,echo又是fe引起的,我們可以把echo表示為fe的數學函式:echo=F(fe)。函式F被稱之為迴音路徑。在聲學回音消除裡面,函式F表示聲音在牆壁,天花板等表面多次反射的物理過程;線上路迴音消除裡面,函式F表示電子線路的二四線匹配耦合過程。很顯然,我們下面要做的工作就是求解函式F。得到函式F就可以從fe計算得到echo,然後從混合訊號1裡面減掉echo就實現了迴音消除。

儘管迴音消除是非常複雜的技術,但我們可以簡單的描述這種處理方法:
 

  • 房間A的音訊會議系統接收到房間B中的聲音
  • 聲音被取樣,這一取樣被稱為迴音消除參考
  • 隨後聲音被送到房間A的音箱和聲學回音消除器中
  • 房間B的聲音和房間A的聲音一起被房間A的話筒拾取
  • 聲音被送到聲學回音消除器中,與原始的取樣進行比較,移除房間B的聲音


求解迴音路徑函式F的過程恐怕就是比較難以表達的數學公式了。鑑於通俗表達數學公式的難度比發現數學公式還難,筆者就不費力解釋了。

結語


迴音消除技術在當今移動網際網路時代,有著廣泛的需求,但這是一門即容易理解又難以實現的技術。

網易雲信,你身邊的即時通訊和音視訊技術專家,瞭解我們,請戳網易雲信官網

想要閱讀更多行業洞察和技術乾貨,請關注網易雲信部落格

本文轉載自52im,作者:JackJiang