声音驱动照片或视频人物说话嘴唇同步开源库Wav2Lip教程

声音驱动照片或视频人物说话嘴唇同步开源库Wav2Lip教程声音驱动照片或视频人物说话嘴唇同步开源库Wav2Lip教程

如何你有一张人物照片或人物说话的视频,我想让他说别的话但是嘴唇不同步,怎么办,我们可以试试这款开源的库Wav2Lip,他能让任何人的照片说话,还能改写别人说话的视频,以假乱真,在线体验地址:https://replicate.com/devxpy/cog-wav2lip

今天我们来教一下怎么在你自己的电脑搭建环境来运行。

一、准备环境

首先使用conda创建新的虚拟环境,然后激活这个环境,没有安装canda的来安装,下载地址:https://anaconda.org/

conda create -n lip python=3.7conda activate lip

接着来到官方网站,使用git克隆代码,或者直接下载源码压缩包解压,安装依赖

git clone https://github.com/Rudrabha/Wav2Lip.git

修改根目录的requirements.txt为:

librosa==0.7.0numpy==1.17.1opencv-contrib-pythonopencv-pythontorchtorchvisiontqdmnumba==0.48

然后执行依赖安装

pip install -r requirements.txt

接下来需要安装ffmpeg,这是音视频处理的神器,ubuntu版本使用apt安装

sudo apt install ffmpeg

windows用户的话,可以到 https://github.com/BtbN/FFmpeg-Builds/releases 下载,解压后将bin对应的路径添加到系统环境变量PATH中。

二、准备素材

下面开始准备素材,我们把官方体验站上的测试视频下载下来,使用下面的命令wget --no-check-certificate https://repo.bfw.wiki/bfwrepo/video/63e1dd7ddd2b0.mp4

放到根目录保存为source.mp4,我们再将新的声音文件放到根目录改为source.mp3,我们将视频和声音截取前10秒并另存为。

# 将视频截取前10秒保持为test.mp4,目标视频的音视频编码格式与原始的保持一致

ffmpeg -ss 00:00:00 -t 00:00:03 -i source.mp4 -vcodec copy -acodec copy test.mp4# 将新的声音截取前10秒保持为test.mp3

ffmpeg -ss 00:00:00 -t 00:00:03 -i source.mp3 -vcodec copy -acodec copy test.mp3

准备模型文件

第一个需要的模型是脸部检测预训练模型,下载地址是: https://www.adrianbulat.com/downloads/python-fan/s3fd-619a316812.pth,下载后放到目录face_detection/detection/sfd中,并重命名为s3fd.pth。

声音驱动照片或视频人物说话嘴唇同步开源库Wav2Lip教程

脸部模型主要接下来去下载模型文件,这里作者提供了3个,可以任选一个,后两个优于第一个。它们的区别如下表所示,本文使用的是Wav2Lip + GAN,下载地址:https://iiitaphyd-my.sharepoint.com/:u:/g/personal/radrabha_m_research_iiit_ac_in/EdjI7bZlgApMqsVoEUUXpLsBxqXbn5z8VTmoxp55YNDcIA?e=n9ljGW ,下载后放在项目根目录声音驱动照片或视频人物说话嘴唇同步开源库Wav2Lip教程

声音驱动照片或视频人物说话嘴唇同步开源库Wav2Lip教程

三、运行代码

执行下面的命令将视频test.mp4和音频3s.mp3进行合成python inference.py --checkpoint_path wav2lip_gan.pth --face test.mp4 --audio test.mp3

声音驱动照片或视频人物说话嘴唇同步开源库Wav2Lip教程

声音驱动照片或视频人物说话嘴唇同步开源库Wav2Lip教程

最后,生成的新视频文件保存在results/result_voice.mp4,生成的中间文件存放在temp下,像单独处理后的音频temp.wav、视频result.avi等。

{{collectdata}}

网友评论1

  1. # 110
    你漏了一个命令就是照片说话的命令 python inference.py --checkpoint_path wav2lip_gan.pth --face test1.jpeg --audio test.mp3
    thinkfuture 2023-03-16回复