简介
给定一张照片和一段音频,生成张嘴说话的数字人视频。
项目主页:https://github.com/OpenTalker/SadTalker
官网推荐的指导视频:https://www.bilibili.com/video/BV1Dc411W7V6/?vd_source=78b9e11be3f62acc485bf133393ebc27
因为该项目是2023年的,当时使用的模块版本都比较低,代码中使用的方法也是和模块对应的,所以如果没有修改代码的计划,最好忠实于原版本。
网络上看有网友表示如果音频时间太长,生成的视频会出现对不上口型的情况,建议不超过30s,有空的朋友可以测试一下。
实验环境
硬件
CPU:本项目使用的是pytorch。不像很其他多项目限制了必须使用CUDA,该项目单纯的使用CPU也可以跑,但是速度会慢很多(即使是很短的音频也要花上1h)。本人的显卡是英特尔,因此不幸只能选择纯CPU的方式。
软件
windows系统
anaconda
实验步骤
源代码下载
可以直接下载包含预训练模型的源代码:https://pan.baidu.com/s/1QIG5t1WIO6s-zWgxToP-9g?pwd=uo5o
环境准备
- 运行anaconda prompt,创建虚拟环境并激活
conda create -n sadtalker python=3.8
conda activate sadtalker
- 下载pytorch
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cpuonly -c pytorch
如果是其他环境(操作系统及GPU),可以在 https://pytorch.org/get-started/previous-versions/ 查看安装命令
3. 安装ffmpeg
conda install ffmpeg
- 安装python模块
pip install -r requirements.txt
安装模块时,有几个坑要注意一下:
(1)直接通过requirements安装可能会报错,此时就需要一个一个安装
(2)某些模块用清华源找不到,必须从官网源下载
(3)face_alignment得改成1.3.4版本的,否则也会报错
5. 将源代码中gfpgan\weights
目录下的GFPGANv1.4.pth文件,拷贝至虚拟环境(可通过conda info命令查看active env location)目录下的Lib\site-packages\gfpgan\weights目录。
运行脚本
示例代码:
python inference.py --driven_audio C:\develop\SadTalker\material\voice1.wav --source_image C:\develop\SadTalker\material\pic1.png --still --preprocess full --enhancer gfpgan
示例中,将音频和视频文件放置在C:\develop\SadTalker\material\
目录下,其中音频似乎只能是wav文件。
如果去掉--still --preprocess full
,则只会生成人脸的视频
等待程序跑完之后,在results目录下的文件夹里,就会生成视频的mp4文件。