环境准备
1、运行依赖安装
In [ ]
# 升级PaddleHub
!pip install --upgrade paddlehub
In [ ]
# 下载nltk_data
!wget https://paddlespeech.bj.bcebos.com/Parakeet/tools/nltk_data.tar.gz
!tar zxvf nltk_data.tar.gz
In [ ]
# 安装ParaKeet
%cd Parakeet/
!pip install -e.
%cd ..
In [ ]
# 安装依赖
!hub install first_order_motion==1.0.0
!hub install wav2lip
!hub install fastspeech2_baker==1.0.0
表情迁移
通过FOM模型,输入图像和驱动视频,让人像动起来!
In [ ]
import paddlehub as hub
FOM_Module = hub.Module(name="first_order_motion")
FOM_Module.generate(source_image="input_data/test.jpg", # 输入图像
driving_video="input_data/zimeng.mp4", # 输入驱动视频
ratio=0.4,
image_size=256,
output_dir='./output/', # 输出文件夹
filename='FOM.mp4', # 输出文件名
use_gpu=True)
⭐ 文本转语音
输入你想让虚拟数字人说的话,转换生成一段音频。
In [ ]
sentences = ['开发者你好,欢迎使用飞桨,我是你的专属虚拟人。'] # 输入说话内容
TTS_Module = hub.Module(
name='fastspeech2_baker',
version='1.0.0')
wav_files = TTS_Module.generate(sentences)
print(f'声音已生成,音频文件输出在{wav_files}')
⭐ 唇形合成
把刚刚得到的动态视频和音频文件输入到Wav2Lip模型中,让唇形根据说话的内容动态改变。
In [ ]
W2F_Module = hub.Module(name="wav2lip")
W2F_Module.wav2lip_transfer(face='output/FOM.mp4',
audio='wavs/1.wav',
output_dir='./transfer_result/',
use_gpu=True)