介绍
数字人算法近年来备受关注,分为3D和2D两类。本文将详细介绍两个知名的2D数字人算法:SadTalker和Wav2Lip。同时,提到了泰勒斯威夫特视频中可能使用的GeneFace++算法。
2D数字人算法分类
根据输入类型,2D数字人可分为视频+音频和图片+音频两类。Wav2Lip和Geneface属于前者,SadTalker属于后者。Wav2Lip和Geneface生成新的口型,而SadTalker生成口型和头部运动,复杂度较高。
Wav2Lip技术原理
论文与代码链接
- 论文:《A Lip Sync Expert Is All You Need for Speech to Lip Generation In the Wild》
- 代码:Wav2Lip官方代码
GAN训练范式
Wav2Lip采用GAN的训练范式,包括1个生成器和2个判别器,分别是pre-trained lip-sync expert和visual quality discriminator。
唇音同步判别器
为提高唇音同步效果,引入了一个额外的唇音同步判别器,基于SyncNet改造而来。训练时通过计算余弦相似度对face_embedding和audio_embedding进行损失函数计算。
生成器
生成器包括Identity Encoder、Speech Encoder和Face Decoder,使用2D卷积组成。音频和图像通过不同编码器融合,送给唇音判别器计算损失函数。
SadTalker技术原理
论文与代码链接
- 论文:《SadTalker: Learning Realistic 3D Motion Coefficients for Stylized Audio-Driven Single Image Talking Face Animation》
- 代码:SadTalker官方代码
中间表示和渲染器
SadTalker将音频编码成中间表示,包括表情系数和头部姿态系数。通过3DMM技术对人脸进行3D重建,得到参考系数。
ExpNet和PoseVAE模型
ExpNet输出表情系数,PoseVAE输出头部姿态系数。解耦表情和头部运动,减少人脸扭曲。
3DMM技术和人脸重建
介绍了3DMM技术和SadTalker中的3D人脸重建模型,使用神经网络计算形状和表情系数。
Mapping网络和Image Generator
使用mappingNet将3DMM运动系数映射成3D关键点,送给Image Generator合成每一帧画面。训练mappingNet的步骤和face-vid2vid类似。
总结
通过SadTalker和Wav2Lip技术原理的详细解析,我们深入了解了2D数字人算法中唇音同步、表情系数、头部姿态系数的生成和合成过程。这为理解数字人算法的实现提供了有价值的信息。
这俩算法各有优劣。Wav2Lip专注于唇音同步,生成口型效果出色,音频和图像融合也比较简单直接。SadTalker则更为复杂,生成口型和头部运动,效果更丰富、更真实,但也更复杂耗时。选择取决于需求,如果只需要唇音同步,Wav2Lip更直接;若需要更细致的面部表情和头部运动,SadTalker则更全面。
关键词: 数字人算法,2D数字人,唇音同步,表情系数,头部姿态系数,Wav2Lip,SadTalker,GAN,3DMM技术,人脸重建。