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

news2025/2/26 13:36:31

语音驱动口型的算法
先看效果:

你很快就可以帮得上我了



FACEGOOD 决定将语音驱动口型的算法技术正式开源,这是 AI 虚拟数字人的核心算法,技术开源后将大程度降低 AI 数字人的开发门槛。FACEGOOD是一家国际领先的3D基础软件开发商,研究领域涉及生物软组织模拟、运动科学、计算机图形学等,其核心产品软件AVATARY广泛应用于国内外影视动画、游戏、虚拟人应用场景的娱乐、文化、媒体等行业的3D数字内容制作,提供优秀的数字工程设计、娱乐软件服务和媒体娱乐行业和基础设施行业的产品和技术解决方案。 2022年6月28日,FACEGOOD(量子动力(深圳)计算机科技有限公司)作为国内首批企业以Principle Member身份正式加入Metaverse Standard Forum(元宇宙标准论坛)。

下载工程

​git clone  https://github.com/FACEGOOD/FACEGOOD-Audio2Face.git



文件如下:
 

5848f27e578f3b9a0e85ea45de6d07a4.png



部署依赖

pip install PyAudio
pip install tensorflow
pip install websocket ,websocket-client



pyaudio库,使用这个可以进行录音,播放,生成wav文件等等。PyAudio 提供了 PortAudio 的 Python 语言版本,这是一个跨平台的音频 I/O 库,使用 PyAudio 你可以在 Python 程序中播放和录制音频。为PoTaTudio提供Python绑定,跨平台音频I/O库。使用PyAudio,您可以轻松地使用Python在各种平台上播放和录制音频.
PyAudio更多
相关版本如下:tersorflow-gpu 2.6
cudatoolkit 11.3.1 cudnn 8.2.1 scipy 1.7.1
python-libs:pyaudio 请求 websocket websocket-client

申请智能语音API接口
会话精灵(Talking Genie) “ www.talkinggenie.com ”,是思必驰新近推出的针对企业智能服务的定制平台,提供虚拟机器人的在线定制服务。
会话精灵为客户提供通过API接入的方式,获取智能会话、语音识别、语音合成等服务的能力。如果您自主开发前端应用,可以通过创建API接入类型的产品,对接会话精灵的相关能力。
请前往会话精灵文档中的以下地址: https: //login.tgenie.cn/,申请一个产品帐号来替换您项目中的产品帐号。选择 "智能语音API接入",获取到PID、PublicKey、SecretKey。
 

d041b45714ac016aecc52755067eb9db.png



修改配置文件
将获取到的KEY填入到配置文件:zsmeif_aispeech_config.json 对应的参数中
productId:会话精灵ID
PublicKey是应用标识,在开放api调用过程中唯一标识一个应用;
SecretKey是调用API时的Token,用来验证请求的合法性
Token:Token api接口生成的token,必须和productId是对应的关系
 

4213af0342db2a729a6dee1d96e0a1a3.jpeg


接口: /aispeech/portal/api/v1/ba
同时支持语音识别、对话和语音合成功能
上述3个功能可同时使用
◑对query.type 传入 url 或者voice时,即表示使用语音识别功能。
一句话识别就是对一分钟内的短语音进行识别,适用于对话聊天,控制口令等较短的语音识别场景。
支持音频编码格式:pcm(无压缩的pcm文件或wav文件)、ogg\wav 8000\16000;   mp3\flv 16000\22050\44100;  amr 8000的单声道(mono)。
仅支持单声道
支持音频采样率:8000Hz、16000Hz。
支持对返回结果进行设置:处理唤醒词,是否识别结果需要加标点符号,是否将中文数字转为阿拉伯数字输出(逆文本)。支持多种语言的识别,资源模型选择
接口地址:https://api.talkinggenie.com/aispeech/portal/api/v1/ba/asr
◑传入dialog.enableDialog = true 时,即表示使用对话功能
会话接口地址:https://api.tgenie.cn/api/v1/ba
◑对output.type传入tts或者url时,即表示使用语音合成功能,语音合成提供将输入文本合成为语音二进制数据流或者音频下载url的功能
参数中的asr, tts, audio如果不传入,即表示使用默认参数,如果不符,会影响服务的使用
接口地址:https://api.tgenie.cn/api/v1/tts

