AI大模型学习二十六、使用 Dify + awesome-digital-human-live2d + ollama + ChatTTS打造数字人

news2025/5/19 9:31:34

一、说明

数字人(Digital Human) 是指通过人工智能(AI)、计算机图形学、语音合成、动作捕捉等技术创建的虚拟人物。它们具备高度拟人化的外观、语言、表情和动作,能够与人类进行交互,甚至承担特定社会角色。数字人是元宇宙、虚拟现实(VR)和人工智能领域的重要产物,正在娱乐、教育、医疗、商业等领域广泛应用。

核心特征

  • 拟人化

外观、声音、动作接近真人,部分数字人基于真人扫描建模,部分完全由计算机生成。

  • 智能化

依赖自然语言处理(NLP)、深度学习等技术,实现对话、决策、情感表达等功能。

  • 交互性

通过语音、文字、手势等多模态方式与人类互动,部分搭载传感器实现实时反馈。

核心技术

  • 人工智能(AI)

驱动对话、学习和决策能力(如GPT模型)。

  • 计算机图形学(CGI)

构建高精度3D模型,渲染皮肤、毛发等细节。

  • 语音合成(TTS)

生成自然流畅的语音(如WaveNet、VITS)。

  • 动作捕捉与驱动

通过光学/惯性动捕设备或算法生成逼真动作。 

应用场景

  • 娱乐与媒体

虚拟偶像/主播:如中国的“翎_Ling”、日本的“初音未来”。
影视特效:替代真人演员完成高危或奇幻场景。

  • 教育与培训

虚拟教师:提供个性化教学,如语言陪练、医学模拟训练。

  • 商业服务

客服/导购:银行、电商中的24小时智能助手。

  • 医疗与健康

心理疏导:AI数字人提供情感支持。

  • 元宇宙

虚拟分身:用户在虚拟世界的数字化身份。 

最核心的三个算法部分(这里暂不考虑跨模态的大模型):
1. ASR (Automatic Speech Recognition) 语音识别,现实世界中,我们和数字人的交互基本都是通过对话的方式,所以算法驱动的第一步就是语音识别,这一步将用户的音频数据转化为文字,之所以要这样做是因为我们的大模型输入都是文字。
2. AI Agent,充当了数字人的大脑,这里也可以直接接一个大语言模型,强调Agent的概念是为了让数字人拥有记忆模块等更加真实。
3. TTS (Text to Speech) 文字转语音,大语言模型的输出也是文字,但是数字人的交互输出是通过说话的方式,所以需要将文字转换为语音。 

基于 Dify 应用我们可以快速实现数字人灵魂的编排和运维,在需要修改三个组件中任一部分时,只需要编辑 Dify 应用更新即可,无需任何代码上的修改部署。同时依托于Dify强大的 AI workflow 编排、RAG 检索、模型管理、丰富的工具库使用等能力可以帮助开发者在实际应用场景中快速验证和调试,给数字人的探索发展提供了无限的可能性! 

二、准备工作

1、安装docker和docker-compose

参考以下文章

AI大模型学习二十三、在ubuntu 25.04 物理机docker-compose 安装code server 实现云IDE平台指南,并安装dify v1.3.1-CSDN博客https://blog.csdn.net/jiangkp/article/details/147940632?spm=1011.2415.3001.5331

 

 2、ollama 部署qwen3

ollama run qwen3:14b

# 后台运行

nohup ollama run qwen3:14b > output.log 2>&1 < /dev/null &

3、dify添加模型

安装自己安装的添加

三、部署awesome-digital-human-live2d

1、下载源码

 git clone https://github.com/wan-h/awesome-digital-human-live2d.git

2、配置 All in Dify

All in Dify 将数字人的三大基础组件(asr、tts、agent)均接入 Dify,要求 Dify构建的应用需要开启文字转语音以及语音转文字功能,启动时使用 Dify 的配置文件启动服务,config_all_in_dify.yaml 配置文件默认使用 DifyASR、DifyTTS、DifyAgent。


cp configs/config_all_in_dify.yaml config.yaml

 3、镜像启动

docker-compose up --build -d

4、浏览访问 

http://192.168.1.101:3000

四、在XInference上部署ChatTTS为Dify提供本地TTS服务

Xorbits Inference(Xinference)是一个性能强大且功能全面的分布式推理框架。可用于大语言模型(LLM),语音识别模型,多模态模型等各种模型的推理。通过 Xorbits Inference,你可以轻松地一键部署你自己的模型或内置的前沿开源模型。无论你是研究者,开发者,或是数据科学家,都可以通过 Xorbits Inference 与最前沿的 AI 模型,发掘更多可能。

apt-get update
apt-get install ffmpeg

conda create --name xinference python=3.12
#conda remove --name xinference --all
conda activate xinference
# 根据自己的cuda选择,我的是12.0,但是没有cu120 所以我们用cu121 这里安装不好,会导致错误
pip install torch torchaudio --index-url https://download.pytorch.org/whl/cu121

