DreamTalk:当表情丰富的说话人头生成遇到扩散概率模型
paper:[2312.09767] DreamTalk: When Expressive Talking Head Generation Meets Diffusion Probabilistic Models (arxiv.org)
code:GitHub - ali-vilab/dreamtalk: Official implementations for paper: DreamTalk: When Expressive Talking Head Generation Meets Diffusion Probabilistic Models
目录
1 介绍
2 背景
3 方法
4 实验
5 结论
DreamTalk由三个关键部分组成:一个去噪网络、一个风格感知唇形专家和一个风格预测器。
图1:利用扩散模型,DreamTalk能够在不同的说话风格中产生高度表达的谈话头。DreamTalk能够直接从输入音频中获得个性化的说话风格,避免了额外的风格参考的需要。
音频驱动的说话头生成。音频驱动方法主要分为两类:特定人和非特定人。针对个人的方法[18,29,41,68,82]仅限于为训练中看到的说话人生成视频。首先制作3D面部动画,然后转换为逼真的视频。与人无关的方法[10,55,77,84]旨在为未见过的说话者生成视频。
富有表现力的说话头生成。早期方法[13,20,24,29,61,69,82,90]对离散情感类的表达式进行建模。为了对更细粒度的表达式进行建模,最近的大多数方法[30,37,46]利用表达式参考视频,并将该视频中的表达式迁移到生成的表达式中。然而基于gan的模型存在模式崩溃的问题,导致视频的口型同步和风格表现力较差。
指定所需的风格。之前的大多数方法都是通过参考视频[30,37,46]或文本[20,45,90]来指定说话风格,需要人工参与。本文旨在利用输入的音频和肖像来推断个性化和情感表达。
扩散模型。以往的研究[3,47,58,66]采用扩散模型生成说话人,只生成中性情绪的说话人,效果不理想。一些方法设计了基于扩散的渲染器[17,91]或面部运动先验[96],但仍然使用GAN或回归模型对音频-运动映射进行建模。本文用扩散模型来生成富有表现力的说话头。
3.1 问题公式化
给定肖像I、演讲 A 和风格参考视频 R,旨在生成一个说话的头部视频,嘴唇动作与演讲和参考视频中反映的说话风格同步。音频参数化为声学特征。R是视频帧序列。
3.2. DreamTalk
DreamTalk由3个关键组件组成:去噪网络,风格感知唇形专家和风格预测器。
图2. DreamTalk的示意图。训练了一个风格感知的唇部专家(b),它在给定说话风格下评估唇音同步概率,用于为去噪网络(a)提供唇部运动引导。然后,训练了一个去噪网络,它以音频、风格参考视频和嘈杂的面部运动作为输入,并预测无噪声的面部运动。接下来,训练了一个风格预测器(c),它根据视频中提取的风格编码以及音频和说话者作为输入来预测风格。在推理过程(d)中,可以使用从视频中提取的风格编码或从音频中派生的风格编码来指定说话风格。
去噪网络。
去噪网络根据语音和风格参考视频计算人脸运动。人脸运动被参数化为来自3D可变形模型[4]的表情参数序列。
人脸运动由渲染器[52Pirenderer: Controllable portrait image generation via semantic neural rendering]渲染成视频帧。
风格感知唇形专家提供不同表情下的唇动指导,从而驱动去噪网络在保证风格表现力的同时实现准确的唇形同步。风格预测器可以预测与讲话中传达的风格一致的说话风格。
该去噪网络以滑动窗口的方式逐帧合成人脸运动序列。它使用音频窗口预测运动帧,其中w表示窗口大小。
跟随LDM并预测信号本身。去噪网络Eθ根据噪声运动、扩散步骤、语音上下文和风格参考来预测m(0):
星号(∗)表示产生的数量。
音频窗口Aw首先输入到基于transformer的音频编码器中,并将输出与信道维度的噪声运动m(t)级联。线性投影到相同维度后,将拼接结果和时间步长t求和,作为transformer解码器的键和值。为了从风格参考中提取说话风格,风格编码器从R中提取3DMM表情参数序列,输入transformer编码器。使用自注意力池化层聚合输出标记,以获得风格代码s。风格代码重复2w + 1次,并添加位置编码。结果作为transformer解码器的查询。解码器的中间输出令牌被馈送到前馈网络以预测信号m(0)。
有风格意识的唇语专家。仅使用标准扩散模型中的去噪损失会导致不准确的唇动。补救方法是由预训练的唇部专家[49]提供唇动指导。然而,唇部专家只关注一般的说话风格,这导致生成统一风格的面部运动。本文提出一名风格感知的唇形专家,经过训练,可以在不同的说话风格下提供唇动指导,更好地在风格表现力和口型同步之间取得平衡。
嘴唇专家E根据风格参考R计算一段音频和嘴唇运动同步的概率:
n表示片段长度。
将唇动和音频编码为以风格参考为条件的各自嵌入,然后计算余弦相似度以表示同步概率。为了从人脸运动m中获取唇动信息,首先将m转换为相应的人脸网格,并选择嘴巴区域的顶点作为唇动[46]表示;嘴唇运动和音频编码器分别主要由MLPs和1d卷积实现。首先使用风格编码器从风格参考中提取风格特征,该特征反映了去噪网络中的风格结构,然后将风格特征与嵌入编码器的中间特征图连接起来,从而将风格条件融合到嵌入网络中。lip expert中的风格编码器和生成器不共享参数
风格的预测。具体来说,风格预测器Sϕ预测由训练的去噪网络中的风格编码器提取的风格代码s。观察说话人身份和风格代码之间的相关性(第4.4节),风格预测器还将肖像作为输入进行集成。风格预测器被实例化为扩散模型,并被训练以预测风格代码本身:
其中s(t)是在扩散步骤t采样的风格代码。
风格预测器Sϕ是序列上的transformer编码器,序列按顺序由:音频嵌入、扩散时间步的嵌入、说话人信息嵌入、噪声风格代码嵌入和称为学习查询的最终嵌入,其输出用于预测无噪声风格代码。音频嵌入是使用自监督预训练语音模型提取的音频特征。
为获得说话人信息嵌入,该方法首先提取了3DMM身份参数,其中包括人脸形状信息,但从肖像中删除了表情等无关信息,然后使用MLP将其嵌入到token中。
3.3 训练
首先,通过确定随机采样的音频和唇动剪辑是否像[49]中那样同步,对风格感知的唇动专家进行预训练,然后在训练去噪网络期间进行冻结。
去噪网络Eθ的训练方法是:从数据集中采样随机元组(m(0), t, Aw, R),通过添加高斯噪声将m(0)损坏为m(t),对m(t)执行去噪步骤,并优化损失:
从同一时刻的训练视频中提取ground-truth运动m(0)和语音音频窗口Aw。t来自均匀分布U{1, t}。样式引用R是从包含m(0)的同一个视频中随机抽取的视频片段。
首先计算[26]定义的扩散模型的去噪损失:
然后,去噪网络通过对生成片段的同步损失来最大化同步概率:
使用无分类器指导的[25]进行模型训练。
具体来说,Eθ在训练过程中通过随机设置R =∅10%的概率来学习样式-条件分布和无条件分布。∅被实现为脸部运动序列[mi],所有值都为0。对于推断,预测信号计算为:
而不是公式2。该方法通过调节比例因子ω来控制风格参考R的效果。
当训练风格预测器时,我们抽取一个随机视频,然后从中提取音频a和风格代码s(0)(使用经过训练的风格编码器)。由于3DMM身份参数可能会泄露表情信息,因此从具有相同说话人身份的另一个视频中采样肖像I。
风格预测器ϕ通过优化损失来训练:
用PIRenderer[52]作为渲染器,并对其进行细致的微调,使渲染器具有情感表达生成能力。
推理。该方法可以使用参考视频或仅通过输入音频和肖像来指定说话风格。在参考视频的情况下,使用去噪网络中的风格编码器导出风格代码。当仅依赖输入的音频和人像时,这些输入由风格预测器处理,采用去噪过程来获得风格代码。
有了风格代码,去噪网络利用DDPM[26]的采样算法产生人脸运动。
它首先对随机运动m∗(T) ~ N (0, I)进行采样,然后计算去噪序列{m∗(T)}, T = T−1,…,通过增量移除m (t)中的噪声为0。最后,运动m∗(0)是生成的人脸运动。利用DDIM可以加速采样过程[63]。然后,渲染器PIRenderer将输出的人脸运动渲染为视频。
在MEAD[82]、HDTF[101]和Voxceleb2[11]上训练和评估去噪网络。在MEAD上训练风格预测器,并在MEAD和RAVEDESS上对其进行评估[40]。
基线。我们将我们的方法与之前的方法进行了比较,包括:MakeitTalk[105]、Wav2Lip[49]、PCAVS[104]、AVCT[84]、GC-AVT[37]、EAMM[30]、StyleTalk[46]、DiffTalk[58]、SadTalker[100]、PDFGC[78]和EAT[20]。对于DiffTalk,由于发布的模型是不完整的,在提交之前无法产生合理的结果,我们使用其发布的演示视频进行定性比较。对于其他方法,我们使用发布的模型或在作者的帮助下生成样本。
指标。我们使用了广泛使用的指标:SSIM[88]、模糊检测累积概率(CPBD)[48]、SyncNet置信度评分(Syncconf)[9]、嘴巴周围的地标距离(M-LMD)[6]、全脸的地标距离(F-LMD)。
定量比较。
表1。MEAD、HDTF和Voxceleb2的定量比较。由于我们只接收MEAD和HDTF上的GC-AVT样品,因此不评估Voxceleb2上的GC-AVT。
提出了DreamTalk,一种利用扩散模型生成富有表现力的说话头的新方法。最大限度地减少对额外风格参考的依赖。开发了一个去噪网络,用于创建音频驱动的面部动作,并引入了一个风格感知嘴唇专家,以优化口型同步,同时不影响风格表达。此外,设计了一个风格预测器,可以直接从音频中推断说话风格,从而消除了对视频参考的需要。