文 | 菊風媒體引擎資深研究團隊
在各個實時音視頻互動場景中,回聲和噪聲對於影響用戶體驗而言都是很大的問題。音視頻正在發展成為網際網路線上溝通的必然趨勢,在自然的交流環境中,回聲和噪聲是非常影響溝通體驗的。不論是社交、教育、直播場景中的「疑難雜症」或是智能硬體通話中的「痛點問題」還是銀行視頻客服和企業視頻會議的「嚴格要求」,都與回聲噪音有關,因為人對音頻都很敏感,聲音一旦有任何瑕疵,人耳都會特別容易感覺到,而且難以忍受,這都會直接影響到用戶體驗及用戶留存率。而回聲消除與噪聲消除也一直是實時音視頻的技術難點。
菊風音視頻引擎(Multi-Media Engine – MME)是針對 IP實時音視頻通信所設計的涵蓋音視頻QoS處理、音視頻編解碼、網絡打包傳以及設備管理的四大模塊的專業開發包。開發包具有豐富的音視頻技術模塊,其中的語音部分就包含聲學回聲消除、噪音消除等等。
聲學回聲消除AEC
聲學回聲是在麥克風採集了近端聲音的同時也採集了揚聲器發出來的聲音,如果沒有回聲消除模塊(Acoustic Echo Cancelation – AEC),對端將聽到自己的聲音又被傳了回來,這就是惱人的回聲產生的原理。容易理解,語音通話中,通常聲學回聲是在用戶打開了免提模式,即開啟揚聲器時產生的,不打開免提模式的情況下一般不需要啟用AEC。但是,有時候由於結構設計的問題,儘管沒有打開免提模式,聽筒上的聲音也可能作為回聲被麥克風採集到,此時也需要使用AEC。
消除回聲就像把紅墨水倒進藍墨水裡,混合在一起,然後要求把紅墨水從藍墨水中分離出來,這存在著很大的技術難度。對於採集端來說,無論是近端的聲音,還是揚聲器播放出來的聲音,都是從空氣中無差別地採集到的聲音。對機器來說,遠端信號播放出來的聲音和近端的聲音是沒有任何區別的,就像對水來說紅墨水和藍墨水沒有區別一樣。回聲消除的工作就是要把沒有任何區別的遠端回聲和近端聲音分離。AEC算法的基本思路是,參考遠端信號將混有回音的近端信號「減去」回聲。然而由於Speaker和MIC的模數轉換和回聲多途效應等因素,回聲和遠端參考信號具有非線性失真,無法做到完全消除回聲的同時確保近端信號質量不下降,因此可能有回聲殘留或近端信號質量下降或被抑制。
菊風自研的音視頻引擎自適應回聲消除,可自動適配市場上各類新舊機型,大規模節約調試和部署成本。實際測試表明,AEC能顯著改善雙端通話的質量,下圖是實測的回聲消除前和回聲消除後的語音質量的MOS(Mean Opinion Score)分的對比,Sig表示信號維度的質量,Echo表示回聲消除維度的質量,Ovrl表示總體質量。
噪聲消除
除了回聲消除,噪聲消除也是實時音視頻中的必修課。噪聲消除是一個十分複雜的技術,不同的環境噪聲所需要的處理方法是不同的,純軟體的噪聲消除的能力也是有限的,有條件採用帶有消噪能力的雙麥克風的平臺可以獲得更佳的消噪質量。
MME主要是通過軟體的方式對噪聲進行消除,它可以對輸出和輸入兩個方向的語音信號進行處理,即對近端信號和遠端信號處理,前者的調用接口為Mvc_DspSetAnrEnable(),後者調用接口為Mvc_DspSetRxAnrEnable()。如果兩個通信端都採用了菊風MME,只要打開一個方向的噪聲消除功能即可,同時進行兩個處理過程跟一個過程相比不會提高信噪比(Signal-to-Noise Ratio : SNR),也不會提高語音質量。但如果另一個終端採用的是第三方媒體處理模塊,且傳過來的信號噪音比較大,則需要對遠端信號進行處理,因此默認兩個噪聲消除的接口都打開。從數位訊號處理角度來說,對遠端信號和近端信號進行噪聲消除是沒有區別的,下圖對比了語音疊加噪音信號經MME處理前後的波形。
從三個方面考查噪聲消除模塊的性能:其一是信號的保真度,要做到有效的語音信號不損失或微損失;其二是噪聲消除了多少的考量,在信號不損失或微損失的情況下,做到儘可能的消除噪聲;其三是聲音給測試人員的整體感受,最終給測試人員的感受才是最有效的考量。下圖是基於ITU-T P.835標準,對疊加了噪音信號經過MME的處理後的MOS分對比。實驗表明,在平均-30dbov白噪音情況下,SNR上升12db,MOS上升1.13。
Sig - Speech signal rating scale
Bak - Background noise rating scale
Ovrl - Overall quality rating scale