導讀:回聲消除是音頻通話中最爲複雜的模塊,對於音頻通話質量起到相當重要的做用。一直以來,網易雲信致力於提供良好的回聲消除性能,爲用戶提供優異的音頻通話質量。本篇文章中網易雲信音視頻開發專家將和你們共同回顧回聲消除的歷史,分析回聲消除的現狀,並展望回聲消除進一步發展的方向。git
文|網易雲信音視頻開發專家算法
歷 史 網絡
回聲是一種物理和生理共同做用產生的聲學現象。原始聲被反射後反射聲和原始聲的延時超過100ms時,人耳能夠聽到分離的兩個聲音,通常在空曠的山谷這一類地方容易聽到回聲。架構
通話中聽到的回聲通常有兩種,線路回聲和聲學回聲。性能
線路回聲是由於在長途電話線網絡中,存在二四線轉換的問題。本地電話—般是用二線電路鏈接到中心局的,而長途線路的話,須要用四線電路,這二者之間須要用混合變換器進行鏈接。混合變換器的引入使得傳輸的信號在混合變換器阻抗不匹配的狀況下產生電路回聲。學習
而咱們如今在數字通話中提到的回聲通常是指聲學回聲,聲學回聲的緣由是揚聲器發出的聲音被麥克風獲取後傳回遠端,這樣一來遠端說話者就能夠聽見本身發出的聲音。spa
聲學回聲問題在早期電話應用中並不凸顯,主要是由於使用低延時的模擬技術而且通信距離廣泛較短。20 世紀中葉之後,因爲衛星系統發展的須要提出了回聲消除問題,曾經採起的解決一種方法是使用切換的方式來隔斷迴音信號,這種方法雖然可以有效地隔斷回聲,可是卻沒法日常同樣天然地交談。操作系統
隨着通話回聲日益受到重視,人們採起了各類各樣的措施來對回聲進行抑制或消除。上個世紀六十年代之前,因爲客觀條件和技術的限制,人們採用一種叫回聲抑制器的方法來實現回聲消除。視頻
回聲抑制就是對回聲進行必定程度衰減以提升通訊質量,可是回聲抑制器只對很小的時間延遲纔有良好的效果。隨着衛星通訊和IP 電話的發展,出現了傳輸時延超過100--300ms的電路,對於這麼大的時延,回聲抑制器的工做效果不好,因而人們開始研究新的回聲消除技術,基於自適應濾波器的回聲消除技術逐漸成爲主流方向。開發
從20世紀80年代以來,隨着回聲消除技術從簡單的回聲抑制器到自適應回聲消除器的發展,國際電聯ITU前後制 定了消除線路回聲的G165(Echo Canceller),消除音頻終端回聲的G167(Acoustic Echo Canceller)及消除數字網絡回波的G168(Digital Network Echo Canceller)等回聲消除器相關標準。
現 狀
理論上來講基於自適應濾波器架構並非回聲消除的惟一選擇,可是因爲技術的限制和歷史沿襲使得目前的回聲消除基本都是以自適應濾波器架構爲基礎。
從回聲消除的工做原理來看,它是一個典型的系統辨識應用,辨識回聲路徑,利用參考信號和回聲路徑的卷積產生回聲的估計,而後從混合輸入中去除回聲估計。使用自適應濾波器進行系統辨識是一個很天然的選擇。
通過長時間的技術發展,研究人員在自適應濾波器的性能研究上取得大量成績,對於回聲消除經常使用的自適應算法特性瞭解的比較深刻。
一些經常使用自適應濾波器算法特性以下:
1. 最小均方(LMS,least-mean-square)算法,是隨機梯度算法族 中的一員。該算法在隨機輸入維納濾波器遞推計算中使用肯定性梯度,其基本原理是使偏差信號的均方偏差最小,它的核心思想是用平方偏差代替均方偏差。LMS算法簡單,運算量小,很容易在通用的數字信號處理器上實現,可是LMS算法的收斂速度依賴於輸入信號矢量的自相關均值的特徵值擴散度,擴散度很大時,收斂速度將很慢。對於相關性較強的語音信號,LMS算法的收斂速度會很慢。
3.PNLMS算法及其改進算法是對NLMS算法步長控制的修改。它的收斂速度較快,對稀疏回聲路徑頗有效。IPNLMS算法是對PNLMS算法的改進,對回聲路徑 稀疏性的要求不高。
4.AP算法能夠當作是NLMS算法的擴展。因爲使用了更多的輸入向量,收斂速率獲得比NLMS算法更快的收斂速度。AP算法的失調與輸入矢量數(即AP算法的階數)無關。隨着階數的增長,收斂速度加快,可是收斂速度加快的幅度在減少。增長階數來提升收斂速度是以增長算法的計算複雜度爲代價的。AP算法的計算複雜度比NLMS高不少。AP算法的收斂速度和計算量介於 NLMS算法和RLS算法之間。
5.和隨機梯度算法不一樣,RLS算法屬於最小二乘算法。RLS算法的收斂速度比 LMS算法快—個數量級。隨着迭代次數趨於無限,RLS算法的額外均方偏差收斂於零。可是,由於用了矩陣求逆計算,RLS算法的運算量大,對於衝激響應超過百毫秒的回聲信號的消除問題來講,其運算量大難以實現。
目前的回聲消除模塊大部分都是基於以上某一類算法或者其變種,在較爲接近理想狀況下,現有自適應濾波算法均能獲得較爲滿意的回聲消除效果,然而這只是實際通話中多數時間下的一個理想狀態,實際通話狀況複雜的多。
本端噪聲干擾,信號路徑中的非線性變換,雙方同時講話,非實時操做系統帶來的數據延時抖動等,都是一個通用回聲消除模塊須要解決的問題。
例如當存在明顯的近端聲音時,基於現有各類自適應濾波算法的回聲消除器的性能將發生惡化,甚至不能保證自適應濾波算法的收斂。這就是回聲消除在實際應用中的必須解決的關鍵問題,一般稱爲雙端發聲(Double-talk)問題。當前針對這一狀況,最經常使用的方法就是加入雙端通話檢測器(Double Talk Detector,DTD),當雙方同時講話時讓自適應濾波器鎖定或者慢變來防止自適應過程發散。
如何在實時通話狀況下對這些附加問題上給出滿意的邏輯和精細調整對於產品化很是重要,也是目前致使產品性能差別的主要緣由。當前商用產品中的回聲消除模塊多數狀況下都能取得滿意的效果,然而在某些特殊狀況下都會有處理不善的地方,對更高通話品質的要求依然是研究更好的回聲消除模塊的動力。
未 來
因爲通話回聲問題的複雜性,對回聲消除模塊效果提高的需求始終存在。當前方案的固有問題使得前述一些關鍵問題很難取得突破性進展。因爲近年來設備算力的提升以及技術的發展,一些新的方案也被提出。以Volterra濾波器爲基礎的非線性濾波器解決方案,基於ICA和深度學習的回聲消除算法研究等也開始出現,基於線性自適應濾波器架構的回聲消除算法面臨挑戰。
然而尚未另一個架構能像當前的自適應濾波器架構同樣被廣爲使用,短時間內回聲消除算法依然還會做爲一個常見技術話題存在。
網易雲信在回聲消除邏輯改善和新方案研究上持續推動研究,致力於爲用戶提供更好的音頻通話效果。
*各渠道文章轉載需註明來源及做者