赞
踩
论文:https://arxiv.org/pdf/2008.10010.pdf
训练源码:https://github.com/Rudrabha/Wav2Lip
经过调整过的代码:https://gitee.com/sparkle__code__guy/wave2lip
ffmpeg的安装:https://blog.csdn.net/sslfk/article/details/123050218 ,可以window,也可以linux
训练配置:首先必须依赖GPU
下载源码,下载专家判别系统:Sign in to your account
并将模型放到 checkpoints文件目录下
第一步:准备视频数据,爬取可以通过硕鼠爬取想要的人物说话风格数据
第二步:执行preprocess.py,执行命令如下:
python preprocess.py --ngpu 1 --data_root data/original_data2 --preprocessed_root data/preprocessed_root2
其中,data_root为原始视频地址,preprocessed_root为处理完的视频存放的位置;准备的视频数量至少为3个才可以。
第三步骤:获取对应的文件列表并更新到filelists/train.txt和filelists/eval.txt。只保存对应的视频名称即可。代码可以参考,对视频样本重命名并生成对应的命名列表,此处视频文件数量过少<2,会报错:
- import time
- from glob import glob
- import shutil,os
-
- from sklearn.model_selection import train_test_split
-
-
- #去除名字的特殊符号,统一序号视频文件命名
-
- def original_video_name_format():
- base_path = "data/original_data"
- result = list(glob("{}/*".format(base_path),recursive=False))
- file_num = 0
- result_list = []
-
- for each in result:
- file_num +=1
- new_position ="{0}{1}".format( int(time.time()),file_num)
- result_list.append(new_position)
- shutil.move(each, os.path.join(base_path,new_position+".mp4"))
- pass
-
- def trained_data_name_format():
- base_path = "data/preprocessed_root/original_data"
- result = list(glob("{}/*".format(base_path)))
- print(result)
- result_list = []
- for i,dirpath in enumerate(result):
- shutil.move(dirpath,"{0}/{1}".format(base_path,i))
- result_list.append(str(i))
- if len(result_list)<14:
- test_result=val_result=train_result=result_list
- else:
- train_result,test_result = train_test_split(result_list,test_size=0.15, random_state=42)
- test_result, val_result = train_test_split(test_result, test_size=0.5, random_state=42)
-
- for file_name,dataset in zip(("train.txt","test.txt","val.txt"),(train_result,test_result,val_result)):
- with open(os.path.join("filelists",file_name),'w',encoding='utf-8') as fi:
- fi.write("\n".join(dataset))
-
- print("\n".join(result_list))
-
-
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
第四步骤:
执行如下命令,开始训练:
python wav2lip_train.py --data_root ./data/preprocessed_root/original_data --checkpoint_dir ./savedmodel --syncnet_checkpoint_path ./checkpoints/lipsync_expert.pth --checkpoint_path ./checkpoints/wav2lip.pth
训练过程如下图:
其他环境配置参考:README.md · 仓库11360838 - Gitee.com
模型预测:
python inference.py --checkpoint_path Wav2Lip/savedmodel/checkpoint_step000000001.pth --face Wav2Lip/data/original_data/test.mp4 --audio Wav2Lip/data/preprocessed_root/original_data/1/audio.wav
调整后的代码路径为: https://gitee.com/sparkle__code__guy/wave2lip
有需要联系请邮箱:1115349889@qq.com
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。