本文是“Dev for Dev專欄”系列文章,作者為音視頻實驗室工程師黃一清。
優化音頻質量是一項復雜的系統工程,回聲消除是常見的話題之一。一般來說,回聲消除的效果受設備本身的聲學設計、聲學環境、軟件系統等多種因素影響。傳統的回聲消除方法包括線性回聲消除和濾波非線性處理。然而,當前回聲消除的前沿仍然面臨非線性回聲消除、近端能量小于回聲能量、立體聲回聲問題、麥克風和參考信號時鐘不一致、參考信號不準確以及缺乏可靠的延遲估計方法等問題。 Agora音頻技術團隊結合自身實踐,推出了特殊場景下的音頻評測系列文章。這篇文章是關于回聲消除的——希望與業界同仁交流。
隨著4G/5G的應用,實時音視頻領域也快速發展,實時語音質量越來越受到關注。回聲、延遲、滯后等因素已成為人們關注實時語音質量的主要方面。本文主要介紹實時語音通話中的回聲消除問題。
回聲是指揚聲器發出的聲音被麥克風拾取并發送回遠端的現象。所有通信系統都必須進行回聲消除,否則通信質量將受到嚴重影響。回聲消除帶來的問題主要分為兩類,雙語音時回聲丟失和單詞丟失。直觀的表現是說話者聽到自己的聲音而對方的聲音卡住甚至聽不見。
■圖1:回聲產生的原因
01 回聲消除的幾個問題
■圖2:回聲消除解決方案
影響回聲消除的因素有很多,比如音量問題。當播放信號太大時,很容易產生回聲。其主要原因如下:
1、麥克風采集到的回聲信號溢出(),引入非線性回聲;
2、音量過大會加劇硬件設備本身的振動,引入非線性成分;
3、麥克風采集到的回聲信號不會溢出,但遠大于近端語音信號留學之路,導致雙講時嚴重掉話甚至聽不見。
此外,延遲抖動、時鐘偏移、采集或回放頻率不穩定、非線性失真、回聲路徑變化、混響、硬件3A(手機自帶3A)處理效果等,都是影響回聲消除的常見因素。因素。從宏觀上看,采集或播放設備的外觀(揚聲器/麥克風設備型號和排列)、手機的3A處理算法(手機制造商、系統和型號)、傳輸算法、環境因素等復雜多變。不同的通訊場景,會對回聲消除產生不同的影響。
02 回聲消除的評價方法
產生回聲的場景如此復雜,那么我們如何評估回聲消除呢?在實驗室場景中,我們對回聲消除的評估主要分為兩個部分。第一部分,人工主觀測試,重點關注各種復雜場景下是否存在回聲問題;第二部分,客觀自動化測試,重點關注大量不同模型/系統版本是否存在回聲問題。
手動主觀測試更容易理解。它是人工互操作,模擬各種用戶可能使用的場景來測試是否有回聲。常見場景如主持人與觀眾切換、切換后臺/鎖屏、打開/關閉第三方應用(音視頻相關)、打斷等,以及與各種終端設備(耳機/輸出音箱)的切換/藍牙耳機)/環境(安靜/吵鬧)等
那么客觀的自動化測試如何檢測回聲呢?
我們建立了一個評估AEC的系統。該系統適用于聲網及行業SDK的所有場景。所使用的語料庫是在消聲室中錄制的人聲語料庫,對用戶最熱門模型和常見問題模型進行評估。將設備音量調節至官方推薦音量,通過測試機播放的完整性、測試機的播放響度、長短回聲比例、量等指標來衡量AEC質量的殘余回聲。
03 具體AEC客觀評價方法
該測試方法通過測試設備統一發送和接收測試信號,可用于回歸測試。在大批量自動化測試中也具有良好的穩定性,可以大大提高測試效率。
步驟一:將近端設備連接至遠端設備;
步驟2:計算機通過聲卡將音頻信號輸出到近端標準設備,近端設備采集并測試音頻信號;
步驟3:在遠端設備上播放接收到的音頻信號;
步驟4:聲卡同步采集近端設備接收到的待測音頻信號;
步驟5:通過檢測待測音頻信號的響度和持續時間來確定遠端設備的回聲消除質量。
■圖3:電波暗室測試環境
為了評估理想條件下的回聲消除能力,我們在消聲室內進行了測試。隔離噪音并最大限度地減少回聲。圖3是測試環境的部分展示。我們在選定的測試機上進行批量測試。
描述
A1
全雙工無衰減
A2
全雙工在發射方向有衰減
非常短的剪輯
音節的短截斷造成損壞
剪輯導致單詞丟失
極短的殘余回波
間歇返回
連續回聲
表1 回聲消除性能類型說明
根據3GPP對回聲消除性能分類的描述(表1)和回聲消除性能的分類(圖4)回聲是怎么產生的,我們將回聲比例分為回聲比例小于25ms、回聲比例25~150ms和回聲比例超過150ms。三個級別的比率用于定義回聲的嚴重程度。
■圖4 回聲消除性能分類
04 測試結果分析
以下是Agora的AEC評測結果以及行業解決方案。
■AEC評價結果(部分)
以上是理想條件下回聲消除的評價。但在實際通信中回聲是怎么產生的,會存在各種復雜的環境,產生不同程度的回聲。為了模擬真實情況下出現的回聲,我們使用可調混響室中記錄的語料進行回聲分析。以下是AEC評測方案在四種不同場景、不同檔位下的一些數據。同時,還可以測試頻繁進出通道或長期壓力測試下的回聲消除效果。
可調混響室的混響時間可設置至0.2~2秒,共7級。可模擬小型會議室、客廳、報告廳、大型教室、電影院等不同規模的實際應用環境,并提供主觀聲音評價。客觀的算法質量評估提供了可重復的全場景測試條件。
通過分析數據,我們可以清楚地看到回聲消除能力。使用大量測試模型,可以檢查特定模型對回聲消除的影響。通過比較不同版本,可以評估優化迭代的效果。通過與行業解決方案的對比,可以檢驗我們研發工作的領先性。
寫在最后:回聲消除的效果會直接影響各種場景下的用戶體驗,比如聊天室、卡拉OK、會議、在線教學等。為了提高用戶體驗,我們也深度融合了傳統算法和用于開發基于人工智能的回聲消除的人工智能算法。該功能可以在更嚴格的條件下保留完整、清晰、流暢的近端人聲,顯著提高系統性能。回聲消除和雙講功能為用戶帶來更舒適的通話和直播體驗。目前該功能已集成在 Agora RTC SDK 4.1.0 及以上版本中。歡迎大家免費下載體驗。立即注冊聲網賬號,下載SDK,每月免費獲得10,000分鐘。如果您在開發過程中遇到任何問題,可以在聲網開發者社區與官方工程師交流。