主要保存的是训练和评估模型所需要的额外的预训练模型,在对应文件夹的README有更详细的介绍
存放数据集以及数据集预处理之后的数据,详细内容见dataset里的README
存放训练过程中保存的模型checkpoint, 训练过程中保存模型时自动创建
主要功能模块,包括所有核心代码
根据模型和数据集名称自动生成所有模型、数据集、训练、评估等相关的配置信息
config/
├── configurator.py
- dataprocess:模型特有的数据处理代码,(可以是对方仓库自己实现的音频特征提取、推理时的数据处理)。如果实现的模型有这个需求,就要建立一对应的文件
- dataset:每个模型都要重载
torch.utils.data.Dataset用于加载数据。每个模型都要有一个model_name+'_dataset.py'文件.__getitem__()方法的返回值应处理成字典类型的数据。 (核心部分)
data/
├── dataprocess
| ├── wav2lip_process.py
| ├── xxxx_process.py
├── dataset
| ├── wav2lip_dataset.py
| ├── xxx_dataset.py
主要涉及模型评估的代码 LSE metric 需要的数据是生成的视频列表 SSIM metric 需要的数据是生成的视频和真实的视频列表
实现的模型的网络和对应的方法 (核心部分)
主要分三类:
- audio-driven (音频驱动)
- image-driven (图像驱动)
- nerf-based (基于神经辐射场的方法)
model/
├── audio_driven_talkingface
| ├── wav2lip.py
├── image_driven_talkingface
| ├── xxxx.py
├── nerf_based_talkingface
| ├── xxxx.py
├── abstract_talkingface.py
保存默认配置文件,包括:
- 数据集配置文件
- 模型配置文件
- 通用配置文件
需要根据对应模型和数据集增加对应的配置文件,通用配置文件overall.yaml一般不做修改
properties/
├── dataset
| ├── xxx.yaml
├── model
| ├── xxx.yaml
├── overall.yaml
通用的启动文件,根据传入参数自动配置数据集和模型,然后训练和评估(一般不需要修改)
quick_start/
├── quick_start.py
训练、评估函数的主类。在trainer中,如果可以使用基类Trainer实现所有功能,则不需要写一个新的。如果模型训练有一些特有部分,则需要重载Trainer。需要重载部分可能主要集中于: _train_epoch(), _valid_epoch()。 重载的Trainer应该命名为:{model_name}Trainer
trainer/
├── trainer.py
公用的工具类,包括s3fd人脸检测,视频抽帧、视频抽音频方法。还包括根据参数配置找对应的模型类、数据类等方法。
一般不需要修改,但可以适当添加一些必须的且相对普遍的数据处理文件。
python=3.8torch==1.13.1+cu116(gpu版,若设备不支持cuda可以使用cpu版)numpy==1.20.3librosa==0.10.1
尽量保证上面几个包的版本一致
提供了两种配置其他环境的方法:
pip install -r requirements.txt
or
conda env create -f environment.yml
建议使用conda虚拟环境!!!
python run_talkingface.py --model=xxxx --dataset=xxxx (--other_parameters=xxxxxx)| 模型简称 | 论文 | 代码仓库 |
|---|---|---|
| MakeItTalk | paper | code |
| MEAD | paper | code |
| RhythmicHead | paper | code |
| PC-AVS | paper | code |
| EVP | paper | code |
| LSP | paper | code |
| EAMM | paper | code |
| DiffTalk | paper | code |
| TalkLip | paper | code |
| EmoGen | paper | code |
| SadTalker | paper | code |
| HyperLips | paper | code |
| PHADTF | paper | code |
| VideoReTalking | paper | code |
| 模型简称 | 论文 | 代码仓库 |
|---|---|---|
| PIRenderer | paper | code |
| StyleHEAT | paper | code |
| MetaPortrait | paper | code |
| 模型简称 | 论文 | 代码仓库 |
|---|---|---|
| AD-NeRF | paper | code |
| GeneFace | paper | code |
| DFRF | paper | code |
| 模型简称 | 论文 | 代码仓库 |
|---|---|---|
| VITS | paper | code |
| Glow TTS | paper | code |
| FastSpeech2 | paper | code |
| StyleTTS2 | paper | code |
| Grad-TTS | paper | code |
| FastSpeech | paper | code |
| 模型简称 | 论文 | 代码仓库 |
|---|---|---|
| StarGAN-VC | paper | code |
| Emo-StarGAN | paper | code |
| adaptive-VC | paper | code |
| DiffVC | paper | code |
| Assem-VC | paper | code |
- 确保可以仅在命令行输入模型和数据集名称就可以训练、验证。(部分仓库没有提供训练代码的,可以不训练)
- 每个组都要提交一个README文件,写明完成的功能、最终实现的训练、验证截图、所使用的依赖、成员分工等。