如何用人工智慧技術優化 WebRTC 產品(內附具體方案)

融雲RongCloud發表於2021-09-26

WebRTC(網頁實時通訊),作為一個支援網頁瀏覽器進行實時語音或視訊對話的開源技術,解決了網際網路音視訊通訊的技術門檻問題,正逐漸成為全球標準。

過去十年間,在眾多開發者的貢獻之下,這項技術的應用場景越來越廣泛和豐富。在人工智慧時代,WebRTC 將走向何方?本文主要分享 WebRTC 與人工智慧技術結合的相關方向及融雲的創新實踐(加 融雲全球網際網路通訊雲 服務號瞭解更多)。

WebRTC+人工智慧,讓聲音更真切、視訊更高清

人工智慧技術在音訊和視訊方面的應用越來越來廣泛,在音訊方面,人工智慧技術主要用於噪聲抑制(noise suppression)、回聲消除(echo removal)等;在視訊方面,人工智慧技術則更多用於虛擬背景、視訊超解析度等。

AI語音降噪

語音降噪已經有多年曆史,最早常使用類比電路降噪方法。隨著數位電路的發展,降噪演算法代替傳統類比電路,大大提升了語音降噪的質量。這些經典的演算法都基於統計理論估計噪聲,能夠將穩態噪聲消除得比較乾淨。對於非穩態噪聲,如敲擊鍵盤、桌子的聲音,馬路上車來車往的聲音,經典演算法就顯得無能為力了。

AI 語音降噪應運而生,它基於大量語料,通過設計複雜的演算法,結合持續的訓練學習而成,省去了繁瑣而模稜兩可的調參過程。AI 語音降噪在處理非穩態噪聲時有著天然優勢,它能識別非穩態資料的特徵,有針對性地降低非穩態噪音。

回聲消除

回聲是由於揚聲器放出來的聲音經過衰減和延時後又被麥克風收錄產生的。我們在傳送音訊時,要把不需要的迴音從語音流中間去掉。WebRTC 的線性濾波器採用頻域分塊的自適應處理,但並沒有仔細考慮多人通話的問題,非線性回聲消除部分採用維納濾波的方法。

結合人工智慧技術,我們可以基於深度學習方法,採用語音分離方式,通過精心設計的神經網路演算法,直接消除線性回聲和非線性回聲。

虛擬背景

虛擬背景依託於分割技術,通過將圖片中的前景分割出來,對背景圖片進行替換得以實現。主要應用場景包括直播、實時通訊、互動娛樂,涉及到的技術主要包括影像分割和視訊分割。典型的例項如圖 1 所示。

(圖 1 上圖黑色背景替換為下圖紫色背景)

視訊超解析度

視訊超解析度是將高糊視訊變清晰,在頻寬受限、位元速率較低的情況下,傳輸較低質量的視訊,然後通過影像超解析度技術還原成高清視訊,這一技術在 WebRTC 中具有重要意義。典型的影像如圖 2 所示。在頻寬有限的情況下,傳輸低解析度的視訊碼流,依然可以獲得高解析度的視訊。

(圖 2 原始低解析度影像 vs 處理後的高解析度影像)

融雲的創新實踐

WebRTC 是一個開源技術棧,想真正在實際場景下做到極致,還需要進行大量的優化。融雲結合自身的業務特點,對 WebRTC 音訊處理和視訊壓縮部分原始碼進行修改,用以實現基於深度學習的音訊噪聲抑制和視訊高效壓縮。

音訊處理

除了 WebRTC 原有的 AEC3、ANS 和 AGC 外,針對會議、教學等純語音場景,融雲加入了 AI 語音降噪模組,並對 AEC3 演算法做了優化,大大提高音樂場景下的音質。

AI語音降噪:業界大都採用時域和頻域的 mask 方法,結合了傳統演算法和深度神經網路。通過深度神經網路估計訊雜比,可以計算出不同頻段的增益,轉換到時域後,再次計算一個時域的增益,最後應用到時域上,可以最大限度消除噪聲,保留語音。

由於深度學習語音降噪模型過多采用 RNN (迴圈神經網路),所以語音結束一段時間內,模型依然認為有人聲存在,拖延時間太長以至於語音無法掩蔽掉殘餘噪聲,導致語音結束後短暫的噪聲。融雲在現有模型的基礎上新增預測模組,根據語音幅度包絡和 SNR 下降程度,提前預測到語音的結束,消除在語音結束時能夠察覺到的殘餘噪聲。

(圖 3 優化前的噪音拖尾)

(圖 4 優化後沒有噪聲拖尾)

視訊處理

在 WebRTC 原始碼中,視訊編碼部分主要採用了開源的 OpenH264、VP8、VP9 並重新封裝成了統一的介面。融雲通過修改 OpenH264 原始碼完成背景建模和感興趣區域編碼等任務。

背景建模:為了完成實時的視訊編碼,將背景建模的處理放在 GPU 上十分必要。經過調研發現,OpenCV 中的背景建模演算法支援 GPU 加速。實際操作中,我們將攝像頭等採集裝置獲取的原始 YUV 影像轉成 RGB 影像,再將 RGB 影像送入 GPU 中。然後,在 GPU 中獲取背景幀並將其從 GPU 轉移到 CPU 中。最後,再將該背景幀加入到 OpenH264 的長期參考幀列表中,用於提高壓縮效率。流程圖如圖 5 所示。


(圖 5 背景建模流程圖)

感興趣區域提取:感興趣區域編碼部分實現採用了 yolov4tiny 模型,進行目標檢測以及與背景建模提取的前景區域融合。部分程式碼展示下圖 6 所示。網路載入後,選擇 cuda 進行加速,輸入影像設定為 416*416。


(圖 6 將網路載入到 GPU 的部分程式)

視訊編碼在 WebRTC 上的實驗效果:為了驗證效果,我們採用 WebRTC 中的 videoloop 測試程式對修改的 OpenH264 進行測試。圖 7 為攝像頭現場採集的視訊,選用 1920*1080 解析度進行背景建模的效果。圖 8 為輸出的結果,WebRTC 為了保證實時性,會拋棄由於各種原因未在設定的時間內實際編碼的幀。圖 8 顯示,我們採用的演算法沒有消耗很大的編碼時間,沒有使編碼器產生被拋棄的幀。

(圖 7 當前幀和背景幀)

如何用人工智慧技術優化 WebRTC 產品(內附具體方案)_深度學習_10


(圖 8 編碼器的實際效果)

總結而言,在音訊方面採用基於人工智慧的降噪處理,可以顯著提高現有語音通話的體驗,但是模型預測還不夠精準,計算量相對較大。隨著模型的不斷完善優化,資料集的不斷擴大,AI 語音降噪技術一定會為我們帶來更好的通話體驗。在視訊方面,採用背景建模技術將背景幀加入到長期參考幀列表中,有效地提高了監控類場景的編碼效率,採用基於目標檢測和背景建模以及高效的位元速率分配方案提高視訊感興趣區域的編碼質量,有效地改善了在弱網環境下人們的觀看體驗。

技術更迭步履不停,我們已經邁入了全面智慧化時代。人工智慧技術深度應用於各類場景,在音視訊產業領域,先進技術與 WebRTC 相結合,亦是前景廣闊。服務優化永無止盡,融雲將繼續緊跟科技趨勢,不斷對創新科技進行積極探索,並將其沉澱成為可供開發者便捷使用的底層能力,長期賦能開發者。

相關文章