腾讯游戏开发精粹Ⅱ
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

4.2 问题背景与研究现状

本节主要包含两部分:第一部分为数字人尤其是实时驱动的数字人发展背景,第二部分为语音驱动面部动画算法综述。

4.2.1 问题背景

2018年3月,由Epic Games和腾讯公司联合研发的实时高保真数字人Siren亮相GDC(Game Developers Conference,游戏开发者大会),并立刻凭借其前所未有的逼真实时渲染效果,引起了游戏、电影甚至人工智能等各个领域的关注和讨论,成为会议的焦点之一。这标志着实时高保真数字人技术达到了一个新的高度,人们看到了跨越“恐怖谷”的可能及实时数字人技术的更为广阔的应用可能。

2009年,詹姆斯·卡梅隆指导的科幻电影《阿凡达》(Avatar)上映,出色的视觉效果不仅让全世界惊叹,更让全世界开始了解、关注动作捕捉技术,Avatar甚至有了新的含义。传统的动作捕捉技术通过视觉或惯性传感器捕捉演员的表情和动作,将捕捉到的数据映射到角色模型上,生成角色动画,再经过动画师清理精修,形成最终产品质量的动画。Siren更是采用了高精度的实时动作捕捉技术,实现了虚拟角色的Live表演。然而,传统动作捕捉技术虽然对影视、游戏、虚拟角色等行业有着重要意义,但是精度较高的动作捕捉设备普遍笨重,需要复杂的校准和特制的空间,需要演员来驱动,从而大大限制应用范围,尤其是在一些需要交互的场合。

随着语音处理、自然语言理解等众多领域的技术快速发展,越来越多的基于语音交互的产品和娱乐方式出现在日常生活当中。为此,我们提出以下设想:是否可以用语音来驱动高保真数字人呢?如果可以成功,一方面,语音驱动相比动作捕捉更加轻量,要求和限制也更少,可以增加数字人的应用范围;另一方面,逼真的数字人形象可以让用户在使用各种产品时拥有更加生动的交互体验。

4.2.2 相关算法

语音驱动面部动画技术(也被称为Lip Sync、Talking Head等)大致可以分为3类:基于Procedural(程序化)或规则的方法、基于数据驱动的方法和近年来快速发展的基于深度学习的方法。

基于Procedural或规则的方法通常首先将输入语音划分为语音片段,每个片段都被转化为音素序列,然后根据提前定义好的规则或查找表将这些音素映射为Viseme(视位)。Viseme是可视化音素的简称,指的是音素所对应的嘴部形状。这类方法快速简单,但往往缺少一些丰富的动画细节。

基于数据驱动的方法需要构建一个大规模动画库,根据某种度量来选择脸部动画片段并进行光滑组合,从而得到最终的动画数据。

近年来,随着深度学习技术在计算机视觉、语音和自然语言处理等多个学术领域和技术领域不断取得进展,越来越多的人开始探索和尝试利用深度学习技术来解决以往传统方法不容易解决的问题,而语音驱动这样的一个多模态问题就是其中一类问题。

来自西北工业大学和微软亚洲研究院研究者的论文[1]考虑到语音驱动人脸动画(动画参数)本质上是一个Seq2Seq(Sequence to Sequence,序列到序列)的问题,提出了一种基于RNN(Recurrent Neural Network,循环神经网络)的语音驱动人脸动画的方案。通过记录多人讲话的语音与视频数据,将这些数据转化为对应的声学特征与视觉特征从而构造训练数据集。具体地,首先通过语音识别得到音素标签作为声学特征,通过AAM(Active Appearance Model,主动外观模型)提取视频中人脸的下半张脸区域的特征参数作为视觉特征。然后利用一个BLSTM(Bidirectional Long Short-Term Memory,双向长短期记忆)模型来学习音素序列到AAM参数的映射关系。在生成阶段,给定一段语音,先通过语音识别提取音素序列,再通过训练得到的模型预测AAM参数,从而得到人脸动画序列。

东安格利亚大学和加州理工学院联合发表的论文[2]和上述论文的解决思路基本一致,都是基于深度神经网络学习音素到面部AAM参数的映射关系。但为了更好地解决语音驱动中存在的Coarticulation(协同效应),根据语言学理论,该论文在声学特征提取阶段进行了改进:①改用滑动窗口的方式来提取声学特征,从而自适应地考虑音素所在的上下文环境,提高了参数预测准确率;②增加了音素在上下文中持续的帧数;③音素属性类别;④音素转移位置。

以上两种方法所驱动的仍然是基于图像的人脸表示,并不是真正的3D人脸模型表示,因此不适用于驱动数字人。

2017年,英伟达研究院发表的论文[3]提出了一种端到端(End to End)方式的语音驱动3D人脸方法。首先借助4D人脸扫描设备进行人脸几何扫描,构造一个语音-人脸顶点位置训练数据集。然后训练一个神经网络根据语音直接预测人脸3D模型的顶点位置偏移,从而直接得到人脸动画。虽然这一方法可以实现语音驱动面部的功能,但是存在一定的限制:神经网络作为驱动模型直接预测人脸模型的顶点位置,当模型精度比较高时,输出的维度达到几千甚至上万。这么多参数无论是对数字人的表情控制还是结果理解,都有一定难度。尤其给动画师修改数字人动画造成了比较大的困难。这就导致该方法无法很好地和现有数字人与游戏制作管线兼容。

与英伟达研究院发表的论文类似,德国马克斯·普朗克智能系统研究所发表的论文[4]同样采用了语音直接预测3D人脸模型位置的处理流程,因此也无法很好地接入游戏制作管线。

和本章方法原理最接近的论文是由马萨诸塞大学阿默斯特分校和多伦多大学研究者联合发表于2018年的论文[5]。他们首先在2016年提出了一个同时考虑FACS(Facial Action Coding System,面部表情编码系统)和心理语言学的脸部绑定系统JALI(JAw and LIp)[6],然后基于此系统,训练了一个三阶段LSTM(Long Short-Term Memory,长短期记忆)神经网络——音素识别、人脸关键点检测和视位识别,最终将输入语音映射为JALI系统的动画参数。具体地,第一阶段将音素分为20组;第二阶段通过检测与嘴唇和下巴相关的关键点来确定语音对应的动画风格和情感强度;第三阶段利用检测结果和语音预测最终的视位(20类)。此外,利用一组强度值和JALI系统中的关键参数来进一步控制口型。

4.2.3 本章主要内容

本章主要内容集中在4.3~4.6节。4.3节介绍语音驱动高保真数字人问题,首先分析如何将这一问题转化为传统的机器学习流程,然后介绍处理流程中的各个模块的实现。4.4节论述一种基于深度学习语音识别的语音驱动数字人方法,首先分析基线方法的不足,然后介绍语音识别技术的引入,提取更加有效的声学特征,提升语音驱动面部动画的质量,同时拓宽了这一技术的应用范围。4.5节介绍如何从单一中立表情的语音驱动扩展到多情绪语音驱动,主要包括多情绪语音-动画数据集的采集和驱动模型的改进。4.6节介绍基于语音驱动数字人技术的两个应用:一种人工智能可视化方案和一种语音驱动角色动画的游戏开发工具。