实时语音识别,对于实时采集到的录音流传输做识别,适用于麦克风实时采集数据,边接收边识别的不间断识别的场景。
/aispeech/runtime/v3/recognize?productId=914005898&token=a616baa5-c203-4b0f-8cd0-1cd7418d734d

下载FaceGoodLiveLink
FaceGoodLiveLink.exe程序请从这里下载:data_all code : n6ty

启动

python zsmeif.py


 

06ce28d5dd300b46b9a12cf0663a5672.png



当终端显示“run main”消息时,请运行位于/example/ueExample/文件夹中的FaceGoodLiveLink.exe
 

bfcae55e6d39d14a19fbd3e05e4ac3dd.png



在UE项目的屏幕上点击并按住鼠标左键,即可与AI模型对话并等待语音和动画响应。
 

60e57e3f3fba0d3ead939a89599abe66.png




错误处理
1:ERROR: Handshake status 429 Too Many Requests -+-+- {'server': 'nginx/1.15.3', 'date': 'Mon, 04 Mar 2024 03:08:29 GMT', 'content-type': 'application/json; charset=UTF-8', 'transfer-encoding': 'chunked', 'connection': 'keep-alive', 'cache-control': 'no-store, no-cache, must-revalidate, max-age=0', 'x-content-type-options': 'nosniff', 'x-frame-options': 'DENY', 'x-xss-protection': '1 ; mode=block'} -+-+- None
ERROR: Could not create connection: ws://api.tgenie.cn/runtime/v3/recognize?res=comm&productId=914020983&token=114d40a6-ad9d-408e-b47a-16d9c9fe1a9d
 

f01649d09de000e0e86e17ea09c1b48d.png



在 HTTP 协议中,响应状态码 429 Too Many Requests 表示在一定的时间内用户发送了太多的请求,即超出了“频次限制”。
去会话精灵中申请一个产品帐号

2:Error Main loop: Expecting value: line 1 column 1 (char 0)
 

f49bb33b9b3b288c5533632097813278.png


在会话精灵中选择 "智能语音API接入"。
这两个问题都是配置文件里的参数没有设置好。注意是一句话识别,传入的语音数据时长不能超过60s。


音频产生表情的流程
常规的神经网络模型训练大致可以分为三个阶段:数据采集制作、数据预处理和数据模型训练。
第一阶段,数据采集制作。这里主要包含两种数据,分别是声音数据和声音对应的动画数据。声音数据主要是录制中文字母表的发音,以及一些特殊的爆破音,包含尽可能多中发音的文本。而动画数据就是,在 maya 中导入录制的声音数据后,根据自己的绑定做出符合模型面部特征的对应发音的动画;
第二阶段,主要是通过 LPC 对声音数据做处理,将声音数据分割成与动画对应的帧数据,及 maya 动画帧数据的导出。
第三阶段就是将处理之后的数据作为神经网络的输入,然后进行训练直到 loss 函数收敛即可。
项目地址:GitHub - FACEGOOD/FACEGOOD-Audio2Face: http://www.facegood.cc  更多:机器之心

在Unity中应用可以用过构建python服务,Unity客户端开启麦克风录制音频,将音频数据发送给python服务端,服务端转换为驱动BlendShape的权重数据后,返回给Unity客户端进行驱动。需要注意的是Unity中BlendShape的权重范围并不是[-1,1],因此需要进行映射。

 

3e16262858516018c00825f8c0c805e7.png



参考:
国内首批!FACEGOOD以主要成员正式加入Metaverse Standard Forum 出处:bilibili 作者:FACEGOOD官方

近实时智能应答 2D 数字人搭建  作者:薛东 AWS 解决方案架构师,负责基于 AWS 云平台的解决方案咨询和设计

别再狂吹数字人了 作者:商隐社

有道数字人形象定制

METAHUMAN轻松制作高保真数字人类

Facegood面捕全流程:AVATARY操作方法

Unity & FACEGOOD Audio2Face 通过音频驱动面部BlendShape

