这个仓库是我们ICLR-2023论文的官方PyTorch实现,我们在其中提出了GeneFace 算法,用于高泛化高保真的音频驱动的虚拟人视频合成。
我们的GeneFace对域外音频(如不同说话人、不同语种的音频)实现了更好的嘴唇同步和表现力。推荐您观看此视频,以了解GeneFace与之前基于NeRF的虚拟人合成方法的口型同步能力对比。您也可以访问我们的项目页面以了解更多详细信息。
-
2023.3.16
我们在这个release做出了重大的更新,我们提供了一个demo。本次更新包括:1) 基于RAD-NeRF的渲染器,它可以做到实时渲染,并且训练时间缩短到10小时。2) 基于pytorch的deep3d_recon
模块,相比起之前使用的Tensorflow版本,它更容易安装,并且推理速度快8倍。 3) 音高感知的audio2motion
模块,相比原先的版本可以生成更加准确的唇形。4) 解决了一些导致过多内存占用的bug。5)我们会在四月上传最新的论文。 -
2023.2.22
我们发布了一段一分钟的Demo视频,在其中GeneFace由DiffSinger生成的一段中文歌曲所驱动,并能够产生准确的嘴形。 -
2023.2.20
我们发布了一个稳定版本的3D landmark后处理逻辑,位于inference/nerfs/lm3d_nerf_infer.py
,它大大提升了最终合成的视频的稳定性和质量。
在这个release中,我们提供了预训练的GeneFace模型和处理好的数据集,以便您能快速上手。在本小节的剩余部分我们将介绍如何分4个步骤运行这些模型。如果您想在您自己的目标人物视频上训练GeneFace,请遵循 docs/prepare_env
、docs/process_data
、docs/train_models
中的步骤。
步骤1:根据我们在docs/prepare_env/install_guide.md
中的步骤,新建一个名为geneface
的Python环境。
步骤2:下载lrs3.zip
和May.zip
文件,并将其解压在checkpoints
文件夹中。
步骤3:根据docs/process_data/zh/process_target_person_video-zh.md
的指引,处理May.mp4
文件,得到数据集文件data/binary/videos/May/trainval_dataset.npy
。
做完上面的步骤后,您的 checkpoints
和data
文件夹的结构应该是这样的:
> checkpoints
> lrs3
> lm3d_vae_sync
> syncnet
> May
> lm3d_postnet_sync
> lm3d_radnerf
> lm3d_radnerf_torso
> data
> binary
> videos
> May
trainval_dataset.npy
Step4. 在终端中执行以下命令:
bash scripts/infer_postnet.sh
bash scripts/infer_lm3d_radnerf.sh
# bash scripts/infer_radnerf_gui.sh # 你也可以利用RADNeRF提供的GUI进行交互体验
你能在以下路径找到输出的视频 infer_out/May/pred_video/zozo.mp4
.
请参照docs/prepare_env
文件夹中的步骤 .
请参照docs/process_data
文件夹中的步骤.
请参照docs/train_models
文件夹中的步骤.
除了本仓库中提供的 May.mp4
,我们还提供了8个实验中使用的目标人物视频。你可以从这个链接下载。
要训练一个名为 <video_id>.mp4
的新视频,你应该把它放在 data/raw/videos/
目录下,然后在 egs/datasets/videos/<video_id>
目录下创建一个新文件夹,并根据提供的示例文件夹 egs/datasets/videos/May
添加对应的yaml配置文件。
除了使用我们提供的视频进行训练外,您还可以自己录制视频,为自己训练一个独一无二的GeneFace虚拟人模型!
@article{ye2023geneface,
title={GeneFace: Generalized and High-Fidelity Audio-Driven 3D Talking Face Synthesis},
author={Ye, Zhenhui and Jiang, Ziyue and Ren, Yi and Liu, Jinglin and He, Jinzheng and Zhao, Zhou},
journal={arXiv preprint arXiv:2301.13430},
year={2023}
}
本工作受到以下仓库的影响:
- NATSpeech (参考了其中的代码框架)
- AD-NeRF (参考了NeRF相关的数据提取和原始NeRF的代码实现)
- RAD-NeRF (参考了RAD-NeRF的代码实现)
- Deep3DFaceRecon_pytorch (参考了基于Pytorch的3DMM参数提取)