pip install xxhash -i https://pypi.tuna.tsinghua.edu.cn/simple

conda install ffmpeg -c pytorch -y
pip install ChatTTS xinference -i https://pypi.tuna.tsinghua.edu.cn/simple
# pip install xinference -i https://pypi.tuna.tsinghua.edu.cn/simple

#安装成功后,只需要输入如下命令,就可以在服务上启动 Xinference 服务: 
xinference-local -H 0.0.0.0

安装成功后,只需要输入如下命令,就可以在服务上启动 Xinference 服务: 

xinference-local -H 0.0.0.0

 Xinference 默认会在本地启动服务,端口默认为 9997。因为这里配置了-H 0.0.0.0参数,非本地客户端也可以通过机器的 IP 地址来访问 Xinference 服务。

启动成功后,我们可以通过地址 http://localhost:9777来访问 Xinference 的 WebGUI 界面了。

我们是在腾讯cloud studio 在线ide上安装的

地址为 

https://******--9997.ap-beijing.cloudstudio.work/

 

选择:Lauch Model->Audio Model->ChatTTS

可以提前从ModelScope上下载,或者让XInference自动下载模型。然后就可以运行了。

成功后会在Running Models上看到部署成功的模型。

 

安装插件 Xorbits Inference 搜索时只能输入X才能出来,奇怪喔

Dify上通过设置-》模型供应商-》Xorits Inference进行配置 

 

五、dify打造数字人

 1、创建应用

2、添加LLM模型 

在 User Prompt 或 System Prompt 中添加  /think  和  /no_think  来逐轮切换模型的思考模式 

3、配置支持TTS、SPEECH2TEXT、LLM的供应商,或搭建开源API

 点击上图功能

 预览测试

4、配置awesome-digital-human-live2d

(1)获取 Dify API 的 URL 和 KEY

 

(2)数字人前端页面填入 Dify API 的 URL 和 KEY

点击确认就成功了,不会直接关闭窗口,没有提示,close后再进来,如果换为difyagent选中,就是设置成功了

(3)聊天测试,数字人使用 Dify 提供的接口完成对话聊天

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

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

相关文章

HTML-3.2 表格的跨行跨列(课表制作实例)

本系列可作为前端学习系列的笔记&#xff0c;代码的运行环境是在HBuilder中&#xff0c;小编会将代码复制下来&#xff0c;大家复制下来就可以练习了&#xff0c;方便大家学习。 系列文章目录 HTML-1.1 文本字体样式-字体设置、分割线、段落标签、段内回车以及特殊符号 HTML…

Spring Cloud Sentinel 快速入门与生产实践指南

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言&#xff1a;流量洪峰下的微服务守卫战 &#x1f6e1;️一、Sentinel 核心架构解析1.1 Sentinel 整体架构1.2 核心处理流程 二、快速入门实战2.1 环境搭建全流程…

Android平台GB28181设备接入与功能支持详解

GB28181协议作为中国国家标准&#xff0c;广泛应用于安防、智慧城市和交通监控等领域。大牛直播SDK提供了全面支持GB28181设备接入的技术方案&#xff0c;能够有效帮助开发者实现设备的快速接入与管理。在本文中&#xff0c;我们将深入介绍大牛直播SDK在Android平台上对于GB281…

mvc-ioc实现

IOC 1&#xff09;耦合/依赖 依赖&#xff0c;是谁离不开谁 就比如上诉的Controller层必须依赖于Service层&#xff0c;Service层依赖于Dao 在软件系统中&#xff0c;层与层之间存在依赖。我们称之为耦合 我们系统架构或者设计的一个原则是&#xff…

Windows 11 C:\Windows\Web\Wallpaper

Windows 11 C:\Windows\Web\Wallpaper 纯色壁纸自定义 没一个好看的

Spring Web MVC————入门(3)

今天我们来一个大练习&#xff0c;我们要实现一个登录界面&#xff0c;登录进去了先获取到登录人信息&#xff0c;可以选择计算器和留言板两个功能&#xff0c;另外我们是学后端的&#xff0c;对于前端我们会些基础的就行了&#xff0c;知道ajax怎么用&#xff0c;知道怎么关联…

NC61 两数之和【牛客网】

文章目录 零、原题链接一、题目描述二、测试用例三、解题思路3.1 排序双指针3.1 散列 四、参考代码4.1 排序双指针4.2 散列 零、原题链接 NC61 两数之和 一、题目描述 二、测试用例 三、解题思路 3.1 排序双指针 基本思路&#xff1a;   先对序列进行排序&#xff0c;然后…

如何分析动态采样引起的计划不稳定 | OceanBase SQL 调优实践

这篇博客涉及两个知识点&#xff0c;一个是动态采样&#xff0c;另一个是 DAS 执行。 用户的问题和相关结论 我们看看用户在OceanBase 社区论坛发帖中提出的疑问及其所得出的结论。 问题&#xff1a;收集统计信息之前&#xff0c;为什么会出现计划不稳定的情况&#xff1f; …

