开发者社区> 视频云小助手> 正文

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. 


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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
19079 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
28300 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
13205 0
阿里云服务器安全组设置内网互通的方法
虽然0.0.0.0/0使用非常方便,但是发现很多同学使用它来做内网互通,这是有安全风险的,实例有可能会在经典网络被内网IP访问到。下面介绍一下四种安全的内网互联设置方法。 购买前请先:领取阿里云幸运券,有很多优惠,可到下文中领取。
22183 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
20277 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
15765 0
250
文章
2
问答
来源圈子
更多
+ 订阅
相关文档: 云会议 智能视觉 音视频通信
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载