语音通话、线上会议、直播连麦——在丰富的互动场景中,实时音视频RTC技术扮演着重要角色。人们对线上的需求也在不断增加:如何降低延时,避免同时说话的尴尬?能否减少卡顿,像线下交流一样顺畅?
在弱网环境下,流畅的语音通话体验、清晰的视频画质等相关问题是RTC场景重点关注方向,低码率高质量的实时音视频方案成为了提升用户体验的关键技术。快手音视频技术团队自研AI生成压缩算法AI语音编解码器KISC(Kuaishou Intelligent Speech Codec),实现超低码率实时音视频,并在直播、会议等多个场景进行落地应用。
01
快手AI生成压缩算法
传统的压缩方向分为编码压缩算法与AI编码压缩算法。编码压缩算法将图像分块并找到最相似的参考块,计算当前块和参考块的相对位移,可保障实时性,但无法实现超低码率。AI编码压缩算法为网络端到端的输出图像,对像素进行预测或变换,计算复杂度高,可实现超低码率,但无法保障实时性。
面对如何在保障实时性的同时,实现超低码率,快手音视频技术团队自研AI生成压缩算法,基于AI深度神经网络,赋能音视频压缩技术,支持视频的超低码率传输,并通过模型和工程等多方面的速度和性能优化,实现实时视频通话。
快手AI生成压缩算法总览
下图呈现了快手AI生成压缩算法流程,其方法为将图像视为整体,提取关键点,基于参考帧和关键点生成图像。
图1:快手AI生成压缩算法总览
预处理:提取参考帧f0的图像特征d,提取参考帧的三维关键点k0
发送端:提取当前帧fn的三维关键点kn
接收端:通过参考帧关键点k0、当前帧关键点kn计算光流场m,根据光流场m对图像特征d进行warp,使用warp后的特征生成当前帧
快手AI生成压缩算法有两个优势,一方面,压缩的码率可以突破传统压缩技术的极限,在超低码率场景有更佳的性能表现;另一方面,通过压缩获得的模型特征可用于更丰富的合成算法,衍生出创意玩法。
超低码率
AI生成压缩算法在实时发送的过程中,网络只需要传输关键点,接收端就可以生成高清图像。当帧率为15fps时,带宽仅为14.4kbps,从而实现超低码率视频通话。
在下方对比视频中,相较于H.264标准编码的144kbps(10倍码率)视频,AI生成算法压缩视频的主观画质表现相当。
左:H.264标准编码视频,码率为144kbps
右:AI生成压缩视频,码率为14.4kbps
创意玩法
AI生成算法不仅能支持超低码率的视频压缩,还可以在实际应用场景中实现多种酷炫玩法,如视角调整、更换背景、换脸特效等。
  • 视角调整:用户在解码端手动编辑三维关键点,通过旋转关键点就能够让人脸图像从侧面的视角调整为正面;
  • 更换场景:用户将参考帧更换为其他场景图像,接收端能够生成在该场景下的新图像;
  • 换脸特效:当用户将参考帧更换为其他人脸图像,接收端就会生成相同表情动作的换脸图像。
