本项目基于PaddleGAN实现的FirstOrder与Wav2lip,。FirstOrder是输入一个模板视频与一张照片,就可以使照片里面的人物唱出模板视频里的歌曲,前段时间很火的 「蚂蚁呀嘿」就是用这个方法做的;还有另一个方法就是使用Wav2lip,输入照片和音频就可以直接让照片根据音频的内容动起来。
git clone https://gitee.com/paddlepaddle/PaddleGAN
# 安装所需安装包%cd PaddleGAN/ !pip install -r requirements.txt !pip install imageio-ffmpeg %cd applications/
大家可以上传自己准备的视频和图片,并在下面的代码中source_image参数和driving_video参数分别换成自己的图片和视频路径,然后点击运行,就可以完成动作表情迁移,程序运行成功后,会在ouput文件夹生成名为result.mp4的视频文件,该文件即为动作迁移后的视频。
本项目中提供了原始图片和驱动视频供展示使用。具体的各参数使用说明如下
--source_image /home/aistudio/PlanA_FirstOrder/trumps.png \
--relative \
--adapt_scale \
--output /home/aistudio/PlanA_FirstOrder/output/
!pip install moviepy
#为生成的视频加上音乐
from moviepy.editor import *
videoclip_driving = VideoFileClip("/home/aistudio/PlanA_FirstOrder/zhiming.mp4") # 打开驱动视频
videoclip_result = VideoFileClip("/home/aistudio/PlanA_FirstOrder/output/result.mp4") # 打开PaddleGan刚刚生成的视频
audio_driving = videoclip_driving.audio # 提取驱动视频里的声音
video = videoclip_result.set_audio(audio_driving) # 将提取出来的声音加到生成视频的音轨中
video.write_videofile("/home/aistudio/PlanA_FirstOrder/output/final_result.mp4", audio_codec="aac") # 保存视频
生成的视频将放置在“PlanA_FirstOrder/output/”目录下,下载后即可查看效果~
%cd /home/aistudio/work# 安装所需安装包!mkdir sndfile
%cd sndfile
!wget http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.28.tar.gz
!tar xzvf libsndfile-1.0.28.tar.gz
%cd libsndfile-1.0.28!./configure --prefix=/home/aistudio/build_libs CFLAGS=-fPIC --enable-shared
!make
!make install
%cd /home/aistudio/PaddleGAN
!pip install -r requirements.txt
%cd applications/
只需在如下命令中的face参数和audio参数分别换成自己的视频和音频路径,然后运行如下命令,就可以生成和音频同步的视频。
程序运行完成后,会在当前文件夹下生成文件名为outfile参数指定的视频文件,该文件即为和音频同步的视频文件。本项目中提供了demo展示所用到的视频和音频文件。具体的参数使用说明如下:
!export PYTHONPATH=$PYTHONPATH:/home/aistudio/PaddleGAN && python tools/wav2lip.py --face /home/aistudio/PlanB_Wav2lip/MonaLisa.jpeg \
--audio /home/aistudio/PlanB_Wav2lip/TA.mp3 \
--outfile /home/aistudio/PlanB_Wav2lip/output/result.mp4 --outfile /home/aistudio/PlanB_Wav2lip/output/result.mp4