AliPLC 智能丢包补偿算法,提升弱网环境的通话质量

简介: 带来更流畅的通话体验

在线视频/语音通话逐渐成为人们日常生活的一部分,而复杂多变的网络环境会导致部分音频包无法传送到接收端,造成语音信号的短时中断或者卡顿,这会严重影响通话体验,为解决这类问题,阿里云视频云音频技术团队在综合考虑效果、性能开销、实时性等诸多因素后,研发了实时因果的智能丢包补偿算法 AliPLC (Ali Packet Loss Concealment),采用低复杂度的端到端的生成对抗网络来解决语音在传输过程中的丢包问题。


实时通信中,信号不好怎么办?

随着互联网技术的飞速发展,直播,在线教育,音视频会议,社交泛娱乐,互动游戏等新兴的交互方式正在改变着人们的生活。值得一提的是,它们的兴起都离不开实时通信技术 (Real Time Communication, RTC) 的发展。图 1 展现了 RTC 通信中音频链路的简要流程,主要包含:采集、前处理 (3A)、编码、传输、解码、丢包补偿、混音、播放等环节。

1.png

图 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. 应用场景

表哥.png


4. 效果展示

下面分别对中文男女生测试语料的丢包补偿前后效果进行展示。主观听感上,补偿之后的语音卡顿减少,流畅度和清晰度都有明显的提升。


中文男声固定连续丢包60ms:

丢包音频音频

Webrtc neteq plc 补出音频

opus plc 补出音频音频

AliPLC 补出音频音频


不同方法的波形图对比:

2.png

从图中可以明显的看出,在固定丢包 60ms 时,经过 AliPLC 算法处理后的音频的连贯性更好,也不存在衰减等无法补偿的情况。


中文女声固定连续丢包120ms:

丢包音频音频

WebRTC neteq plc 补出音频

opus plc 补出音频音频

AliPLC 补出音频音频

3.png

从图中可以明显的看出,在固定丢包 120ms 时,AliPLC 算法的补偿效果较其他算法好一些;neteq_plc 算法通过简单的基因周期的重复和衰减完成丢包补偿,在长时丢包发生时,听起来有很重的机械音,而且会影响未丢包部分的波形;opus_plc 算法的补偿能力有限,只能有效补偿 40ms 左右,多于 40ms 的丢包会被衰减为静音。


AliPLC 客观指标评测

我们采用 POLQA 和 STOI 两种客观指标对不同 PLC 算法的补偿效果进行了测评,在不同丢包率下它们的分数如下图所示。其中横坐标表示丢包率,纵坐标表示分数。POLQA 分数的取值范围为 0-4.5,STOI 分数的取值范围为 0-1,两种客观指标的分数越高,说明补偿后语音信号的质量越好,可懂度越高。

4.png

从图中可以明显的看出 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.


「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实践技术文章,在这里与音视频领域一流工程师交流切磋。公众号后台回复【技术】可加入阿里云视频云产品技术交流群,和业内大咖一起探讨音视频技术,获取更多行业最新信息。

相关文章
|
15天前
|
存储 算法 安全
2024重生之回溯数据结构与算法系列学习之串(12)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丟脸好嘛?】
数据结构与算法系列学习之串的定义和基本操作、串的储存结构、基本操作的实现、朴素模式匹配算法、KMP算法等代码举例及图解说明;【含常见的报错问题及其对应的解决方法】你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
2024重生之回溯数据结构与算法系列学习之串(12)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丟脸好嘛?】
|
15天前
|
算法 安全 搜索推荐
2024重生之回溯数据结构与算法系列学习(8)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第2.3章之IKUN和I原达人之数据结构与算法系列学习x单双链表精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
15天前
|
存储 算法 安全
2024重生之回溯数据结构与算法系列学习之顺序表【无论是王道考研人还真爱粉都能包会的;不然别给我家鸽鸽丢脸好嘛?】
顺序表的定义和基本操作之插入;删除;按值查找;按位查找等具体详解步骤以及举例说明
|
15天前
|
算法 安全 搜索推荐
2024重生之回溯数据结构与算法系列学习之单双链表精题详解(9)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第2.3章之IKUN和I原达人之数据结构与算法系列学习x单双链表精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
15天前
|
存储 Web App开发 算法
2024重生之回溯数据结构与算法系列学习之单双链表【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构之单双链表按位、值查找;[前后]插入;删除指定节点;求表长、静态链表等代码及具体思路详解步骤;举例说明、注意点及常见报错问题所对应的解决方法
|
15天前
|
算法 安全 NoSQL
2024重生之回溯数据结构与算法系列学习之栈和队列精题汇总(10)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第3章之IKUN和I原达人之数据结构与算法系列学习栈与队列精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
15天前
|
算法 安全 NoSQL
2024重生之回溯数据结构与算法系列学习之顺序表习题精讲【无论是王道考研人还真爱粉都能包会的;不然别给我家鸽鸽丢脸好嘛?】
顺序表的定义和基本操作之插入;删除;按值查找;按位查找习题精讲等具体详解步骤以及举例说明
|
15天前
|
存储 算法 安全
2024重生之回溯数据结构与算法系列学习【无论是王道考研人还真爱粉都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构的基本概念;算法的基本概念、特性以及时间复杂度、空间复杂度等举例说明;【含常见的报错问题及其对应的解决方法】
|
25天前
|
存储
基于遗传算法的智能天线最佳阵列因子计算matlab仿真
本课题探讨基于遗传算法优化智能天线阵列因子,以提升无线通信系统性能,包括信号质量、干扰抑制及定位精度。通过MATLAB2022a实现的核心程序,展示了遗传算法在寻找最优阵列因子上的应用,显著改善了天线接收功率。
|
1月前
|
算法 API 计算机视觉
人脸识别笔记(一):通过yuface调包(参数量54K更快更小更准的算法) 来实现人脸识别
本文介绍了YuNet系列人脸检测算法的优化和使用,包括YuNet-s和YuNet-n,以及通过yuface库和onnx在不同场景下实现人脸检测的方法。
31 1