AliAGC 自動增益控制演算法:解決複雜場景下的音量問題

阿里雲視訊雲發表於2022-05-19

音視訊會議,直播連麥以及短視訊已經成為人們工作、教學以及娛樂的一部分,其背後都離不開音視訊實時通訊等關鍵技術的廣泛應用。音訊方面,可預見的是客戶業務形式的多樣性,環境的複雜性,以及接入裝置的差異性會帶來的一系列問題,我們意識到單一場景的技術與策略已經無法滿足日趨暴露的線上問題,音訊前處理 3A(AEC,ANS, AGC)演算法走向全場景自適應才是唯一出路。為了解決複雜環境中的噪聲問題,我們上線了 AliCloudDenoise - 語音增強演算法,補強了傳統降噪技術在非穩態噪聲抑制方面的缺陷;為了解決音量問題,我們上線了 AliAGC - 自動增益控制演算法,極大地改善了不同環境、裝置、場景下音量不統一的問題,相比傳統 WebRTC AGC 更加智慧。

現有 WebRTC AGC 演算法存在什麼問題?

在《詳解 WebRTC 高音質低延時的背後 — AGC(自動增益控制)》一文中對 WebRTC AGC 不同模式的核心原理做了深入的解讀,其以固定增益模式為基礎,擴充套件出數字 / 模擬自適應模式都存在不同程度的響應過激和不及時、補償增益估計不精準等穩定性問題,技術細節這裡就不展開了,從方向上看 WebRTC AGC 追求自適應的目標是對的,也是我們首先需要優化的部分,我先來看看線上都遇到了哪些痛點問題:

(1)音量不統一的問題
多人會議中,音訊採集效果受到裝置差異性、環境以及說話人自身等諸多因素影響,如果僅採用固定增益方案,聽感上就會出現不同說話人音量不統一的問題,持續的小音量或突然的超大音量只能通過頻繁調節裝置播放音量按鍵來解決。在直播間 / 短視訊之間切換時,也難免會遇到類似問題。

(2)環境中的嘈雜人聲被過度放大的問題
在辦公室、賣場等開放環境,主講人開麥但是未發言時,周圍的嘈雜人聲很可能會被當做主講人聲音,傳統的自適應方案會觸發增益補償,導致整個過程中嘈雜聲非常明顯,嚴重影響會議、直播的體驗。

(3)直播連麥等娛樂場景,背景音樂音量起伏的問題
直播連麥等娛樂場景中播放背景音樂是極為常見的,很多主播都會使用音效卡,一般業務層都選擇關閉 AGC,將調音量的權利交給主播,巨集觀上看並不能解決(1)中不同直播間音量差異較大的問題,主播甚至都難以察覺爆音和音量小的情況,因此在這類場景中開啟 AGC 是必要的。但傳統的增益補償策略不會區分人聲和背景音樂,必然會帶來音樂音量的起伏問題,對於觀眾來說這是不可接受的,控制好存在音樂的場景是 AGC 面臨的最大挑戰。

由此可見,魯棒的自適應模擬 / 數字增益是非常基礎的,僅能解決(1)中音量不統一的問題,我們還需要通過新增其他的方法或模組去應對具體場景中的音量問題。

AliAGC 演算法優化方向

阿里雲視訊雲音訊技術團隊為了追求極致的音視訊通話體驗,AGC 作為音訊 3A 演算法中最後一環,我們提出瞭如下要求:

① 增益補償以及自適應調節策略響應迅速,做到秒級收斂;

② 增益範圍大,能覆蓋絕大多數移動端和 PC 端裝置;

③ 在嘈雜、音樂等複雜場景,穩定性好,不觸發誤調;

④ 功耗低,音質無損;

為了實現上述目標,我們基於 WebRTC 中 AGC 框架(具體細節可以檢視《詳解 WebRTC 高音質低延時的背後 — AGC(自動增益控制)》)做了如下主要優化:

① 數字增益自適應方案:新增了 VAD/ 包絡檢測模組用於實時計算音訊訊號音量,用於快速確定最大的增益上限,從而指導當前數字增益調節;

② 模擬增益自適應方案:基於檢測到的人聲 / 底噪音量,用於指導模擬增益調節,從而控制採集底噪和人聲音量處於目標範圍;

