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

4.5 多情绪语音驱动数字人

当完成了4.3节和4.4节中提出的中立表情的语音驱动高保真数字人之后,进一步提出假设,是否可以借助语音让数字人做出不同的面部表情呢?

本节提出了如图4.14所示的整体方案,方案的两部分主体仍然是多情绪数据采集和模型训练。

图4.14 多情绪语音驱动数字人方案示意图(图中人物为动作捕捉演员孙笑愚)

4.5.1 多情绪语音-动画数据集设计与采集

和前面解决数字人口型驱动问题的思路一致,首先进行训练数据的采集和制作。

如图4.15所示,在动作捕捉场地内,动作捕捉演员按照制作的台本和规定的情绪去表演内容,同时相关设备记录下演员的面部表演视频和声音,以及对应的情绪标签。具体地,一共采集了4类情绪视频和语音数据,分别是中立、高兴、悲伤和愤怒。获取到这些原始数据后,对于每种情绪的表演视频,分别单独制作了解算器,用来计算不同情绪的动画控制器数据。数据的其他处理过程与4.3节和4.4节的方法流程一致。这样就得到了一个多情绪语音-动画数据集。

图4.15 多情绪语音-动画数据集采集流程示意图(图中人物为动作捕捉演员孙笑愚)

当制作完多情绪语音-动画数据集后,需要训练语音驱动模型。

4.5.2 模型训练

多情绪语音驱动模型基本沿用了基于PPG特征的任意人、多语言驱动模型的架构,只是在输入端增加了一个输入源——情绪标签。采用一个4D向量来表示情绪标签,对于某一种情绪,在对应位置上置“1”,而其余位置上置“0”。其余仍然沿用相同的模型架构。

4.5.3 结果与分析

下面分别是在不同情绪标签下,语音驱动数字人Matt的结果(注:图片结果来自虚幻引擎4的渲染结果截屏)。

图4.16所示为“高兴”标签下的驱动结果。

图4.17所示为“难过”标签下的驱动结果。

图4.16 “高兴”标签下的驱动结果

图4.17 “难过”标签下的驱动结果

图4.18所示为“生气”标签下的驱动结果。

图4.18 “生气”标签下的驱动结果