zt3ff3n 发表于 2022-2-16 14:14

如何通过生成对抗网络实现实时语音驱动人像模拟真人说话

今天我们来聊聊 Agora Lipsync(唇音同步) 技术是如何通过深度学习算法的生成对抗网络实现无需打开摄像头,无需面部捕捉技术,只需上传一张/多张人脸头像就可以通过说话人的语音音频信号,来驱动静态人脸头像的嘴部运动。

在介绍 Agora Lipsync 技术前,我们先来简单了解下目前行业比较类似的两类技术:

Oculus Lipsync,OculusLipsync是一种 Unity 集成,用于将虚拟角色的唇部动作同步至语音。它主要是离线或实时分析音频输入,然后预测用于令虚拟角色或非玩家角色(NPC)嘴唇动画化的一组发音嘴型,为了提升音频驱动面部动画的准确性,Oculus Lipsync 利用一个神经网络模型来学习语音和音素之间的映射关系。通过模型把输入音频转为音素,音素能够对应到特定的视觉音素,再基于 Unity 集成技术实现虚拟角色嘴唇和面部的姿势和表达。该技术主要应用于虚拟主播与游戏领域。

面部捕捉技术,在当下很多发布会与活动会议都运用到了全息影像,嘉宾在舞台之外身穿特定的硬件设备,他的肢体动作与演讲的嘴型动作都会实时同步在舞台大屏幕中的虚拟形象中,其中想要实现唇音同步,就需要运用到关键的面部表情捕捉技术与相关的硬件设备。

相比这两种技术,声网的 Agora Lipsync 有着核心区别, Agora Lipsync 无需摄像头、无需面部表情捕捉技术,而是通过深度学习算法中的生成对抗网络,将中英文(或其他语种)发音的嘴型、面部表情智能关联起来,驱动人像模拟真人说话嘴型,支持2D人像图片和3D人像模型。

接下来,我们将重点揭秘 Agora Lipsync 实现语音驱动嘴型运动背后的技术原理。

生成对抗网络+模型轻量化实现语音信号驱动人像嘴型运动

语音驱动嘴型技术,顾名思义,通过说话人的语音音频信号,来驱动静态人脸头像的嘴部运动,使得生成的人脸头像嘴部状态与说话人的语音高度匹配。实时语音驱动人脸图像说话这项技术的实现需要克服诸多挑战,首先要找到语音信息和人脸信息之间的对应关系,音素是我们人说话的最小可发音单元,可以通过音素去找到对应的嘴型,但是发出相同音素的嘴型状态不止一个,再加上不同的人面部特征、说话状态也会存在差异,所以这是一个复杂的一对多问题。其次还会面临一些其他挑战,包括生成的说话人脸是否失真,以及说话人脸嘴型变化是否流畅等等。此外,如果是在低延时的实时互动场景下使用,还需要考虑计算量复杂度等问题。

图1:例如a这个音素,发音的嘴型张合程度都不是唯一的

传统的 Lipsync(唇音同步)方法可以通过语音处理结合人脸建模的方式实现,然而语音能够驱动的口型数量往往比较有限,而声网的 Agora Lipsync 通过深度学习算法,可以实现实时生成说话人脸图像。目前,深度学习算法随着数据规模的增加不断提升其性能,通过设计神经网络可以从数据中自动提取特征,削减了对每一个问题手动设计特征提取器的工作。深度学习目前已经在计算机视觉、自然语言处理等多个领域大放异彩。

在实现语音驱动人脸图像任务中,我们需要将语音一维信号映射到图像二维像素空间。声网使用了深度学习中的生成对抗网络(GAN),GAN的思想来自零和博弈理论,由两个部分组成,一个是生成器Generator,接收随机噪声或者其他信号用来生成目标图像。一个是判别器Discriminator,判断一张图像是不是“真实的”,输入是一张图像,输出是该图像为真实图像的概率。生成器的目标是通过生成接近真实的图像来欺骗判别器,而判别器的目标是尽量辨别出生成器生成的假图像和真实图像的区别。生成器希望假图像更逼真判别概率高,而判别器希望假图像再逼真也可以判别概率低,通过这样的动态博弈过程,最终达到纳什均衡点。大自然里就存在很多生成对抗的例子,在生物进化的过程中,被捕食者会慢慢演化自己的特征,从而达到欺骗捕食者的目的,而捕食者也会根据情况调整自己对被捕食者的识别,共同进化。

基于GAN的深度神经网络训练完成之后,生成器可以将输入信号转化并生成逼真的图像。对此,声网设计了针对语音驱动图像任务的深度学习模型,利用大规模视频语料数据,使得模型可以根据输入的语音生成说话人脸。模型内部对输入的语音与图像两种不同模态的信号进行特征提取,得到相应的图像隐向量与语音隐向量,并进一步学习到两种跨模态隐向量之间的隐式映射关系,从而根据这种关系将隐向量特征重建成为和原始音频相匹配的说话人脸图像。除了生成图像是否逼真,还要考虑时序稳定性和音画匹配度,对此我们设计了不同的损失函数在训练中加以约束。整个模型推理计算过程是端到端实现的。

