回声消除的昨天、今天和明天
導讀:回聲消除是音頻通話中最為復雜的模塊,對于音頻通話質量起到至關重要的作用。一直以來,網易云信致力于提供良好的回聲消除性能,為用戶提供優異的音頻通話質量。本篇文章中網易智企音視頻開發專家將和大家共同回顧回聲消除的歷史,分析回聲消除的現狀,并展望回聲消除進一步發展的方向。
?
一、歷史:
回聲是一種物理和生理共同作用產生的聲學現象。原始聲被反射后反射聲和原始聲的延時超過100ms時,人耳可以聽到分離的兩個聲音,一般在空曠的山谷這一類地方容易聽到回聲。
通話中聽到的回聲一般有兩種,線路回聲和聲學回聲。線路回聲是因為在長途電話線網絡中,存在二四線轉換的問題。本地電話—般是用二線電路連接到中心局的,而長途線路的話,需要用四線電路,這兩者之間需要用混合變換器進行連接?;旌献儞Q器的引入使得傳輸的信號在混合變換器阻抗不匹配的情況下產生電路回聲。
而我們現在在數字通話中提到的回聲一般是指聲學回聲,聲學回聲的原因是揚聲器發出的聲音被麥克風獲取后傳回遠端,這樣一來遠端說話者就可以聽見自己發出的聲音。
聲學回聲問題在早期電話應用中并不凸顯,主要是因為使用低延時的模擬技術并且通訊距離普遍較短。20 世紀中葉以后,由于衛星系統發展的需要提出了回聲消除問題,曾經采取的解決一種方法是使用切換的方式來隔斷回音信號,這種方法雖然能夠有效地隔斷回聲,但是卻無法平常一樣自然地交談。
隨著通話回聲日益受到重視,人們采取了各種各樣的措施來對回聲進行抑制或消除。 上個世紀六十年代以前,由于客觀條件和技術的限制,人們采用一種叫回聲抑制器的方法來實現回聲消除?;芈曇种凭褪菍芈曔M行一定程度衰減以提高通信質量,但是回聲抑制器只對很小的時間延遲才有良好的效果。隨著衛星通信和IP 電話的發展,出現了傳輸時延超過100--300ms的電路,對于這么大的時延,回聲抑制器的工作效果很差,于是人們開始研究新的回聲消除技術,基于自適應濾波器的回聲消除技術逐漸成為主流方向。從20世紀80年代以來,隨著回聲消除技術從簡單的回聲抑制器到自適應回聲消除器的發展,國際電聯ITU先后制 定了消除線路回聲的G165(Echo Canceller),消除音頻終端回聲的G167(Acoustic Echo Canceller)及消除數字網絡回波的G 168(Digital Network Echo Canceller)等 回聲消除器相關標準。
現狀:
理論上來說基于自適應濾波器架構并不是回聲消除的唯一選擇,但是由于技術的限制和歷史沿襲使得目前的回聲消除基本都是以自適應濾波器架構為基礎。
從回聲消除的工作原理來看,它是一個典型的系統辨識應用,辨識回聲路徑,利用參考信號和回聲路徑的卷積產生回聲的估計,然后從混合輸入中去除回聲估計。使用自適應濾波器進行系統辨識是一個很自然的選擇。經過長時間的技術發展,研究人員在自適應濾波器的性能研究上取得大量成績,對于回聲消除常用的自適應算法特性了解的比較深入。
一些常用自適應濾波器算法特性如下:
1.最小均方(LMS,least-mean-square)算法,是隨機梯度算法族 中的一員。該算法在隨機輸入維納濾波器遞推計算中使用確定性梯度,其基本原理是使誤差信號的均方誤差最小,它的核心思想是用平方誤差代替均方誤差。LMS算法簡單,運算量小,很容易在通用的數字信號處理器上實現,但是LMS算法的收斂速度依賴于輸入信號矢量的自相關均值的特征值擴散度,擴散度很大時,收斂速度將很慢。對于相關性較強的語音信號,LMS算法的收斂速度會很慢。
2.為了克服經典的LMS算法收斂慢和對噪聲較敏感的缺點,人們將濾波器系數矢量用輸入信號的功率進行歸一化,得到歸一化最小均方(NLMS)算法。歸—化技術減少了收斂速度對輸入信號功率的依賴性,其代價是計算量增加。但階數增大時,增加的計算量相對較少。簡言之,在計算復雜性方面,NLMS算法的計算效率與LMS算法相當。同時,當輸入信號為語音時,NLMS算法比LMS算法的收斂速度快,且穩定性好。因此,NLMS算法比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和深度學習的回聲消除算法研究等也開始出現,基于線性自適應濾波器架構的回聲消除算法面臨挑戰。然而還沒有另外一個架構能像當前的自適應濾波器架構一樣被廣為使用,短期內回聲消除算法依然還會作為一個常見技術話題存在。
網易云信在回聲消除邏輯改善和新方案研究上持續推進研究,致力于為用戶提供更好的音頻通話效果。
?
了解網易云信,來自網易核心架構的通信與視頻云服務>>
更多技術干貨,歡迎關注vx公眾號“網易智慧企業技術+”。系列課程提前看,精品禮物免費得,還可直接對話CTO。
?
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的回声消除的昨天、今天和明天的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SaaS数据驱动浅谈
- 下一篇: 网易云信携手SNH48 GROUP,打造