AliPLC 智慧丟包補償演算法,提升弱網環境的通話質量

阿里雲視訊雲發表於2022-04-16

線上視訊/語音通話逐漸成為人們日常生活的一部分,而複雜多變的網路環境會導致部分音訊包無法傳送到接收端,造成語音訊號的短時中斷或者卡頓,這會嚴重影響通話體驗,為解決這類問題,阿里雲視訊雲音訊技術團隊在綜合考慮效果、效能開銷、實時性等諸多因素後,研發了實時因果的智慧丟包補償演算法 AliPLC (Ali Packet Loss Concealment),採用低複雜度的端到端的生成對抗網路來解決語音在傳輸過程中的丟包問題。

實時通訊中,訊號不好怎麼辦?

隨著網際網路技術的飛速發展,直播,線上教育,音視訊會議,社交泛娛樂,互動遊戲等新興的互動方式正在改變著人們的生活。值得一提的是,它們的興起都離不開實時通訊技術 (Real Time Communication, RTC) 的發展。圖 1 展現了 RTC 通訊中音訊鏈路的簡要流程,主要包含:採集、前處理 (3A)、編碼、傳輸、解碼、丟包補償、混音、播放等環節。

圖 1. RTC 中的音訊鏈路示意圖

語音訊號通過編碼壓縮技術,在網路上進行分幀傳送。然而由於網路環境的影響會導致部分音訊包無法傳送到接收端,造成語音訊號的短時中斷或者卡頓,進而影響長時通話過程中的音質和可懂度。為解決以上問題,丟包補償 (Packet Loss Concealment,PLC) 演算法應運而生。PLC 演算法可以通過利用所有已得到的資訊對丟失的音訊包進行恰當的補償,使之不易被察覺,從而保證了接收側音訊的清晰度和流暢度,給使用者帶來更好的通話體驗。

音訊補償演算法業內研究現狀

丟包是資料在網路中進行傳輸時會經常遇到的一種現象,也是引起 VOIP(Voice Over Internet Phone, VOIP) 通話中語音質量下降的主要原因之一。傳統的 PLC 解決方案主要基於訊號分析原理 [1-2],大致可以分為基於傳送端補償的方案和基於接收端補償的方案。前者的基本原理是利用編碼冗餘資訊來恢復丟包的內容。

然而,該方法需要佔用額外頻寬,且存在編解碼器不相容的問題。後者的基本原理是利用丟包前的解碼引數資訊來重構出丟失的語音訊號。傳統的 PLC 方法最大的優點是計算簡單,可線上補償;缺點是補償的能力有限,只能有效對抗 40ms 左右的丟包。應對長時連續突發丟包時,傳統演算法會出現機械音,波形快速衰減等無法有效補償的情況。因此,上述傳統的 PLC 方法的處理能力滿足不了現網業務的需求。

近年來,硬體和演算法都有了顯著的進步,越來越多深度學習的方法被應用到語音訊號處理領域。當然,PLC 演算法也不例外。現有的深度 PLC 方法都是在接收端利用深度學習的模型生成丟失的音訊包,大致可以分為兩個通用的工作框架:

第一個是實時因果處理框架,只使用歷史的未丟失幀進行後處理。在進行實時處理時,按迭代方法的不同大致可以分為基於迴圈神經網路的自迴歸方法 [3-4] 和基於生成對抗網路的並行方法 [5-6] 兩種,但往往涉及較大的引數量和計算量。

第二個是離線非因果處理框架,除了使用歷史未丟失幀之外,還有可能使用了包括未來幀的更廣泛的上下文資訊 [7-8]。離線處理方法通常關注的是如何填充語音訊號中的空白,而且通常不考慮計算複雜度,難以在實際應用場景中部署。

智慧丟包補償演算法:AliPLC

1. 演算法原理

在綜合考慮業務使用場景,補償效果、效能開銷、實時性等諸多因素後,阿里雲視訊雲音訊技術團隊研發了實時因果的智慧丟包補償演算法:AliPLC(Ali Packet Loss Concealment),採用低複雜度的端到端的生成對抗網路來解決語音在傳輸過程中的丟包問題。該演算法具有以下優點:
• 演算法沒有任何延時;
• 可以實時流式處理;
• 可以生成高質量的語音;
• 不用單獨進行平滑操作就能保證丟包前後音訊的平滑和連貫性。

2. 演算法效能

AliPLC 演算法的引數量為 590k, 在主頻為 2GHz 的 Intel Core i5 四核機器上補償一幀 20ms 的音訊資料所需時間為 1.5ms, 在推演的過程中不產生任何延時。

3. 應用場景

4. 效果展示

下面分別對中文男女生測試語料的丟包補償前後效果進行展示。主觀聽感上,補償之後的語音卡頓減少,流暢度和清晰度都有明顯的提升。

