使用飞桨深度学习框架生成2D数字人的实现步骤

新知榜官方账号

2023-11-16 08:55:16

使用飞桨深度学习框架生成2D数字人的实现步骤

本篇学习记录的时间为:2023年8月17号。本篇不涉及什么具体深度学习的内容,就纯粹的使用。基于百度开源的飞桨深度学习框架,弄了一个2D数字人。虽效果不怎么好,但也算实现了吧。效果如下:

详细实现步骤如下:

步骤1:环境搭建

我的电脑没有nvidia的gpu,虽然也能跑起来,但运行时间实在是慢。因此自己的电脑如果没有nvidia的gpu的话,建议选择百度飞桨平台的aistudio来操作,每天好像有几小时的免费算力使用。我这里的运行环境选择的是V10032G的配置,运行之后的界面如下:

运行之后,选择终端,就可以进行环境检查了:

//环境检测
//python版本检测
python -V
//python的一些依赖环境检查,你会发现paddlepaddle-gpu,paddlehub都已经安装好了
pip list

如何遇到如下问题,就要小心了,后面pip怎么安装都报错,尴尬的是,怎么重装/升级pip都没解决,最后选择的是重新开启一个aistudio:

WARNING: There was an error checking the latest version of pip.

环境检查没有问题后,就可以安装依赖了:

//安装表情迁移模块
hub install first_order_motion
//安装文本转语音模块,默认是女声的
hub install fastspeech2_baker
//安装依赖的过程中,可能还会遇到typeguard相关的错误,这里我选择降低版本解决的
pip install typeguard==2.13.3
//重装fastspeech2_baker
hub install fastspeech2_baker
//安装唇形合成模块
hub install wav2lip

步骤2:素材准备

准备一个2d的人脸头像和一个主持人口播视频。2d的人脸头像,个人是使用百度文言一心弄出来的图片。口播视频是网上找的主持人口播视频。也可以运行我在aistudio创建的项目,去获取素材。项目地址:https://aistudio.baidu.com/projectdetail/6653308

步骤3:视频人物面部表情迁移

#视频人物面部表情迁移
import paddlehub as hub

motion = hub.Module(name='first_order_motion')
motion.generate(source_image='dataset/test.png', #输入图像
driving_video='dataset/video.mp4', #输入驱动视频
ratio=0.4,
image_size=256,
output_dir='./output/', #输出文件夹
filename='FOM.mp4', #输出文件名
use_gpu=True)

步骤4:文本转语音

#文本转语音
import paddlehub as hub

sentences=['看我的摩托,看我的摩托,看我的摩托,看我的摩托,哒哒哒。'] #输入说话内容
tts = hub.Module(name='fastspeech2_baker', version='1.0.0')
wav_files = tts.generate(sentences)
print(f'声音已生成,音频文件输出在{wav_files}')

步骤5:唇形合成

#唇形合成-把你生成的语音与视频的唇形合成
import paddlehub as hub

w2f = hub.Module(name='wav2lip')
w2f.wav2lip_transfer(face='output/FOM.mp4', audio='wavs/1.wav', output_dir='./output/', use_gpu=True)

本页网址:https://www.xinzhibang.net/article_detail-20176.html

寻求报道,请 点击这里 微信扫码咨询

关键词

飞桨 深度学习 2D数字人

分享至微信: 微信扫码阅读

相关工具

相关文章

相关快讯