实时智能应答数字人搭建 作者 金双石科技

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1504832.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【sgExcelGrid】自定义组件:简单模拟Excel表格拖拽、选中单元格、横行、纵列、拖拽圈选等操作

特性&#xff1a; 可以自定义拖拽过表格可以点击某个表格&#xff0c;拖拽右下角小正方形进行任意方向选取单元格支持选中某一行、列支持监听selectedGrids、selectedDatas事件获取选中项的DOM对象和数据数组支持props自定义显示label字段别名 sgExcelGrid源码 <template&g…

MySQL主从读写分离之Proxysql(openEuler版)

实验目的&#xff1a; 基于proxysql实现MySQL的主从读写分离。 实验过程&#xff1a; 前期准备&#xff1a; 一共有四台虚拟机&#xff0c;其中三台为配置好的一主两从虚拟机&#xff0c;还有一台干净的虚拟机用来配置proxysql。 主机名地址master192.168.27.137node1192.…

如何在Windows系统使用固定tcp公网地址ssh远程Kali系统

文章目录 1. 启动kali ssh 服务2. kali 安装cpolar 内网穿透3. 配置kali ssh公网地址4. 远程连接5. 固定连接SSH公网地址6. SSH固定地址连接测试 简单几步通过[cpolar 内网穿透](cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站)软件实现ssh 远程连接kali! …

【机器学习300问】30、准确率的局限性在哪里?

一、什么是准确率&#xff1f; 在解答这个问题之前&#xff0c;我们首先得先回顾一下准确率的定义&#xff0c;准确率是机器学习分类问题中一个很直观的指标&#xff0c;它告诉我们模型正确预测的比例&#xff0c;即 还是用我最喜欢的方式&#xff0c;举例子来解释一下&#xf…

业务随行简介

定义 业务随行是一种不管用户身处何地、使用哪个IP地址&#xff0c;都可以保证该用户获得相同的网络访问策略的解决方案。 背景 在企业网络中&#xff0c;为实现用户不同的网络访问需求&#xff0c;可以在接入设备上为用户部署不同的网络访问策略。在传统园区网络中&#xf…

文本生成视频:从 Write-a-video到 Sora

2024年2月15日&#xff0c;OpenAI 推出了其最新的文本生成视频模型——Sora。Sora 能够根据用户的指令生成一分钟长度的高质量视频内容。这一创新的发布迅速在社会各界引发了广泛关注与深入讨论。本文将围绕本实验室发表于SIGGRAPH AISA 的 Write-a-video和 Sora 展开&#xff…

修改简化docker命令

修改|简化docker命令 使用命令打开 .bashrc 文件&#xff1a; vim ~/.bashrc在文件中添加类似以下行来创建别名&#xff1a; # 查看所有容器 alias disdocker images # 查看运行容器 alias dpsdocker ps # 查看所有容器 alias dpsadocker ps -a # 停止容器 alias dsdocker s…

python 蓝桥杯之动态规划入门

文章目录 DFS滑行&#xff08;DFS 记忆搜索&#xff09; 思路&#xff1a; 要思考回溯怎么写&#xff08;入参与返回值、递归到哪里&#xff0c;递归的边界和入口&#xff09; DFS 滑行&#xff08;DFS 记忆搜索&#xff09; 代码分析&#xff1a; 学会将输入的数据用二维列表…

云原生架构设计:分布式消息队列技术解析

消息队列是在消息传输过程中保存消息的容器&#xff0c;消息队列管理器在将消息从源到目标时充当中间人的角色&#xff0c;消息队列的主要目的是提供路由并保证消息的可靠传递。如果发送消息时接收者不可用&#xff0c;那消息队列就会保留消息&#xff0c;直到下次成功消费为止…

超网、IP 聚合、IP 汇总分别是什么?三者有啥区别和联系?

一、超网 超网&#xff08;Supernet&#xff09;是一种网络地址聚合技术&#xff0c;它可以将多个连续的网络地址合并成一个更大的网络地址&#xff0c;从而减少路由表的数量和大小。超网技术可以将多个相邻的网络地址归并成一个更大的网络地址&#xff0c;这个更大的网络地址…

