目录
SyncTalk模型简介
SyncTalk是一种基于NeRF的高同步性说话人合成方法,专门针对提升说话人视频真实感和同步性而设计,克服了以往在同步性方面遇到的挑战,仅使用5分钟的说话视频即可生成高真实感的人物形象。目前该工作已入选CVPR 2024。下图为SyncTalk概览图,来自SyncTalk论文。
论文题目: SyncTalk: The Devil is in the Synchronization for Talking Head Synthesis
论文链接: https://arxiv.org/abs/2311.17590
项目主页: https://ziqiaopeng.github.io/synctalk
代码链接: https://github.com/ZiqiaoPeng/SyncTalk
效果展示:
5分钟素材创造超写实人物形象
安装步骤(Windos)
1、百度网盘下载代码
2、cuda安装
论文作者给出的版本:
Tested on Ubuntu 18.04, Pytorch 1.12.1 and CUDA 11.3.
Windows环境,建议安装cuda11.7,我已安装了百度网盘里的代码,执行conda list,python的版本为3.9,cuda的版本为11.7
具体安装步骤请见:
windows系统CUDA的详细安装教程_windows安装cuda-CSDN博客
3、aconda安装
步骤请见
(Windows系统)Anaconda下载及安装超详细教程(图文步骤附带详细解释,简单易上手)!!_anaconda windows-CSDN博客
关于环境变量,anaconda程序会自动填写,检查后没有自动填写的可手动填写。
4、在aconda中创建虚拟环境
创建虚拟环境synctalk,命令如下:
conda create --name synctalk python=3.9
创建成功后,把SyncTalk-Windows\face-SyncTalk\venv中的文件拷贝到anaconda的synctalk文件 夹中。
5、checkpoints下载
checkpoints文件的获取有几种方式:
网盘
链接:https://pan.baidu.com/s/1B6torAhoJ5Sgw-Z2BJfyOQ
提取码:bkgt
推理、训练时程序检测不到对应的文件会自动下载,如果觉得下载过程太慢,可以粘贴提示说明里的文件地址,用迅雷下载。
下载好的checkpoints文件,存储位置为:C:\Users\Admin\.cache\torch\hub\checkpoints
6、更新代码
下载synctalk最新代码,覆盖到本地的程序上,下载地址如下:
https://github.com/ZiqiaoPeng/SyncTalk
下载AD-NeRF中的data_util文件夹,覆盖synctalk的data_utils文件夹
AD-NeRF/data_util at master · YudongGuo/AD-NeRF · GitHub
数据预处理
1、准备视频
视频要求,帧速率 :25FPS,帧宽高:512*512,每帧画面必须有说话的人,视频长度建议在4分02秒内,多于此时间会报错,需要调整代码。
视频需要高分辨率,低分辨率的视频训练出来效果较差。
视频放入目录 SyncTalk-Windows\face-SyncTalk\SyncTalk\data\<ID>\<ID>.mp4
2、预处理命令
conda activate synctalk
cd I:\AI\SyncTalk\SyncTalk-Windows\face-SyncTalk\SyncTalk
SET PATH=..\venv\ffmpeg;%PATH%
python data_utils/process.py data/<ID>/<ID>.mp4 --asr ave
预处理命令
预处理结果
运行数据预处理程序时,需注意,运行完毕,检查bs.npy文件是否生成,有时会无法生成这个文件,此时需要运行以下命令生成此文件
python data_utils/blendshape_capture/main.py --path I:\AI\SyncTalk\SyncTalk-Windows\face-SyncTalk\SyncTalk\data\test3
训练
1、运行命令
设置环境变量
SET PATH=..\venv\ffmpeg;%PATH%
初步训练,会训练到11轮,模型有了初步的效果,建议进一步训练,*.pth为模型的权重(weights)和偏置(biases)。
python main.py data/test3 --workspace model/trial_test3 -O --iters 60000 --asr_model ave
进一步训练,再训练8轮
python main.py data/test3 --workspace model/trial_test3 -O --iters 100000 --finetune_lips --patch_size 64 --asr_model ave
至此,模型训练基本完成,如果一切顺利,能得到效果较好的推理结果。但有时会出现双下巴的情况,可能是训练视频质量的问题,可以尝试进一步训练,解决双下巴的问题,但如果训练视频的质量不佳,可能还是解决不了双下巴的问题。
python main.py data/test3/ --workspace model/trial_test3_torso/ -O --torso --head_ckpt model/trial_test3/checkpoints/ngp_ep0019.pth --iters 150000 --asr_model ave
此命令会训练到28轮。
2、训练结果
训练结果如下图
推理
1、准音频
准备wav文件,文件不限长度,放入SyncTalk-Windows\face-SyncTalk\SyncTalk\demo
2、命令
设置环境变量
SET PATH=..\venv\ffmpeg;%PATH%
没有进行修复下巴训练的情况
python main.py data/test3 --workspace model/trial_test3 -O --test --test_train --asr_model ave --portrait --aud ./demo/test.wav
进行修复下巴训练的情况
python main.py data/test3 --workspace model/trial_test3_torso -O --torso --test --test_train --asr_model ave --aud ./demo/test.wav
3、运行结果
5分钟素材创造超写实人物形象