PaddleHub元宇宙直通车:手把手教你造个虚拟数字人

元宇宙时代已经来临,当你看到网络新闻上形形色色的虚拟人的时候,是不是有些心动?
你是否跟以前的我一样会想创造虚拟人需要很大的成本和技术投入,普通开发者单枪匹马根本无法办得到?
现在这些都不再是问题,PaddleHub助你快速实现!

背后支持虚拟数字人的“神秘力量”,其实是飞桨PaddlePaddle强大的开源生态和AI能力。

PaddleSpeech将文字转换成语音,让虚拟数字人有了自己的声音。

PaddleGAN的人脸生成赋予了虚拟数字人一张可爱的脸蛋,表情迁移、唇形合成(同步)模型驱动虚拟数字人的脸部活动,让虚拟人更加栩栩如生。

目前PaddleHub已经把以上模型纳入了模型库当中,现在只需要简单的十几行代码调用模型,输入图片和文字,即可生成一个生动形象的虚拟数字人。

📖 技术原理

实现虚拟数字人生成总共需要调用三个模型,分别是First Order Motion(表情迁移)、Text to Speech(文本转语音)和Wav2Lip(唇形合成)
具体技术步骤如下:
📌把图像放入First Order Motion模型进行面部表情迁移,让虚拟主播的表情更加逼近真人,既然定位是一个主播,那表情都参考当然是要用“国家级标准”的,所以参考的对象选择了梓萌老师~
📌通过Text to Speech模型,将输入的文字转换成音频输出。
📌得到面部表情迁移的视频和音频之后,通过Wav2Lip模型,将音频和视频合并,并根据音频内容调整唇形,使得虚拟人更加接近真人效果。

⏳ 1、运行依赖安装

# 升级PaddleHub
!pip install --upgrade paddlehub
# 下载nltk_data
!wget https://paddlespeech.bj.bcebos.com/Parakeet/tools/nltk_data.tar.gz
!tar zxvf nltk_data.tar.gz
# 安装ParaKeet
%cd Parakeet/
!pip install -e.
%cd ..
# 安装依赖
!hub install first_order_motion==1.0.0
!hub install wav2lip
!hub install fastspeech2_baker==1.0.0

重启内核!

⭐ 2、 开始造人

⭐ 图像准备

首先需要准备一张带好背景和人脸的二维静态图像,如图所示:

⭐ 表情迁移

通过FOM模型,输入图像和驱动视频,让人像动起来!

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)

⭐ 文本转语音

输入你想让虚拟数字人说的话,转换生成一段音频。

sentences = ['开发者你好,欢迎使用飞桨,我是你的专属虚拟人。'] # 输入说话内容

TTS_Module = hub.Module(
    name='fastspeech2_baker',
    version='1.0.0')
wav_files =  TTS_Module.generate(sentences)
print(f'声音已生成,音频文件输出在{wav_files}')

⭐ 唇形合成

把刚刚得到的动态视频和音频文件输入到Wav2Lip模型中,让唇形根据说话的内容动态改变。

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) 

🎁 大功告成

经过上面简单的三个步骤,一个虚拟数字人的视频就生成了!

生成的文件路径为 ./transfer_result/result.mp4

💟 高阶玩法

PaddleBoBo是基于飞桨PaddlePaddle深度学习框架和PaddleSpeech、PaddleGAN等开发套件的虚拟主播快速生成项目,除了可以实现以上功能之外,同时还支持调整语速、音高等,更可以经过简单的二次开发,实现实时新闻生成、直播播报等,欢迎大家体验和一键三连!
Github:https://github.com/JiehangXie/PaddleBoBo
同时也欢迎感兴趣的大佬加入,共同打造飞桨元宇宙!

⭐Github Stars

虚拟数字人的实现离不开飞桨开源生态的努力,希望大家给下面优秀的开源项目点个stars⭐
PaddleGAN:https://github.com/PaddlePaddle/PaddleGAN
PaddleSpeech:https://github.com/PaddlePaddle/PaddleSpeech
Paddlehub:https://github.com/PaddlePaddle/PaddleHub

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值