C语言:通讯录(纯代码)

目录 背景&#xff1a;VS2019编译器 创建文件&#xff1a; contact.h代码&#xff1a; test.c代码&#xff1a; contact.c代码&#xff1a; 背景&#xff1a;VS2019编译器 创建文件&#xff1a; contact.h代码&#xff1a; #pragma once#include <string.h> #includ…

第二课 情感认知模型

一、学习目标 1.学习各种思想的情感模型 2.了解通过情感诱发方法所建立的情感模型 二、情感模型 想要进行情感计算&#xff0c;首先步骤就是对情感建模&#xff0c;要分析理解情感的产生&#xff0c;从而才能让计算机理解情感。由于情感是感性的&#xff0c;所以现有的情感模…

设计模式 代理模式

代理模式主要使用了 Java 的多态&#xff0c;主要是接口 干活的是被代理类&#xff0c;代理类主要是接活&#xff0c; 你让我干活&#xff0c;好&#xff0c;我交给幕后的类去干&#xff0c;你满意就成&#xff0c;那怎么知道被代理类能不能干呢&#xff1f; 同根就成&#xff…

ai学习前瞻-python环境搭建

python环境搭建 Python环境搭建1. python的安装环境2. MiniConda安装3. pycharm安装4. Jupyter 工具安装5. conda搭建虚拟环境6. 安装python模块pip安装conda安装 7. 关联虚拟环境运行项目 Python环境搭建 1. python的安装环境 ​ python环境安装有4中方式。 从上图可以了解…

BulingBuling - 《金钱心理学》 [ The Psychology of Money ]

金钱心理学 摩根-豪泽尔 关于财富、贪婪和幸福的永恒课程 The Psychology of Money Morgan Housel Timeless Lessons on Wealth, Greed, and Happiness 内容简介 [ 心理学 ] [ 金钱与投资 ] Whats it about? [ Psychology ] [ Money & Investments ] 《金钱心理学》&…

Jmeter---非GUI命令行的执行生成报告、使用ant插件执行接口测试脚本生成报告

非GUI命令行的执行 1. 在jmx后缀的文件目录下打开命令行 2. 运行&#xff1a; jmeter -n -t filename.jmx&#xff08;-n : 非GUI的方式 -t: 指定需要执行的脚本&#xff09; 生成jtl报告 运行&#xff1a; jmeter -n -t filename.jmx -l result_filename.jtl 生成html报…

【解读】OWASP大语言模型应用程序十大风险

OWASP大型语言模型应用程序前十名项目旨在教育开发人员、设计师、架构师、经理和组织在部署和管理大型语言模型&#xff08;LLM&#xff09;时的潜在安全风险。该项目提供了LLM应用程序中常见的十大最关键漏洞的列表&#xff0c;强调了它们的潜在影响、易利用性和在现实应用程序…

剑指offer经典题目整理(二)

一、斐波那契数列&#xff08;fib&#xff09; 1.链接 斐波那契数列_牛客题霸_牛客网 (nowcoder.com) 2.描述 斐波那契数列就是数列中任意一项数字&#xff0c;都会等于前两项之和&#xff0c;满足f(n) f(n-1) f(n-2) 的一个数列&#xff0c;例如&#xff1a;1 1 2 3 5 8…

类与对象-对象特性

师从黑马程序员 对象的初始化和清理 构造函数和析构函数 用于完成对象的初始化和清理工作 如果我们不提供构造和析构&#xff0c;编译器会提供编译器提供的构造函数和析构函数是空实现 构造函数&#xff1a;主要用于创建对象时为对象的成员属性赋值&#xff0c;构造函数由编…

CSS伪类与常用标签属性整理与块级、行级、行级块标签(文本,背景,列表,透明,display)

目录 文本 color&#xff1a;字体颜色 font-size&#xff1a;字体大小​编辑 front-family&#xff1a;字体 text-align&#xff1a;文本对齐 text-decoration:line-through&#xff1a;定义穿过文本下的一条线 text-decoration:underline&#xff1a;定义文本下的一条线…