如何实现RTSP和RTMP低至100-200ms的延迟:直播SDK的技术突破

在实时音视频传输中&#xff0c;低延迟是直播应用的核心技术要求之一。无论是在线教育、远程医疗&#xff0c;还是实时互动直播&#xff0c;延迟过大会影响用户体验&#xff0c;甚至导致应用无法正常使用。大牛直播SDK&#xff08;SmartMediaKit&#xff09;在RTSP和RTMP播放器…

symfonos: 2靶场

symfonos: 2 来自 <https://www.vulnhub.com/entry/symfonos-2,331/> 1&#xff0c;将两台虚拟机网络连接都改为NAT模式 2&#xff0c;攻击机上做namp局域网扫描发现靶机 nmap -sn 192.168.23.0/24 那么攻击机IP为192.168.23.182&#xff0c;靶场IP192.168.23.253 3&…

【图像生成大模型】Step-Video-T2V:下一代文本到视频生成技术

Step-Video-T2V&#xff1a;下一代文本到视频生成技术 引言Step-Video-T2V 项目概述核心技术1. 视频变分自编码器&#xff08;Video-VAE&#xff09;2. 3D 全注意力扩散 Transformer&#xff08;DiT w/ 3D Full Attention&#xff09;3. 视频直接偏好优化&#xff08;Video-DPO…

深度学习推理引擎---ONNX Runtime

一、基础概念 1. 什么是ONNX Runtime&#xff1f; 定位&#xff1a;由微软开发的跨平台推理引擎&#xff0c;专为优化ONNX&#xff08;Open Neural Network Exchange&#xff09;模型的推理性能设计。目标&#xff1a;提供高效、可扩展的推理能力&#xff0c;支持从云到边缘的…

VueUse/Core:提升Vue开发效率的实用工具库

文章目录 引言什么是VueUse/Core&#xff1f;为什么选择VueUse/Core&#xff1f;核心功能详解1. 状态管理2. 元素操作3. 实用工具函数4. 浏览器API封装5. 传感器相关 实战示例&#xff1a;构建一个拖拽上传组件性能优化技巧与原生实现对比常见问题解答总结 引言 在现代前端开发…

【论文阅读】A Survey on Multimodal Large Language Models

目录 前言一、 背景与核心概念1-1、多模态大语言模型&#xff08;MLLMs&#xff09;的定义 二、MLLMs的架构设计2-1、三大核心模块2-2、架构优化趋势 三、训练策略与数据3-1、 三阶段训练流程 四、 评估方法4-1、 闭集评估&#xff08;Closed-set&#xff09;4-2、开集评估&…

vue3 elementplus tabs切换实现

Tabs 标签页 | Element Plus <template><!-- editableTabsValue 是当前tab 的 name --><el-tabsv-model"editableTabsValue"type"border-card"editableedit"handleTabsEdit"><!-- 这个是标签面板 面板数据 遍历 editableT…

Linux的进程概念

目录 1、冯诺依曼体系结构 2、操作系统(Operating System) 2.1 基本概念 ​编辑 2.2 目的 3、Linux的进程 3.1 基本概念 3.1.1 PCB 3.1.2 struct task_struct 3.1.3 进程的定义 3.2 基本操作 3.2.1 查看进程 3.2.2 初识fork 3.3 进程状态 3.3.1 操作系统的进程状…

计算机单个进程内存布局的基本结构

这张图片展示了一个计算机内存布局的基本结构&#xff0c;从低地址&#xff08;0x00000000&#xff09;到高地址&#xff08;0xFFFFFFFF&#xff09;依次分布着不同的内存区域。 代码段 这是程序代码在内存中的存储区域。它包含了一系列的指令&#xff0c;这些指令是计算机执行…

我的电赛(简易的波形发生器大一暑假回顾)

DDS算法&#xff1a;当时是用了一款AD9833芯片搭配外接电路实现了一个波形发生&#xff0c;配合stm32f103芯片实现一个幅度、频率、显示的功能&#xff1b; 在这个过程中&#xff0c;也学会了一些控制算法&#xff1b;就比如DDS算法&#xff0c;当时做了一些了解&#xff0c;可…

算法题(149):矩阵消除游戏

审题&#xff1a; 本题需要我们找到消除矩阵行与列后可以获得的最大权值 思路&#xff1a; 方法一&#xff1a;贪心二进制枚举 这里的矩阵消除时&#xff0c;行与列的消除会互相影响&#xff0c;所以如果我们先统计所有行和列的总和&#xff0c;然后选择消除最大的那一行/列&am…

printf函数参数与入栈顺序

01. printf()的核心功能 作用&#xff1a;将 格式化数据 输出到 标准输出&#xff08;stdout&#xff09;&#xff0c;支持多种数据类型和格式控制。 int printf(const char *format, ...);参数&#xff1a; format&#xff1a;格式字符串,字符串或%开头格式符...&#xff1a;…