这篇文章介绍了一种名为LatentSync的新型唇音同步框架,基于音频条件潜在扩散模型,能够在不需要中间运动表示的情况下生成高质量的唇音同步视频。文章的主要内容和贡献如下:
-
LatentSync框架:
-
使用Stable Diffusion的强大生成能力,直接建模复杂的音频-视觉关联,生成逼真的说话视频。
-
避免了传统基于像素空间扩散或两阶段生成方法的局限性,能够生成高分辨率视频并保留细微的表情。
-
-
时间一致性改进:
-
提出了**TREPA(Temporal Representation Alignment)**方法,通过自监督视频模型提取的时间表示来对齐生成的帧与真实帧,显著提高了生成视频的时间一致性,同时保持唇音同步的准确性。
-
-
SyncNet收敛问题:
-
针对SyncNet在训练过程中常见的收敛问题,进行了全面的实证研究,确定了影响收敛的关键因素,包括模型架构、训练超参数和数据预处理方法。
-
通过优化这些因素,将SyncNet在HDTF数据集上的准确性从91%提升到94%。
-
-
实验与结果:
-
在HDTF和VoxCeleb2数据集上的实验表明,LatentSync在视觉质量、唇音同步准确性和时间一致性方面均优于现有的最先进方法。
-
通过消融研究验证了TREPA和SyncNet监督的有效性,并展示了TREPA对其他唇音同步方法(如Wav2Lip)的通用性。
-
-
开源:
-
代码和模型公开在GitHub上,便于其他研究人员使用和复现。
-
LatentSync通过结合潜在扩散模型、TREPA时间对齐方法以及对SyncNet的优化,显著提升了唇音同步任务的效果,解决了现有方法在生成质量、时间一致性和收敛性方面的不足。这里是自己的论文阅读记录,感兴趣的话可以参考一下,如果需要阅读原文的话可以看这里,如下所示:
官方项目地址在这里,如下所示:
摘要
我们提出了LatentSync,一种基于音频条件潜在扩散模型的端到端唇音同步框架,无需任何中间运动表示,与之前基于像素空间扩散或两阶段生成的扩散唇音同步方法不同。我们的框架能够利用Stable Diffusion的强大能力直接建模复杂的音频-视觉关联。此外,我们发现基于扩散的唇音同步方法由于不同帧之间扩散过程的不一致性,表现出较差的时间一致性。我们提出了时间表示对齐(TREPA)来增强时间一致性,同时保持唇音同步的准确性。TREPA使用大规模自监督视频模型提取的时间表示来对齐生成的帧与真实帧。此外,我们观察到常见的SyncNet收敛问题,并进行了全面的实证研究,确定了影响SyncNet收敛的关键因素,包括模型架构、训练超参数和数据预处理方法。我们将SyncNet在HDTF测试集上的准确性从91%显著提高到94%。由于我们没有改变SyncNet的整体训练框架,我们的经验也可以应用于其他使用SyncNet的唇音同步和音频驱动的肖像动画方法。基于上述创新,我们的方法在HDTF和VoxCeleb2数据集上的各种指标上均优于最先进的唇音同步方法。
1 引言
唇音同步任务涉及根据相应的语音生成准确的唇部运动,同时保持头部姿势和个人身份。该技术在众多实际领域中具有广泛的应用,如配音、虚拟化身和视频会议。
在唇音同步领域,基于GAN的方法仍然是主流方法。基于GAN方法的主要问题是难以扩展到大规模和多样化的数据集,因为训练不稳定且容易出现模式崩溃。最近的研究提出了基于扩散的方法用于唇音同步,使得模型能够轻松泛化到不同的个体,而无需对特定身份进行微调。然而,这些方法仍有一些局限性。具体来说,[2, 34]在像素空间中进行扩散过程(图1a),这限制了其生成高分辨率视频的能力,因为硬件要求过高。[57, 64]等方法采用了两阶段方法:第一阶段从音频生成唇部运动,第二阶段根据运动合成视觉外观(图1b)。这种两阶段方法的问题是,细微不同的声音可能映射到相同的运动表示,这可能导致与语音情感相关的细微表情丢失。
为了解决上述问题,我们提出了LatentSync,一种基于音频条件潜在扩散模型的新型端到端唇音同步框架,无需任何中间3D表示或2D标志点(图1c)。LatentSync利用Stable Diffusion的强大生成能力直接捕捉复杂的音频-视觉关联,促进生成动态和逼真的说话视频。
此外,我们发现没有SyncNet监督的情况下,我们的模型的唇音同步准确性非常低。我们探索了两种将SyncNet监督添加到潜在扩散模型的方法:(a)在解码到像素空间后添加SyncNet监督,(b)在潜在空间中训练SyncNet。然而,我们发现SyncNet在高分辨率像素空间和潜在空间中都有收敛问题。为了解决这个问题,我们在模型架构、训练超参数和数据预处理方法方面进行了全面的实证研究,使SyncNet能够轻松收敛。我们在HDTF上实现了前所未有的94%准确性。
此外,我们发现与单步唇音同步方法相比,基于扩散的唇音同步方法由于多步生成过程,表现出较差的时间一致性。我们假设这可能是由于不同帧之间扩散过程的不一致性。受[15, 58]启发,我们提出了一种新方法TREPA,它使用大规模自监督视频模型VideoMAE-v2提取富含时间信息的强大表示。生成的连续帧与真实连续帧的时间表示之间的距离被用作额外的损失。这种方法与LPIPS非常相似,关键区别在于该损失利用了时间表示。我们发现这种简单的方法有效地提高了时间一致性,同时保持了模型的唇音同步准确性。
总之,我们做出了以下贡献:(1)我们提出了一种基于音频条件潜在扩散模型的端到端唇音同步框架,无需任何中间运动表示。(2)为了解决SyncNet的收敛问题,我们在模型架构、训练超参数和数据预处理方法方面进行了实证研究,并确定了影响SyncNet收敛的关键因素。(3)我们提出了TREPA来提高时间一致性,同时保持唇音同步的准确性。
2 相关工作
基于扩散的唇音同步
[34]和[2]都是基于像素空间音频条件扩散模型的端到端唇音同步方法。[57]在第一阶段使用扩散模型完成音频到运动的转换,并在第二阶段使用VAE进行运动到图像的生成。[64]在第一阶段使用变压器将音频转换为运动,并在第二阶段使用扩散模型进行运动到图像的生成。[29]在第一阶段使用扩散自编码器将掩码图像转换为语义潜在代码,并在第二阶段使用扩散模型生成基于语义潜在代码和音频的图像,这也属于像素空间扩散模型。
非基于扩散的唇音同步
Wav2Lip是最经典的唇音同步方法,引入了使用预训练的SyncNet来监督生成器的训练。[20]训练了一个VQ-VAE来编码面部和头部姿势,然后在量化空间中训练唇音同步生成器以生成高分辨率图像。StyleSync遵循Wav2Lip的整体框架,其主要创新是使用StyleGAN2作为生成器骨干。[8]将唇音同步分为三个部分:语义引导的重演网络、唇音同步网络和身份感知的细化和增强。DINet通过变形特征图来生成基于驱动音频的嘴形。MuseTalk使用Stable Diffusion的架构进行修复,但它不执行扩散过程,而是使用判别器进行对抗学习,使其更像基于GAN的框架。
3 方法
LatentSync框架
LatentSync框架的概述如图2所示。我们的骨干网络逐帧生成视频,帧之间没有时间建模。生成过程中的时间一致性完全依赖于音频窗口。这种逐帧生成方法有利于配音场景中的遮挡策略,因为我们可以轻松跳过嘴部被遮挡且不需要唇音同步的帧。我们的框架基于图像到图像的修复,因此需要输入一个掩码图像。此外,为了整合原始视频中的面部视觉特征,我们需要输入参考图像。在训练过程中随机选择参考图像以避免学习捷径,在推理过程中则从当前帧中获取参考图像。我们沿通道维度连接这些输入,因此总输入由13个通道组成(4个通道用于噪声潜在,1个通道用于掩码,4个通道用于掩码图像,4个通道用于参考图像)。在训练开始时,我们用SD 1.5的参数初始化我们的模型,除了具有13个通道的第一个conv_in层和维度为384的交叉注意力层,这些层是随机初始化的。理论上,我们的框架与更高级的潜在扩散模型(如SDXL、SD3和FLUX)兼容,但由于硬件限制,我们仅在SD 1.5上进行了实验。
**音频层。**我们使用预训练的音频特征提取器Whisper提取音频嵌入。唇部运动可能受到周围帧音频的影响,更大范围的音频输入也为模型提供了更多的时间信息。因此,对于每个生成的帧,我们将周围几帧的音频捆绑在一起作为输入。我们定义第f帧的输入音频特征A(f)为:A(f) = {a(f-m), ..., a(f), ..., a(f+m)},其中m是一侧的周围音频特征数量。为了将音频嵌入集成到U-Net中,我们使用了原生的交叉注意力层。
**SyncNet监督。**我们的模型在噪声空间中进行预测,而SyncNet需要在图像空间中进行输入。为了解决这个问题,我们使用预测的噪声εθ(zt)一步获得估计的ˆz0,公式为:
另一个问题是我们的模型在潜在空间中进行预测。我们探索了两种将SyncNet监督添加到潜在扩散模型的方法:(a)解码像素空间监督,以与[36]相同的方式训练SyncNet。(b)潜在空间监督,需要在潜在空间中训练SyncNet。该SyncNet的视觉编码器输入是由VAE编码获得的潜在向量。我们发现,与在像素空间中训练相比,在潜在空间中训练SyncNet的收敛性较差。我们推测这是由于VAE编码过程中唇部区域的信息丢失。根据第4.3节的实验结果,潜在空间SyncNet的较差收敛性也导致监督扩散模型的音频-唇音同步准确性较差。因此,我们在LatentSync框架中使用解码像素空间监督。
**两阶段训练。**在第一阶段,我们不解码到像素空间,也不添加SyncNet损失。第一阶段的目的是让U-Net使用大批量学习视觉特征。因此,第一阶段的训练目标只有一个简单的损失:
在第二阶段的训练中,我们使用解码像素空间监督方法添加SyncNet损失。与[36]相比,我们将SyncNet的输入帧长度增加到16。SyncNet损失可以表示为:
由于唇音同步任务需要生成细节区域,如嘴唇、牙齿和面部毛发,我们使用LPIPS来提高U-Net生成图像的视觉质量。
此外,为了提高时间一致性,我们还采用了提出的TREPA。总损失函数为:
我们通过实证分析确定了最佳系数:(λ1, λ2, λ3, λ4) = (1, 0.05, 0.1, 10)
**混合噪声模型。**为了确保模型正确学习时间信息,输入噪声也需要具有时间一致性;否则模型将无法正确学习。最简单的方法是对所有帧应用相同的噪声。我们进一步发现,使用混合噪声模型训练的扩散模型表现出更好的时间一致性。该方法生成两个不同的噪声向量,εshared和εind。εshared表示应用于所有16个视频帧的公共噪声向量,而εind对应于帧特定的噪声。最终噪声通过这两个向量的线性组合获得。
我们在两个训练阶段都使用了混合噪声模型,并且在推理阶段对视频中的所有帧应用相同的初始潜在噪声。
**仿射变换。**在数据预处理阶段,使用仿射变换实现面部正面化。这种方法有助于模型有效学习面部特征,特别是在侧视图等具有挑战性的场景中。我们应用了一个覆盖整个面部的掩码,以防止信息泄漏,确保模型不会根据面部运动推断唇部运动。掩码的位置和形状是固定的。我们不使用检测到的标志点来绘制掩码,因为它们会泄漏面部运动的信息。
时间表示对齐
TREPA对齐生成的图像序列与真实图像序列的时间表示。该方法的洞察是,仅使用单个图像之间的距离损失只能提高单个生成图像的内容质量,但不能增强生成图像序列的时间一致性。相比之下,时间表示捕捉图像序列中的时间相关性,使模型能够专注于提高整体时间一致性。我们使用大规模自监督视频模型VideoMAE-v2提取时间表示。由于其在大型未标记数据集上的无监督训练,该模型的时间表示表现出强大的泛化能力、鲁棒性和高信息密度。
在数学形式上,设T为自监督视频模型编码器。编码器的输出是头部投影前的嵌入。TREPA可以表示为:
Ltrepa = Ex,ε,t [‖T(D(ˆz0)f;f+16) - T(xf;f+16)‖22]
我们使用简单的均方误差(MSE)来衡量时间表示之间的距离。在计算MSE之前,我们还通过ℓ2归一化固定表示。
**观察。**时间层向U-Net添加时间自注意力层以增强时间一致性。我们最初尝试将时间层应用于LatentSync,但发现它显著损害了唇音同步准确性。相比之下,我们的TREPA不仅避免了损害唇音同步准确性,甚至在一定程度上提高了它。我们假设这是因为时间层向U-Net添加了额外的参数,导致反向传播中的一些梯度分布到时间层参数,削弱了音频交叉注意力层参数的学习。另一方面,TREPA没有添加额外的参数;为了提高时间一致性,模型必须更有效地依赖音频窗口中的信息(因为我们知道唇音同步模型使用音频窗口来捕捉时间信息)。因此,音频交叉注意力层得到了进一步的训练和加强。参见第4.3节的定量结果。
另一个有趣的发现是,根据第4.3节的实验结果,TREPA也可以应用于提高Wav2Lip的时间一致性和唇音同步准确性。理论上,任何一次生成多个连续帧的视频生成模型都可以利用TREPA来增强时间一致性。
SyncNet收敛的实证研究
许多研究人员在GitHub问题上报告了SyncNet的收敛问题,该问题的典型特征是训练损失卡在0.69且无法进一步下降。然而,迄今为止没有学术工作对该问题进行详细分析。在本节中,我们分析了SyncNet收敛问题,并通过各种消融研究确定了影响SyncNet收敛的几个关键因素。重要的是,我们保留了SyncNet的原始训练框架,并使用了与原始论文相同的对比损失函数。因此,我们的经验可以应用于许多使用SyncNet的唇音同步和音频驱动的肖像动画方法。
**为什么SyncNet训练损失卡在0.69?**根据SyncNet的经典框架,我们在训练阶段以50%的概率随机提供SyncNet正样本和负样本。SyncNet的输出是样本为正或负的概率分布。我们定义p(x=1)为样本为正的概率,p(x=0)为样本为负的概率。设p(x)为真实概率分布,q(x)为预测概率分布。当q(x=1)≈q(x=0)≈0.5且批量大小N足够大时,SyncNet的训练损失为(证明见附录B):
这意味着SyncNet没有学到任何判别能力;它只是在随机猜测样本是正还是负。这可能是由于各种原因,包括模型的容量不足以拟合数据、数据中的音频-视觉偏移过大以及训练策略的缺陷。在接下来的段落中,我们将通过全面的消融研究确定影响SyncNet收敛的关键因素。
**批量大小。**如图5所示,较大的批量大小(例如1024)不仅使模型收敛更快、更稳定,而且在训练结束时验证损失更低。相比之下,较小的批量大小(例如128)可能无法收敛,损失卡在0.69。即使批量大小稍大(例如256),虽然可能实现收敛,但训练损失在下降过程中表现出显著的振荡。
**架构。**我们尝试用SD 1.5的U-Net编码器替换SyncNet的视觉和音频编码器,保留U-Net编码器块中的残差块和自注意力块结构。我们仅根据输入视觉图像和梅尔频谱图的大小调整下采样因子,并移除了交叉注意力块,因为SyncNet不需要额外的条件。如图6所示,使用SD U-Net编码器架构的SyncNet在整个训练过程中保持训练损失和验证损失低于Wav2Lip的SyncNet,尽管差异不大。
**自注意力。**我们尝试移除U-Net编码器中的自注意力块,仅保留残差块。如图7所示,移除自注意力块在训练初期收敛更快,同时在训练结束时实现更低的验证损失。此外,这种方法有助于减少模型大小并加速推理和训练速度。我们假设原因可能是注意力层不具备CNN的固有归纳偏差,如平移等变性和局部性。因此,在没有足够数据的情况下,它们不能很好地泛化。类似的发现和解释可以在[11]中找到。
**帧数。**输入帧数决定了SyncNet可以感知的视觉和音频信息的范围。如图8所示,选择较大的帧数(例如16)有助于模型收敛。然而,过大的帧数(例如25)会导致模型在训练初期卡在0.69左右,且训练结束时的验证损失与使用16帧相比没有显著优势。
**数据预处理。**野外视频自然包含音频-视觉偏移,因此在输入SyncNet网络之前需要将此偏移调整为零。我们使用SyncNet的官方开源版本来调整偏移并移除Syncconf低于3的视频。具体来说,我们测试了在应用仿射变换前后调整偏移。如图9所示,不调整偏移会显著损害模型的收敛。在仿射变换之前调整偏移效果更好。我们假设这可能是因为仿射变换减少了侧脸或异常角度的数据,使得官方SyncNet能够更准确地预测偏移。
**讨论。**基于上述消融研究,我们发现批量大小、输入帧数和数据预处理方法显著影响SyncNet收敛。模型架构也会影响收敛,尽管不那么明显。我们确定了256×256输入大小的SyncNet的最佳设置:批量大小为1024,16帧,SD残差块用于视觉和音频编码器,嵌入维度为2048,并在仿射变换后调整音频-视觉偏移。我们在VoxCeleb2上训练SyncNet并在HDTF上测试,这是一个分布外实验设置。VoxCeleb2上的验证损失达到约0.18,HDTF上的准确性达到94%,显著超过了之前的SOTA结果91%。更多消融研究请参见附录C。
4 实验
实验设置
**数据集。**我们使用VoxCeleb2和HDTF数据集的混合作为训练集。VoxCeleb2是一个大规模的音频-视觉数据集,包含来自6000多名发言者的100多万条语音。它包括来自广泛种族、口音和背景的发言者。HDTF包含362个不同的高清视频,分辨率通常在720p到1080p之间。
我们使用HyperIQA过滤掉视觉质量较低的视频,特别是模糊或像素化的视频。在评估过程中,我们从HDTF或VoxCeleb2的测试集中随机选择30个视频。
**实现细节。**在评估我们的模型LatentSync时,我们首先将视频转换为25 FPS,然后基于face-alignment检测的面部标志应用仿射变换以获得256×256的面部视频。音频被重新采样为16kHz。我们使用20步DDIM采样进行推理。
**评估指标。**我们从三个方面评估我们的方法:(1)视觉质量。我们在重建设置中使用SSIM,在交叉生成设置中使用FID来评估视觉质量。(2)唇音同步准确性。我们使用SyncNet的置信分数(Syncconf),我们发现它与视觉评估密切相关。(3)时间一致性。我们采用广泛使用的FVD指标。
比较
**比较方法。**我们选择了几种提供开源推理代码和检查点的SOTA方法进行比较。Wav2Lip是最经典的唇音同步方法,引入了使用预训练SyncNet进行监督而不是唇音同步判别器的想法。VideoReTalking将唇音同步过程分为三步以改进结果。DINet提出对特征图进行变形以实现高质量的唇音同步。MuseTalk利用Stable Diffusion的架构进行修复,但它不是基于扩散模型框架,更像基于GAN的方法。
**定量比较。**如表1所示,我们的方法的唇音同步准确性显著优于其他方法。我们相信这可能归因于我们94%准确性的SyncNet,以及音频交叉注意力层,它们可能更好地捕捉音频和唇部运动之间的关系。在视觉质量方面,我们的方法优于其他方法,这可能是由于Stable Diffusion模型的能力。由于引入了TREPA,我们的FVD分数也优于其他方法。
**定性比较。**我们在交叉生成设置中运行了两个案例。根据图10,Wav2Lip具有出色的唇音同步准确性,但生成的视频非常模糊。VideoReTalking显示出奇怪的伪影。DINet的生成框明显,嘴部运动僵硬。MuseTalk没有很好地保留面部特征,男人的胡须变得稀疏。相比之下,我们的方法在清晰度和身份保留方面表现出色,甚至女人脸上的痣也被保留下来。此外,由于固定掩码的平滑形状,几乎没有显示生成框。
消融研究
**SyncNet的监督效果。**如表2所示,当不添加SyncNet监督时,训练的扩散模型完全没有唇音同步能力。事实上,我们发现其他端到端唇音同步方法也表现出类似的现象。至于在两个不同空间中的监督,像素空间SyncNet监督下的扩散模型在唇音同步准确性和时间一致性方面表现更好。这可能是由于潜在空间SyncNet监督的收敛性较差(如图11所示),这是相当合理的,因为潜在空间SyncNet的输入是VAE编码获得的压缩潜在,一些唇部信息可能已经丢失。
此外,我们发现唇音同步准确性的提高伴随着时间一致性的增加。这是因为我们模型的时间一致性由音频窗口提供;随着模型更好地利用音频信息,时间一致性也相应提高。
**提高时间一致性的不同方法。**根据表3,时间层显著提高了时间一致性,但也明显损害了唇音同步准确性。我们的TREPA在唇音同步准确性和时间一致性方面实现了平衡的改进,没有明显的缺点。考虑到唇音同步准确性的重要性,TREPA显然是更好的方法。
此外,TREPA也可以改进Wav2Lip,如表4所示,这表明我们的方法在唇音同步任务中具有普遍适用性。
5 结论
我们引入了一种新的唇音同步框架LatentSync,解决了传统基于扩散的唇音同步方法的问题:(1)像素空间扩散的低采样速度和无法生成高分辨率视频。(2)两阶段生成方法中的信息丢失。此外,我们提出了TREPA来提高时间一致性,同时保持唇音同步准确性,这缓解了基于扩散的唇音同步方法中的视频闪烁问题。此外,我们分析