实时智能应答3D数字人搭建2

2024-04-14 09:36

本文主要是介绍实时智能应答3D数字人搭建2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

先看效果:

3d数字人讲黑洞



根据艾媒咨询数据,2021年,中国虚拟人核心产业规模达到62.2亿元,带动市场规模达到1074.9亿元;2025年,这一数据预计将达到480.6亿元与6402.7亿元,同比增长迅猛。
数字人可以用于:电子导游;电子解说员;虚拟老师;售前、售后客服;前台指引。

最终选择UE5作为模型的驱动引擎。主要有以下几点原因:首先UE5不像live2d那样,出来的是假三维的纸片人;其次,UE5里对现实世界的光照、材质、重量等物理属性都存在一一映射,可以非常全面地还原一个真实场景。这里提醒一下,在三维的世界里,有两条工具线:一个是引擎,用于驱动三维模型按照你的逻辑运作;一个是建模工具,比如maya。但通常这两类工具都会互相融合、相互交叉。

UE5虚拟数字人技术的核心是虚拟人物建模与动画技术。 这种技术通过对真实人类的动作、表情、语音等基础数据进行大量采集,将这些数据导入到UE5中,配合UE5强大的引擎和工具集完成数字人物的建模、场景配置、动画制作等一系列工作,最终生成高度逼真的数字人物。

MetaHuman,是由Nvidia公司开发的一种数字人制作技术。metahuman说白了其实就是一个云端版本的ue,优点是集成了大量真人扫描的高精度组件,可以非常方便地调节出一个欧美真人。对,你无看错,是欧美的。官方的解释是,由于疫情原因,还未对亚洲人进行扫描。在虚拟主播这个案例上实际我们就是用metahuman的。

使用MetaHuman技术对数字人进行驱动。首先需要采集目标人物的动捕数据,然后使用这些数据对数字人模型进行驱动。在此过程中,还需要对数字人的表情、声音等进行实时捕捉和模拟。

Omniverse 和 Audio2Face 使用的 USD、JSON 格式与其他软件的可交互性强且易于解析,为数字人制作生产带来了显著的帮助。
这一次我们主要讲如何用虚幻5创造一个可以用facegood驱动的3D数字人

下载虚幻引擎5
下载虚幻5
创建一个metahuman数字人,并配置与Audio2face 的对接。

Audio2face 下载
要注册账号,先安装Omniverse,通过Omniverse安装Audio2face。对显卡的最低要求:GeForce RTX 3070 NVIDIA RTX A4000
NVIDIA 的 Audio2Face 是一套基于 AI 的技术,可生成全脸动作、情感和唇型同步,这些功能完全源自音频源,具有分析音频并自动制作情感动画的 Audio2Emotion 等功能。
全脸神经网络还可以为包括眼睛和舌头在内的所有面部特征进行动画处理。
角色设置功能允许用户在角色重定向过程中设置眼睛、牙齿和舌头,从而实现全脸角色转移。

1, Audio2face免安装版下载:链接:百度网盘 请输入提取码 提取码:76ki
2, 校正鼠标模拟点击位置程序:python clicktest.py

AudioToLipsyncServer  
下载:音频转口型服务器 – 人宅学院
启动AudioToLipsyncServer

下载xuniren-vi
github:https://github.com/xiaobingchan/xuniren-v1
下载


安装阿里云语音合成SDK
详细:404错误页-阿里云帮助中心 ... .0.i0#0196f89028lk2
获取阿里云token:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

git clone https://github.com/aliyun/alibabacloud-nls-python-sdk/
cd alibabacloud-nls-python-sdk/
python -m pip install -r requirements.txt

修改 alitts.py
# 创建AcsClient实例
client = AcsClient(
   "LTAI5tNTZy1HGw7nH1Rio1fg",
   "22ltjZnzTjn6oVFuITDW0z93eIz7k7",
   "cn-shanghai"
);
.....................
appKey = 'pAC8NSFL2DjQSWQr'

Error:SignatureDoesNotMatch Specified signature is not matched with our calculation. server string to sign
错误:SignatureDoesNotMatch 指定的签名与我们的计算不匹配。要签名的服务器字符串为

该错误常出现在用户没有使用官方的SDK来生成请求 ,而是自己手动计算签名构造网络请求进行发送时,签名的计算方式出现问题 。

AccessKey ID:用于标识用户。
AccessKey Secret:用于验证用户的密钥。AccessKey Secret必须保密。
获取阿里云账号的AccessKey Secret
RAM用户的AccessKey Secret只在创建时显示,不支持查看,请妥善保管


安装文心一言SDK
文心一言

git clone https://github.com/PaddlePaddle/ERNIE-Bot-SDK
cd ERNIE-Bot-SDK
cd erniebot/
conda activate vits
pip install .

{'error_code': 17, 'error_msg': 'Open api daily request limit reached'}
{'error_code': 17, 'error_msg': '达到开放api每日请求限制'}  

开通付费服务

安装ffmpeg
Builds - CODEX FFMPEG @ gyan.dev
测试命令:ffmpeg


测试讯飞,语音转文字(耳)

python xunfei_byte.py


测试文心一言,文本对话(聊)

python wenxin_model.py


测试阿里,文字转语音(嘴)

Python aliwav.py

启动程序

python weba2f.py

让他念一段文字
http://127.0.0.1:5000/apppost


直接对话:
http://127.0.0.1:5000/wenxin


参考:
实时智能应答3D数字人搭建2
实时智能应答3D数字人搭建2 - 神经网络 - 金双石科技 -
(出处: 金双石科技)


实时智能应答3D数字人搭建
实时智能应答3D数字人搭建 - 神经网络 - 金双石科技 -
(出处: 金双石科技)

这篇关于实时智能应答3D数字人搭建2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/902680

相关文章

5分钟获取deepseek api并搭建简易问答应用

《5分钟获取deepseekapi并搭建简易问答应用》本文主要介绍了5分钟获取deepseekapi并搭建简易问答应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1、获取api2、获取base_url和chat_model3、配置模型参数方法一:终端中临时将加

Mycat搭建分库分表方式

《Mycat搭建分库分表方式》文章介绍了如何使用分库分表架构来解决单表数据量过大带来的性能和存储容量限制的问题,通过在一对主从复制节点上配置数据源,并使用分片算法将数据分配到不同的数据库表中,可以有效... 目录分库分表解决的问题分库分表架构添加数据验证结果 总结分库分表解决的问题单表数据量过大带来的性能

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

鸿蒙开发搭建flutter适配的开发环境

《鸿蒙开发搭建flutter适配的开发环境》文章详细介绍了在Windows系统上如何创建和运行鸿蒙Flutter项目,包括使用flutterdoctor检测环境、创建项目、编译HAP包以及在真机上运... 目录环境搭建创建运行项目打包项目总结环境搭建1.安装 DevEco Studio NEXT IDE

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

usaco 1.2 Name That Number(数字字母转化)

巧妙的利用code[b[0]-'A'] 将字符ABC...Z转换为数字 需要注意的是重新开一个数组 c [ ] 存储字符串 应人为的在末尾附上 ‘ \ 0 ’ 详见代码: /*ID: who jayLANG: C++TASK: namenum*/#include<stdio.h>#include<string.h>int main(){FILE *fin = fopen (