③ 場景自適應方案:新增語音 / 嘈雜 / 音樂等多工檢測模組,動態估計當前嘈雜聲水平、音樂等狀態,用於啟用相應的調節策略,使演算法適應當前絕大多數應用場景。

④ 音訊統計資料建設:新增了人聲 / 噪聲音量統計等資料和事件檢測,為其他模組提供準確的資料支援同時,也通過資料上報通道完善埋點,豐富後臺儀表盤。

AliAGC 演算法效果

基於以上難點問題,下面來看看優化後 AliAGC 的效果:

(1)收斂速度快
採集音量極小的情況下:-30dB → -3db 需要 5s - 8s;常規情況下 : -20dB → -3db 僅需要 3s - 5s。

反過來,當採集音量較大,數字增益嚴重過剩時,下調的收斂速度同樣很快。絕大多數場景基本是說一句的時間,就收斂了。

(2)數字增益自適應更新能力
前面的 case 中已經可以看出,初段是極小的音量(<-34dB),中後段的音訊音量比較大,從輸出結果可見,最終輸出音量基本處於 [-1dB, -3dB] 的目標區間,聽感上已經沒有差異。

下面來看一個比較極端 case:人聲由大到小交替變化,如果增益自適應調節不及時我們會看到波峰被壓限器削平的情況,以及小音量提升不及時的問題(可以在深入淺出那篇文章中檢視)。優化之後可見,整體輸出音量平穩,且波形保持完好。

同時,我們錄製了一次多人會議中參會人 F 本地播放音訊資料,參會人 A ~ E 最終推流音量基本都被均衡到-3dB 附近,對於參會人 F 而言,他主觀聽感上基本是一致的。

(3)嘈雜環境下的增益控制
同樣地,我們選取了一段真實會議中錄製的推流音訊資料。主講人發言之前,環境中有其他同事正在開會,傳統自適應方案中由於缺乏對嘈雜環境監測,導致其他同事聲音也得到了大幅度的增益,優化後的方案避免了這類情況,僅當主講人開始發言時才啟用了自適應邏輯,避免了過度增益周圍嘈雜人聲的問題。

同時,對於原始採集底噪大,且存在嘈雜人聲的情況,主講人發言之前增益保持比較好,並沒有因為 AGC 的增益而帶來底噪被大幅放大的問題。當主講人開始發言時,觸發增益自適應調節,最終被增益到合適位置。

(4)娛樂直播場景下的增益控制
我們選取了一段主播與背景音樂交替出現的素材,傳統增益補償方案中人聲和音樂是一視同仁的,最終都得到了提升,聽感上會發現背景音樂音樂起伏不定。優化後的方案中,由於音樂檢測模組較好的表現,會指導 AGC 對音樂部分增益的控制,輸出結果符合預期,整體看增益僅僅是按照了主播人聲的部分在自適應。

全場景自適應,AliAGC 演算法的後續優化目標

阿里雲視訊雲音訊技術團隊提供的音訊 3A 演算法(不侷限於 3A),是 AliRTC 推流端音訊質量的保障,各項音訊指標不能有明顯短板,在複雜的應用場景中三者缺一不可,共同影響著音訊質量與主觀體驗。我們並不能把某一個演算法割裂地去優化,比如 AGC 增益過大,不僅會過度增益噪聲,還會造成對端採集到的回聲非線性成分增多,影響回聲消除的效果。另外,降噪能力太差,也會限制 AGC 可以達到的最大增益上限。同時,在嘈雜聲較大的環境中,也不能單純依賴 AGC 對嘈雜人聲的控制,畢竟檢測都存在誤檢的可能,如果智慧降噪預設使用的話,這類場景中 AGC 的壓力會大幅減小。

在後續的優化中,會逐步按照場景細化 3A 的配置,整體看 3A 的最終效果。對於單一演算法的優化,各大廠家之間的差距不斷縮小,個性化差異化的創新顯得尤為重要。一方面,AliAGC 演算法需要主動發掘線上 badcase,持續加強穩定性建設;另一方面,需要加深機器學習、陣列等技術上的探索與運用,豐富產品亮點。

「視訊雲技術」你最值得關注的音視訊技術公眾號,每週推送來自阿里雲一線的實踐技術文章,在這裡與音視訊領域一流工程師交流切磋。公眾號後臺回覆【技術】可加入阿里雲視訊雲產品技術交流群,和業內大咖一起探討音視訊技術,獲取更多行業最新資訊。

相關文章