同时,Agora Lipsync 还适配中、日、德、英文等多语种语音以及多种肤色人群,满足不同国家与地区的用户体验。

我们可以通过下方的图2更直观的了解生成对抗网络是如何端到端地学习生成说话人脸头像。

图2可以分为4个流程:1、深度学习模型中的 Generator 生成器接收一张人脸图像和一小段语音,经过生成器内部的特征提取与处理生成一张伪造的人像图片(Fake image)。2、图中的“Real

Data”指的是用于训练的视频序列,从中取出和 Audio 相匹配的目标图像。将目标图像和 Generator 生成的 Fake Image 比较它们的差异,根据损失函数通过反向传播进一步更新生成器中的模型参数,从而让生成器学习得更好,生成更加逼真的 Fake Image;3、比较差异的同时,将 Real Data 中的目标图像与 Fake Image 输入到 Discriminator 判别器中,让判别器学习区分真伪;4、整个训练过程中生成器与判别器相互对抗,相互学习,直到生成器和判别器的性能达到一种平衡状态。最终生成器将会生成更为接近真实人脸嘴型状态的图像。


图2:生成对抗网络如何生成对应的人脸图像

深度学习模型可以端到端的生成说话人脸图像,但是往往计算量和参数量较大,由于存储和功耗的要求,在低资源下实时应用该算法仍然具有一定的挑战性。目前常用的一些模型轻量化技术有人工设计轻量化结构、神经架构搜索、知识蒸馏以及模型剪枝等等。在 Agora Lipsync 的语音驱动嘴型任务中,声网设计的模型本质上是一个图像生成模型,体量相对较大,我们通过模型轻量化技术,设计了端到端的轻量化语音驱动图像模型,只需要传输语音流就可驱动静态图像生成说话人脸,在保证效果的基础上大大地缩小了模型的计算量和参数量,从而满足移动端的落地需求,通过输入语音信号,能够实时驱动一张静止人脸图像产生嘴部运动,达到音画同步的效果。

介绍完 Agora Lipsync 的技术原理,我们再来看它的应用场景有哪些,相比于元宇宙虚拟世界与真实的视频社交场景,Agora Lipsync 填补了在语音社交场景,不打开摄像头,却能体验真人视频连麦既视感的场景玩法空白,在语聊房、互动播客、视频会议等场景中具有巨大的应用价值。

语聊房:在传统的语聊房中,用户通常会选择真人头像或者虚拟的头像进行语音连麦,往往需要通过有话题性、趣味性的聊天内容才能保障语聊房间的内容质量与时长性,而通过加入语音驱动嘴型运动的技术,可以在形式上让聊天过程更具生动性与趣味性,对于不想打开摄像头的玩家,可以选择一张自己好看的或者搞怪的照片作为头像,这样大家不打开摄像头,也能看到彼此的人脸头像仿佛在真实的说话,最终增加了玩家在语聊房中进一步聊天的动力。

互动播客:去年以Clubhouse为代表的互动播客平台曾风靡全球,相比传统的语聊房,互动播客平台的话题内容、用户关系有着明显的差别,播客房间的聊天话题主要以科技、互联网、职场、创业、股市、音乐等话题为主,用户上传自己真人头像的意愿也非常高,通过加入语音驱动嘴型运动技术,可以让用户之间的聊天更具参与感与真实感。

视频会议:在视频会议场景中往往都会要求参会用户尽量都打开摄像头,然而经常会遇到部分用户不方便打开摄像头,造成有人开视频、有人开语音的会议场景,通过 Agora Lipsync 一方面可以让无法打开摄像头的用户避免尴尬,通过驱动人脸头像的嘴部运动营造出仿佛是真人参加视频会议的场景感。另一方面,通过语音驱动人脸说话的方式,视频会议传输可以不用传输视频流,只需要语音流,特别是在弱网条件下,不仅避免了画面卡顿或延迟,同时也减少了传输成本。

目前 Agora Lipsync 技术主要支持2D人像图片和3D人像模型,未来在声网算法团队的持续钻研下,该技术也将进一步升级,不仅可以支持卡通头像,还有望通过语音进一步驱动头部、眼睛等器官的运动,实现更广泛的应用场景与场景价值。

如您想进一步咨询或接入 Agora Lipsync 技术,可通过声网的微信公众号找到这篇文章,点击文章最下方的「阅读原文」留下您的信息,我们将与您及时联系,做进一步的沟通。
页: [1]
查看完整版本: 如何通过生成对抗网络实现实时语音驱动人像模拟真人说话