迴音消除、噪音抑制的原理
在即時通訊應用中,需要進行雙方,或是多方的實時語音交流,在要求較高的場合,通常都是採用外接音箱放音,這樣必然會產生迴音,即一方說話後,通過對方的音箱放音,然後又被對方的Mic採集到回傳給自己。如果不對迴音進行處理,將會影響通話質量和使用者體驗,更嚴重的還會形成震盪,產生嘯叫。那麼如何實現回聲消除技術呢!
回聲消除就是在Mic採集到聲音之後,將本地音箱播放出來的聲音從Mic採集的聲音資料中消除掉,使得Mic錄製的聲音只有本地使用者說話的聲音。
傳統的回聲消除都是採用硬體方式,在硬體電路上整合DSP處理晶片,如我們常用的固定電話、手機等都有專門的迴音消除處理電路,而採用軟體方式實現回聲消除一直存在技術難點,包括國內應用最廣泛的QQ
回聲消除已經成為即時通訊中提供全雙工語音的標準方法。聲學回聲消除是通過消除或者移除本地話筒中拾取到的遠端的音訊訊號來阻止遠端的聲音返回去的一種處理方法。這種音訊的移除都是通過數字訊號處理來完成的。回聲消除技術是數字訊號處理的典型應用之一。
回聲消除的基本原理是以揚聲器訊號與由它產生的多路徑回聲的相關性為基礎,建立遠端訊號的語音模型,利用它對回聲進行估計,並不斷修改濾波器的係數,使得估計值更加逼近真實的回聲。然後,將回聲估計值從話筒的輸入訊號中減去,從而達到消除回聲的目的。
以下列舉AnyChat音視訊開發系統的回聲消除技術。
AnyChat
A使用者說話
B使用者Mic錄製聲音(包含A的聲音+B的聲音)
A聽到B的聲音(進行了迴音消除,只保留B的聲音)
關於噪音抑制(ANS)
AnyChat的噪音抑制技術原理是將實時取樣的數字訊號進行頻譜分析,這樣我們就能分析背景噪聲響應的強度和頻譜分佈,然後根據這個模型就能設計一個濾波器,當有人講話的時候,同時做訊號分析,根據分析,ANC就能分析出講話者的頻譜,那麼根據這些背景噪音和講話者的頻譜,這個濾波器根據兩個訊號的對比實時的改變,讓講話者聲音訊譜通過,對背景噪聲的頻譜進行抑制,降低其能量,比如說降低15到20個分貝,就很明顯可以感覺體驗到噪音抑制的效果。