02
快手AI语音编解码器KISC
在音频方向上,为了解决弱网RTC场景下的语音通信问题,快手音视频技术团队自研一种基于深度学习的低码率高音质的智能语音编码系统KISC(Kuaishou Intelligent Speech Codec),该系统利用端到端深度学习编码网络实现了6kbps码率下的高音质语音编解码,在该码率下的音质相对于传统编解码器Opus具有明显的优势,极大程度优化编码效率,节省带宽资源。
语音编码技术
语音编码技术的核心目标是使用较少信息表征发送端采集到的语音数字信号,同时保证接收端能够利用有限的信息对语音信号进行良好的重建。传统的编码方法可以分为波形编码、参数编码和混合编码等方案,其基本原理是利用编解码器提取语音信号中的关键特征(如离散余弦变换参数,线性预测参数等),并使用较低的码率对该特征进行表征,随后使用解码器基于以上特征恢复语音信号。经过数十年的发展历程,基于传统编码方法的编解码器已有许多优秀的编码方案,如G.722、EVS、Opus等。
其中,Opus编解码器作为在RTC领域应用最为广泛的编码方案之一,能够在20kbps码率下实现较高的语音通话音质,但对于语音编码带宽受限的场景下(如6kbps码率)依然难以保证良好的通话体验。
随着人工智能技术的发展,业界逐渐开始将深度神经网络引入语音编码系统,形成了AI语音编码系统。
AI语音编解码器的原理框图如下图所示,利用传统的信号处理或神经网络提取音频信号中的关键信息并对其进行编码,然后在解码端对编码的特征信息进行解码,并基于该特征信息利用神经网络重建高音质语音信号。由于AI网络极强的非线性建模能力,该方法具备从语音信号中抽象得到极少关键信息并重建语音信号的额能力,因此可以实现低码率高音质的语音编解码。
图2:AI语音编解码系统原理框图
根据技术方案的差异,AI语音编解码器可分为类声码器的语音编码方案和端到端的语音编码方案。其中,类声码器的编码方案一般在编码端利用传统信号处理方法来提取音频信号特征信息(如梅尔谱参数等),然后在解码端根据该特征使用声码器或其改进的网络结构进行语音重建。
这种方案的特点是仅在解码端引入深度神经网络,由于神经网络对系统计算资源的消耗较大,该方案会导致解码端复杂度过高,这在解码端接收到多路语音码流同时解码时会对CPU计算能力造成极大挑战。
而端到端的方案在编码端使用神经网络对信号进行特征提取,利用网络的建模能力和数据驱动的学习过程获得从语音信号中提取关键信息的能力,可实现编解码端计算复杂度的均衡,甚至将计算复杂度更多的分配到编码端,这种技术路线能够很好地解决解码侧计算压力过大的问题。
快手AI语音编解码器KISC
快手AI语音编解码器KISC采用了业界领先的编解码网络结构,利用数百小时的语音信号对模型进行训练,在编码端通过神经网络提取表征语音信号的关键特征向量,同时,利用经典数据压缩方法对特征向量进行压缩编码,在解码端解码特征向量并通过网络解码重建高音质语音信号。由于端到端语音编解码方案的技术特点,KISC实现了将计算复杂度更多的分配在编码端,从而减轻解码端计算复杂度压力,利于实现多路接收码流同时解码。
下图所示,KISC 6kbps与Opus 6kbps和Opus 20kbps码率下,对同一段语音信号进行编解码后重建信号的语谱图对比:
图3:原始信号、Opus 6kbps、KISC 6kbps、
Opus20kbps码率编解码重建信号语谱图
相较于原始语音信号,Opus的6kbps码率不仅带宽受限,重建信号与原始信号语谱图之间的相似度也非常低,出现语谱模糊、共振峰间噪声明显等问题。而KISC的6kbps和Opus的20kbps编解码重建信号语谱图与原始信号拥有较高的相似度,尤其在2kHz以下低频段范围内,共振峰重建的相似度很高。
如下为上述四张语谱图对应的音频信号,从音频的主观听感上可以感受到,KISC 6kbps的音质相较于Opus 6kbps有着明显优势,可与Opus 20kbps媲美。
团队对Opus 6kbps、Opus 20kbps和KISC 6kbps的语音编解码重建信号进行了MUSHRA主观评测,结果如下图,可以看到KISC 6kbps得分接近Opus 20kbps,明显好于Opus 6kbps。
图4:MUSHRA音质主观测试平均分
03
工程化实现
团队通过生成关键数据,并对其进行传输,成功复原为图像与声音。在保证了可行性的基础上,将该算法在Mac OS上进行了工程化。由于算法流程繁琐、计算复杂度高、桌面端算力小、CoreML不支持非标准算子等因素,算法的性能大打折扣,影响音视频通话的实时性。
而后,团队对模型进行了优化,并充分利用GPU,逐步提升了算法效率,以保证音视频通话的实时性:
  1. 对整个模型的网络结构重新设计,新模型计算量降低75%。
  2. 将网络结构中的3D卷积层等价替换为2D卷积层,进一步降低模型计算量。
  3. 新的模型网络结构中,存在一些自定义层(Custom Layer),这些非标准结构的算子无法直接通过CoreML来计算、推理。通过将算子编写为Metal kernel,并集成进CoreML,实现了CoreML对自定义层的支持,充分利用GPU来加速自定义层的计算。
伴随音视频场景多样化,RTC技术拥有广阔的需求空间。在硬件计算能力和深度神经网络算法飞速提升的背景下,基于AI深度神经网络的技术将会逐渐得到实践与应用,在编解码效率方向上实现突破。快手超低码率实时音视频也逐步落地在直播连麦PK、线上会议等场景,为弱网下实时通讯的用户体验提供最佳保障。
*本文中涉及素材仅作效果演示。
欢迎加入
快手音视频技术团队由业界资深的专家组成,通过工程建设、算法优化,结合数据驱动、专业质量评测及产品化的手段为用户打造极致的体验。团队自2016年成立以来,已经建立起了业界领先的短视频+直播技术体系,支撑快手在国内、海外的数亿用户。
在这里你可以:
  • 接触世界最前沿的音视频技术
  • 在丰富的应用场景中大展身手
  • 和行业里最优秀的同学们并肩作战
我们期待你的加入!请发简历到:
继续阅读
阅读原文