主要保存的是训练和评估模型所需要的额外的预训练模型,在对应文件夹的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.8
torch==1.13.1+cu116
(gpu版,若设备不支持cuda可以使用cpu版)numpy==1.20.3
librosa==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文件,写明完成的功能、最终实现的训练、验证截图、所使用的依赖、成员分工等。