中文男聲固定連續丟包60ms:

丟包音訊音訊

Webrtc neteq plc 補出音訊

opus plc 補出音訊音訊

AliPLC 補出音訊音訊

不同方法的波形圖對比:

從圖中可以明顯的看出,在固定丟包 60ms 時,經過 AliPLC 演算法處理後的音訊的連貫性更好,也不存在衰減等無法補償的情況。

中文女聲固定連續丟包120ms:

丟包音訊音訊

WebRTC neteq plc 補出音訊

opus plc 補出音訊音訊

AliPLC 補出音訊音訊

從圖中可以明顯的看出,在固定丟包 120ms 時,AliPLC 演算法的補償效果較其他演算法好一些;neteq_plc 演算法通過簡單的基因週期的重複和衰減完成丟包補償,在長時丟包發生時,聽起來有很重的機械音,而且會影響未丟包部分的波形;opus_plc 演算法的補償能力有限,只能有效補償 40ms 左右,多於 40ms 的丟包會被衰減為靜音。

AliPLC 客觀指標評測

我們採用 POLQA 和 STOI 兩種客觀指標對不同 PLC 演算法的補償效果進行了測評,在不同丟包率下它們的分數如下圖所示。其中橫座標表示丟包率,縱座標表示分數。POLQA 分數的取值範圍為 0-4.5,STOI 分數的取值範圍為 0-1,兩種客觀指標的分數越高,說明補償後語音訊號的質量越好,可懂度越高。

從圖中可以明顯的看出 AliPLC 演算法在 POLQA 和 STOI 兩種客觀指標上都優於其他 PLC 演算法。AliPLC 演算法與 neteq_plc 演算法相比:POLQA 平均提升 0.54 分 ,STOI 平均提升 21.7%;AliPLC 演算法與 opus_plc 演算法相比:POLQA 平均提升 0.45 分 ,STOI 平均提升 3.4%; AliPLC 演算法在丟包 30% 時的指標比 neteq_plc 演算法在丟包 20% 時的指標還要好一些,即 AliPLC 演算法可以使接受側多抗 10%-20% 的丟包。

AliPLC 補償演算法的後續創新

AliPLC 作為阿里雲視訊雲音訊技術團隊音訊解決方案的一部分,充分利用深度學習中 GAN 網路能夠有效地生成高質量的音訊這一能力,在方法上進行創新,用較低的計算複雜度,提供連續丟包補償的能力,提升使用者在弱網環境下的通話體驗。在未來,阿里雲視訊雲音訊技術團隊將繼續探索基於深度學習 + 訊號處理的的音訊技術,為更廣泛的使用者創造極致的音訊體驗。

參考文獻
[1] S. M. Kay and S. L. Marple, “Spectrum analysis A modern perspective,” Proceedings of the IEEE, vol. 69, no. 11, pp. 1380–1419, 1981.
[2] C. A. Rodbro, M. N. Murthi, S. V. Andersen, and S. H. Jensen, “Hidden Markov model-based packet loss concealment for voice over IP,” IEEE Transactions on Audio, Speech, and Language Processing, vol. 14, no. 5, pp. 1609–1623, 2006.
[3] M. M. Mohamed and B. W. Schuller, “ConcealNet: An End- to-end Neural Network for Packet Loss Concealment in Deep Speech Emotion Recognition,” arXiv:2005.07777 [cs, eess], May 2020, arXiv: 2005.07777.
[4] F. Stimberg et al., "WaveNetEQ — Packet Loss Concealment with WaveRNN," 2020 54th Asilomar Conference on Signals, Systems, and Computers, 2020, pp. 672-676.
[5] S. Pascual, J. Serra, and J. Pons, “Adversarial Auto-Encoding for Packet Loss Concealment,” arXiv:2107.03100 [cs, eess], Jul. 2021, arXiv: 2107.03100.
[6] J. Wang, Y. Guan, C. Zheng, R. Peng, and X. Li, “A temporal-spectral generative adversarial network based end-to-end packet loss concealment for wideband speech transmission,” The Journal of the Acoustical Society of America, vol. 150, no. 4, pp. 2577–2588, Oct. 2021.
[7] O. Ronneberger, P. Fischer, and T. Brox, “U-Net: Convolutional Networks for Biomedical Image Segmentation,” arXiv:1505.04597 [cs], May 2015, arXiv: 1505.04597 version: 1.
[8] A. Marafioti, N. Perraudin, N. Holighaus, and P. Majdak, “A context encoder for audio inpainting,” IEEE/ACM Transactions on Audio, Speech, and Language Processing, vol. 27, no. 12, pp. 2362–2372, 2019.

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

相關文章