HBF Talk: Speech-Driven 3D Facial Animation Synthesis Research
In recent years, speech-driven 3D facial animation has been widely studied. Previous work on the generation of coherent 3D facial animations was reported from speech data. However, the generated 3D facial animations lacks realism and vividness due to the scarcity of audio-visual data, and the accuracy of lip movements is not sufficient. This work is performed in order to improve the accuracy and vividness of lip movement and an end-to-end neural network model, HBF Talk, is proposed. It utilizes the Hu BERT (Hidden-Unit BERT) pre-trained model for feature extraction and encoding of speech data. The Flash module is introduced to further encode the extracted speech feature representations, resulting in more enriched contextual representations of speech features. Finally, a biased cross-modal Transformer decoder is used for decoding. This paper conducts both quantitative and qualitative experiments and compares the results with existing baseline models, demonstrating the proposed HBF Talk model outperforms previous models by improving the accuracy and liveliness of speech-driven lip movements.
Hu BERT
由于3D面部动画在虚拟现实、电影制作和游戏等领域中的广泛应用,近几十年来一直是一个非常活跃的研究课题。语音和面部动画(尤其是嘴型动画)之间的高度相关性,使得用语音驱动面部动画成为可能。早期人们提出在音素和它们的视觉对应物(即视素)之间建立复杂的映射规则,但是性能有限。随着深度学习的进步,用深度学习的方法来学习语音和面部动画之间的关系成为一种高效且便捷的方法。然而由语音生成准确的面部动画(尤其是嘴形动画)也是一个挑战。本文提出了一个全新的端到端的神经网络模型HBF Talk,能更好地建模语音和嘴唇运动之间的关系,生成较为准确的嘴唇运动。
早期,语音驱动的3D面部动画主要是基于语言学的方法,即在音素和它们的视觉对应物(即视素)之间建立了一套复杂的映射规则
2017年,Zhang等人
近几年来,研究人员更加关注上下文信息,语音驱动的3D面部动画更加连贯并且细节越来越好,主要贡献如下。
近些年的方法主要是从语音中重建人脸动画,具有更加直观的表现形式,而且从不同角度探索了语音与3D人脸动画之间的关系。与本文工作密切相关的是Face Former和Code Talker,它们在语音驱动表情这一任务上有较好的结果,与他们不同的是,本文采用了自监督预训练语音模型Hu BERT (Hidden-Unit BERT),并引入Flash模块来提取更为丰富的语音上下文表示。
本文提出的模型HBF Talk (如
(1)
其中θ表示模型参数,t是序列中的当前时间步长, 。
我们提出的方法在编码器中有效地采用了最先进的自监督预训练语音模型Hu BERT,用于语音驱动3D面部动画生成的下游任务。由于Hu BERT模型能够学习并产生结合声学和语言信息的连续音频流的高质量离散隐藏表示,因此Hu BERT的作者提出可以将Hu BERT预训练的隐藏层表示用于各种下游任务
在本文的方法中,采用具有100 M个参数的Hu BERT下游任务微调模型,在最后一个隐藏状态下产生768维的嵌入。初始化预训练权重参数,不冻结Hu BERT中的任何层,在预训练权重参数下进行微调。
(2)
其中 是由原始音频序列χ经过处理之后得到的表示。
Flash
(3)
其中, ,是经过Speech Encoder和Flash处理后的语音上下文表示。
Motion Encoder的作用是将人脸顶点序列从人脸顶点维度转换到特征维度。Motion Decoder的作用是将预测的人脸顶点序列从特征维度转换到人脸顶点维度。这两部分主要是实现人脸顶点维度与特征维度之间的转换。
我们的解码器使用的是Transformer Decoder这一模块。在其中引入了Face Former
有偏置的自注意力机制是用于对输入的真实人脸顶点序列进行处理,由图1中的Biasa可知,该偏置不仅可以屏蔽预测帧之后的信息,而且对于过去的人脸顶点序列,将较高的注意力权重分配给较近的时间段,对于较远的时间段,则分配较低的注意力权重。较近时间段的人脸序列帧对当前帧影响较大。
有偏置的跨模态注意力机制如
(4)
其中t是序列中的当前时间步长, 是说话人n的说话风格嵌入, 。
在训练阶段,我们采用自回归方案代替Teacher-Forcing方案。并且在最后做了使用Teacher-Forcing方案训练的对比实验。在验证阶段,主要是使预测序列 与真实序列 之间的均方误差(MSE)尽可能的小。
重建损失如公式5所示。
(5)
其中的N代表的是三维面部网格的顶点数。
运动速度损失如公式6所示。
(6)
其中的N代表的是三维面部网格的顶点数。
(7)
其中 和 分别代表重建损失和运动速度损失的权重系数。
在推理阶段,模型自回归地预测3D人脸顶点序列。在每个时间步,它预测基于原始音频χ、之前的面部运动 和说话人的风格嵌入表示 的面部运动 ,如公式1所示。 由说话人的身份来确定,因此可以通过改变One-Hot身份向量来操纵不同说话人风格的输出。
本实验使用了一个公开可用的3D数据集VOCASET
我们将本文提出的HBF Talk端到端的神经网络模型与两种先进的方法Face Former
所有的模型训练都是在一个装有Linux系统的电脑上完成的,该电脑配备GEFORCE RTX 4070Ti显卡。模型训练的超参数见
超参数 | HBF Talk |
Optimizer | Adam |
Learning Rate | 1e−4 |
Number of Epochs | 100 |
Feature Dim | 64 |
Flash Layer Dim | 768 |
方法 | LVE↓ (×10−5mm) |
Face Former
|
4.1172 |
Code Talker
|
4.1476 |
HBF Talk (本文模型) | 3.6283 |
对于3D人脸的口型评估,本文遵循Face Former
本文的定量评估实验结果如
我们直观地比较了本文提出的方法与其他竞争者的方法。为了确保比较的公平性,我们将相同的讲话风格分配给Face Former、Code Talker和本文提出的HBF Talk作为条件输入。为了比较嘴唇和语音的同步情况,我们举例说明了五个典型的合成人脸动画序列帧,它们在特定的音节上说话。这五个合成人脸动画序列帧如
由
为了分析本文提出的模型中的各个模块对模型整体效果的贡献,首先对Hu BERT预训练模型各层是否冻结预训练参数进行了研究,然后通过去掉或者替换模型中的某一模块来分析模型中的每一模块对生成的3D面部动画质量的影响。
本文进行了大量的实验来研究和优化Hu BERT在HBF Talk编码器中的作用。该消融实验是通过冻结Hu BERT模型在各个层的预训练参数来研究其作用。从不冻结(即每一层的参数都是可训练的)到所有层的权值都冻结(即所有层都用预训练参数,参数不可训练)。该消融实验研究结果见
模型 | LVE↓ (×10−5mm) | 模型可训练的参数量 |
(i) | 3.6283 | 100,407,549 |
(ii) | 3.7816 | 96,207,101 |
(iii) | 3.8596 | 95,812,093 |
(iv) | 3.8609 | 81,636,349 |
(v) | 3.9271 | 67,460,605 |
(vi) | 3.9796 | 53,284,861 |
(vii) | 3.9971 | 39,109,117 |
(viii) | 4.1975 | 24,933,373 |
(ix) | 4.3611 | 17,845,501 |
(x) | 4.6158 | 10,757,629 |
根据第3.1.1节中描述的Hu BERT结构,该消融实验的模型结构配置如下:(i) 没有层被冻结,所有层的参数都可以训练,(ii) CNN编码器(特征提取层)被冻结,(iii) CNN编码器(特征提取层)和特征投影层被冻结。对于模型(iv)至(viii),除了冻结CNN编码器(特征提取层)和特征投影层外,每一个模型结构依次多冻结两个Transformer层。对于模型(ix),仅仅保留最后一个Transformer层可训练,而对于(x),整个Hu BERT预训练模型在训练期间被冻结。
尽管上述所有的模型配置都可以产生连贯流畅的三维人脸动画,但是我们发现(i)产生的唇顶点误差(LVE)最小,生成的动画与语音的相关性更强,表现力更加丰富。除此之外,当把模型配置从模型(ii)变化到(x)时,其所生成的三维人脸动画变得更加僵硬,并且唇形与语音之间的相关性变弱。本文选择的是没有层被冻结,即所有的参数都可以训练。
除了上述对Hu BERT模型的消融实验,本文还做了HBF Talk模型中其他部分在VOCA-Test上的消融实验。消融实验研究结果见
模型 | LVE↓ (×10−5mm) |
HBF Talk (Autoregressive) | 3.6283 |
HBF Talk (Teacher-forcing) | 3.8811 |
w/o Flash | 3.8654 |
Wav2vec2FlashFormer | 3.9339 |
Hu BERT Flash RNN | 4.5979 |
Hu BERT Flash Bi LSTM | 4.6059 |
Ltotal(9:1) | 3.8415 |
为了分析训练阶段自回归机制(Autoregressive)的影响,本文在训练阶段使用Teacher-Forcing机制做了对比实验。简要解释一下这两种机制,自回归机制是一种生成模型的训练方法,其中模型根据先前生成的内容来逐步生成下一个元素。在自回归过程中,生成的每个元素都依赖于之前生成的元素。Teacher-Forcing机制在训练过程中,真实的目标输出被用作模型的输入,而不是使用模型自身生成的输出作为下一步的输入。由
为了分析Flash模块对模型的影响,本文去除了模型中的Flash模块,在其他条件相同的情况下做了对比实验,Flash模块对语音的隐藏层表示进行了分块的块内局部注意力和块间全局注意力,最后相加经过门控输出,更好的建模了语音的隐藏层表示。由
在语音驱动3D面部动画生成的这项任务中,在VOCA
为了验证本文所提出的模型中选择的解码器,本文对解码器使用不同的序列建模方法进行了消融实验。我们用更简单的RNN解码器和Bi LSTM解码器取代了本模型所选择的Transformer解码器。实验的结果如
本文使用LMSE(重建损失,如公式5所示)和Ltotal(组合损失,如公式7所示)两种损失函数做了对比试验,由
本文提出的HBF Talk显著提高了针对跨模态语义的运动合成质量,HBF Talk中的编码器Hu BERT有效地利用了自监督预训练语音表示,Flash模块进一步的整合了局部和全局的语音上下文信息,经解码器解码得到面部动画序列。通过与现有的先进技术进行比较,本文提出的方法在实现准确的嘴唇运动方面具有优势。然而,由于视听数据的稀缺性,导致生成的唇形质量仍落后于真实的唇形质量,利用大规模的视听数据来训练模型以提高唇形质量是未来的研究方向。
我们感谢VOCA、Face Former、Code Talker的作者提供他们的代码和数据集。
本课题受到“温州大学元宇宙与人工智能研究院”的“重大课题及项目产业化专项资金”(编号:2023103)的资助。