数字人全拆解:如何构建一个基于大模型的实时对话3D数字人?_3d数字人开源模型

简单地说,数字人就是在数字世界的“人”。当前语境下我们谈到的数字人通常指的是借助AI技术驱动的虚拟世界人物,具备与真实人类相似甚至接近的外形、感知、交互与行为能力。

AI技术在智能数字人的应用中举足轻重,特别是随着大模型能力的涌现,一个完整的数字人系统是一个融合多种AI能力、形象设计、建模、高性能渲染引擎等多种计算机技术的综合体

本文将一起来认识一个完整的交互式数字人系统的结构、原理与相关工具。并借助开源的数字人项目Fay,演示一个简单的基于LLM的实时对话的3D数字人。

  • **你也能懂:数字人是如何工作的?
    **

  • 创造躯体:3D数字人建模与开发

  • 赋予智慧:构建数字人的控制器

  • 数字人系统的优化挑战

你也能懂:数字人是如何工作的

一个完整的交互式数字人系统的整体架构可以用下图来表示:

即使对于一个非专业技术人员,这个系统原理也并不难理解:

语音输入与识别这是数字人能“听”的基础。这部分借助于自动语音识别(ASR)技术来完成,将语音输入首先转化为自然语言的文本。通常可以借助在线云服务来完成,或者部署本地ASR模型来实现。

AI交互处理:**这是交互型数字人的“大脑”功能。**在大语言模型(LLM)出现以后,其给数字人赋予了真正的智慧与灵魂。借助LLM,理解自然语言的输入,并推理生成需要响应的内容。

**语音合成:****这是数字人能“说”的基础。**在获得文本的响应内容后,为了让数字人能够用语音“说话”,需要借助语音合成(TTS)的AI模型来把文本转化为音频流。在这个阶段,为了让数字人更像“人”,会涉及到合成音色的选择,甚至采用真人语音来训练合成模型(还记得AI孙燕姿吗?)。

**数字人驱动:****这一步就是用合成的音频流等数据来驱动已经创建好的前端数字人,让数字人边“说”边“动“,**包括声音、动作、表情。根据数字人的不同类型,这可能需要借助不同的引擎或者AI模型。比如:

  • 如果你使用大名鼎鼎的MetaHuman建模高细节的3D数字人,则需要借助Unreal虚幻引擎来驱动;

  • 如果你希望用简单的照片来做2D数字人,则可以借助一些语音驱动图片生成视频的模型来实现,比如SadTalker;

  • 如果你希望基于自己的真人视频训练出模型,来实现从语音合成真人视频,那么可以借助RAD-NeRF这样的训练框架;

**数字人:这是终端呈现出的虚拟数字人形象与动画视频,可以是3D或者2D。**比如一个3D高保真的数字人最常见的是借助Metahuman做建模,然后通过Unreal引擎导入模型进行渲染与运行。

显然,一个完整的交互式数字人系统需要有效地集成不同的模型、引擎与工具,才能最终呈现完美的效果。

让我们首先来简单了解前端3D数字人的创建过程。

创造躯体:3D数字人建模与开发

我们经常提到的一些任务机器人,一般只是一个能够自动工作的计算机程序。但数字人的特点是需要一个具体的虚拟人物形象,并且这个形象能够像“人”一样能说会动。因此,对于数字人项目来说,首当其冲的是需要准备这样的虚拟人物。这其中最逼真、应用场景最广泛,而且也是最复杂的,是3D高保真高解析度数字人,创建这样的虚拟人你需要完成形象设计、建模、动画制作,以及定义在虚拟场景中的行为逻辑(类似游戏场景)。

这里我们用著名的游戏引擎Unreal Engine系列工具来认识3D数字人的制作过程:

  • **头部模型。**如果你需要使用自己独特的头部模型,可以借助于三维建模工具来创建自己的头部模型并导出。

  • **形象建模。**通过MetaHuman Creator进行数字人本体的建模设计,你可以导入自己的头部模型,也可以选择内置的形象,然后可以对数字人的各种面容、表情、姿态等进行细节调整与制作。(类似游戏里的“捏脸”)

  • **动画与行为逻辑设计。**启动Unreal引擎的设计环境,导入已经制作的MetaHuman数字人模型,进行数字人动画、交互行为逻辑等设计,你甚至可以借助iPhone手机捕捉你自己的真人面部表情并将其用于数字人。

这个步骤是数字人设计的核心。借助UE提供的一种可视化编辑环境与脚本语言,你无需太多编程知识,就可以创建数字人的行为逻辑,比如控制角色在场景里的动作等。当然,作为交互式数字人最重要的环节也需要在这里进行定义:如何接受音频流、情绪数据等信息来驱动数字人说话、唇形甚至动作。

借助iPhone实现面部表情捕捉并用于数字人:

本图片来自Unreal官方网站

可视化的设计数字人的交互行为逻辑:

  • **数字人打包运行。**在完成上述工作以后,可以将整个数字人工程通过打包成一个可执行的应用程序运行,这样你就能看到一个正在运行的,包含丰富细节的3D数字人。

现在,我们直接下载Fay开源项目中已经完成的一个UE5数字人工程用于测试:

1. 安装Unreal引擎环境

进入https://www.unrealengine.com/官网,下载EpicGames Launcher安装包,并注册账号;下载完成后,根据提示自行安装即可。

运行已经安装的程序,安装Unreal引擎版本,建议安装5.0.3。此处安装包较大,注意留足够的空间。

2. 在Unreal商城中安装以下插件

  • Json Blueprint

  • Blueprint WebSockets

  • MetaHuman SDK

  • MetaHuman Plugin

  • Runtime Audio Importer

3. 选择下载Fay开源项目中的一个数字人工程(github搜索fay-ue5),这里我们选择一个UE5版本的数字人。

4. **运行数字人。**下载完成后解压,双击fay_ue5.uproject文件会自动使用UE环境打开项目,点击运行按钮,即可以看到运行中的数字人:

5. 【可选】**数字人工程查看与编辑。**借助环境中的编辑器,可以看到数字人的相关行为逻辑,比如是如何借助websocket接收语音流并驱动数字人“说话”。如果你有兴趣驱动自己设计的数字人,可以参考此处的程序设计。

当然,此刻运行的数字人是无法互动的,原因是她目前只有“躯体”,还缺乏真正的智慧告诉她怎么与你互动,这也就是后端的数字人控制器。

赋予智慧:构建数字人的控制器

我们把前面的基本原理图稍稍细化下,这里的黄色部分就构成了数字人的控制器:

控制器作为数字人的大脑中枢,承担着借助各种AI技术来与真实人类完成最终交互所需的关键能力,并将输出通过数字人的语音、动作、表情进行呈现,从而完成整个交互闭环。

这里简单介绍每个模块构建的基础技术及可能选择:

【语音识别模块】

语音识别模块通过监听设备语音输入设备(麦克风),采集语音流,并借助ASR模型与接口实时转换为文本内容,用于后续交互处理模块。ASR接口的实现可以借助现成的API或者模型:

  • 云端ASR API:讯飞、阿里云、百度、腾讯、OpenAI

  • 本地ASR模型:百度的PaddleSpeech、ASRT、SpeechBrain、FunASR等,在本地部署A启动后,通过API本地访问即可

  • 本地音频的采集处理可以借助Python的PyAudio库

【AI交互处理模块】

这是控制器的核心模块。在LLM出现以后,很容易想到借助其强大的自然语言理解与生成能力来做出更加自然的数字人响应,只需要简单的将语音识别出来的文本内容组装到Prompt,并调用大模型的API接口输出即可。

当然,对于企业客户来说,直接的LLM响应可能无法满足企业的实际需求,因此,借助RAG(检索增强生成)给LLM补充企业私有知识,以生成更个性化与企业相关的响应内容是一种常见的方案。

这个模块中常见的技术选择有:

  • 云端LLM:文心一言、讯飞、阿里通义千问、OpenAI等

  • 本地LLM:开源ChatGLM、通义千问开源版、Llama2中文版等

  • RAG应用:可以自行通过LangChain/LlamaIndex开发框架定制、或者借助FastGPT这样的RAG低代码平台直接构建,方便管理

  • 另外一个有用的技巧是,在对接LLM时,可以借助类似One-API这样的工具搭建LLM模型池:在前端统一API接口,在后端对接多个大模型,从而可以支持随时灵活切换模型,而无需调整接口。

【语音合成模块】

AI响应生成以后的文本交给TTS模块,进行语音合成音频后用于后续驱动数字人的语音输出。为了让生成的语音更加自然与拟人,此处通常会涉及到两个额外的选项:

  • 不同的声音风格选择(大部分的商业TTS服务都支持),有的TTS服务或开源模型还会支持上传个人音频,以训练个性化的声音输出

  • 情绪识别。部分商业TTS服务(如微软Azure TTS)会直接支持带情绪识别的TTS;有的则需要你调用额外的情绪识别API生成情绪数据

这个模块中常见的技术选择有:

  • 云端TTS服务:百度、阿里、微软等主流云服务商都提供TTS API服务

  • 本地TTS服务:推荐微软的免费开源tts库edge-tts库

  • 文字情绪分析:推荐借助python的一个中文情感分析库Cemotion来实现,也可以借助讯飞的在线API

【数字人通信】

这个模块用来把合成的音频流、情绪数据、甚至唇形数据传递给前端的数字人,用来驱动数字人的语音与动作输出。

在本文演示的Fay开源项目中,这部分由前端数字人项目中UE的WebSocket插件与后端控制器通过WebSocket通道来完成:将TTS模块生成的音频/情绪等数据发送给数字人,数字人使用收到的数据来合成动画视频,最后播放音视频给交互者。

现在,我们来下载 Fay开源项目控制器代码进行测试(这里采用最常见的助理版本,通常用来构建一问一答型的交互数字人):

  1. 下载Fay开源项目源代码(助理版)

  2. 安装依赖pip install -r requirements.txt(建议使用conda虚拟环境)

  3. **执行python main.py启动控制器。**此时可以看到一个UI界面,提供了简单的直接文字对话测试的功能和一些设置,比如TTS声音的选择。

    如果此时已启动前端UE数字人,就可以看到“数字人已连接”的提示(下图红框中):

4. **开启麦克风:**启动控制器的麦克风音频采集,这样,数字人就能够听到你的声音,并给予回复:

在控制器的后台,你可以完整的看到处理过程与日志:

数字人系统的优化挑战

上文我们使用一个开源的数字人项目Fay(再次感谢Fay项目的贡献者)来拆解并学习了一个完整的3D交互数字人的架构,并做了简单测试。但是请注意,这里只是一个演示基本工作流程的数字人,而在真实的企业应用中,根据数字人的应用场景,还有大量的需要个性化设计、优化与完善的环节,包括:

  • 个性化的数字人形象设计与建模

  • 数字人在复杂场景中的行为逻辑优化(比如直播)

  • **端到端流程的稳定性与性能优化。**这也是很多数字人系统面临的最大挑战。由于数字人运行流程涉及到多个较复杂的处理节点与AI模型,这也导致故障点的增多与更多的响应延迟,这对其中各环节的技术选择与工程化调优提出了很多的挑战。比如:

  • 各类AI模型的选择与测试,云端OR本地,商业OR开源

  • ASR与TTS的稳定性、准确性与响应速度

  • 如何兼顾大语言模型输出的完整与简洁性(语音不宜做过长的响应)

  • 大语言模型输出的幻觉问题、多轮对话问题

  • RAG应用额外的Retriver以及更大的上下文理解带来的性能延迟

  • 如何做出多模态的响应,比如介绍产品时能结合产品图片

这些都是在实际数字人工程中可能会面临的挑战,我们也期待有更多优秀的数字人开源项目与工程平台的出现。

大模型岗位需求

大模型时代,企业对人才的需求变了,AIGC相关岗位人才难求,薪资持续走高,AI运营薪资平均值约18457元,AI工程师薪资平均值约37336元,大模型算法薪资平均值约39607元。
在这里插入图片描述

掌握大模型技术你还能拥有更多可能性

• 成为一名全栈大模型工程师,包括Prompt,LangChain,LoRA等技术开发、运营、产品等方向全栈工程;

• 能够拥有模型二次训练和微调能力,带领大家完成智能对话、文生图等热门应用;

• 薪资上浮10%-20%,覆盖更多高薪岗位,这是一个高需求、高待遇的热门方向和领域;

• 更优质的项目可以为未来创新创业提供基石。

可能大家都想学习AI大模型技术,也想通过这项技能真正达到升职加薪,就业或是副业的目的,但是不知道该如何开始学习,因为网上的资料太多太杂乱了,如果不能系统的学习就相当于是白学。为了让大家少走弯路,少碰壁,这里我直接把全套AI技术和大模型入门资料、操作变现玩法都打包整理好,希望能够真正帮助到大家。

读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用

零基础入门AI大模型

今天贴心为大家准备好了一系列AI大模型资源,包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

有需要的小伙伴,可以点击下方链接免费领取【保证100%免费

点击领取 《AI大模型&人工智能&入门进阶学习资源包》*

1.学习路线图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果大家想领取完整的学习路线及大模型学习资料包,可以扫下方二维码获取
在这里插入图片描述
👉2.大模型配套视频👈

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。(篇幅有限,仅展示部分)

img

大模型教程

👉3.大模型经典学习电子书👈

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(篇幅有限,仅展示部分,公众号内领取)

img

电子书

👉4.大模型面试题&答案👈

截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(篇幅有限,仅展示部分,公众号内领取)

img

大模型面试

**因篇幅有限,仅展示部分资料,**有需要的小伙伴,可以点击下方链接免费领取【保证100%免费

点击领取 《AI大模型&人工智能&入门进阶学习资源包》

**或扫描下方二维码领取 **

在这里插入图片描述

<think>好的,用户之前让我介绍齐天大圣的建模,我给他分成了文学属性、战斗能力数学模型和三维可视化建模流程三个部分。现在用户回复说“我要的是一个3D模型”,看起来他可能对我的回答不太满意,或者之前的回复没有完满足他的需求。 首先,我需要分析用户的需求。用户第一次提问时,可能对“建模”有不同的理解。在工程或计算机图形学领域,建模通常指的是3D模型的创建,而之前的回答更偏向于数学和概念上的建模。所以用户现在明确说需要的是3D模型,说明他可能更关注实际的3D建模步骤、软件工具或者技术细节。 接下来,我要考虑用户可能的身份。他可能是一名学生、3D设计师,或者是对游戏开发、动画制作感兴趣的人。他需要具体的指导,比如使用什么软件、建模的流程、注意事项等。之前的回答虽然提到了三维可视化建模流程,但可能不够详细,或者用户希望得到更实际的步骤和工具推荐。 然后,用户的深层需求是什么?他可能希望自己动手创建一个齐天大圣的3D模型,或者需要指导别人来完成这个项目。因此,他需要详细的步骤、软件推荐、资源获取方式以及优化技巧。此外,用户可能对模型的细节有较高要求,比如拓扑结构、材质贴图、动画绑定等。 现在我需要调整之前的回答结构,专注于3D建模的具体流程,而不是概念或数学建模。应该包括软件推荐(如Blender、Maya、ZBrush)、建模步骤(参考图、基础模型、细节雕刻、拓扑优化、材质贴图、骨骼绑定、动画测试、渲染输出)、资源获取(Quixel Megascans、Texture Haven)、注意事项(多边形数量、UV展开、绑定权重)以及进阶技巧(扫描建模、程序化材质、物理模拟)。 同时,用户可能需要知道如何获取参考图,如何优化模型性能,以及如何处理动画部分。例如,提到使用FACS系统进行面部表情控制,或者使用Marvelous Designer处理服装布料,这些都能增加回答的专业性和实用性。 还要注意避免使用过多数学公式,转而用更实际的步骤说明。确保语言简洁明了,结构清晰,分点列出,方便用户一步步跟随操作。另外,提供资源链接和软件推荐,帮助用户快速找到所需的工具和素材。 最后,检查是否有遗漏的部分,比如是否需要提及3D打印的注意事项,或者不同软件之间的文件格式转换问题。不过根据用户当前的请求,可能更专注于数字模型而非实体打印,因此可以暂时忽略这部分,除非用户后续有进一步的问题。 总结来说,用户需要的是一个详细的、步骤明确的3D建模指南,涵盖从准备到渲染的整个流程,以及相关工具和资源的推荐。确保回答实用,可操作性强,满足用户实际创建3D模型的需求。</think>好的!我将从**3D建模技术实现**的角度,为您拆解齐天大圣的完整三维建模流程: --- ### 一、**核心建模工具链** 推荐使用: - **Blender**(开源能工具) - **ZBrush**(高精度雕刻) - **Substance Painter**(材质绘制) - **Marvelous Designer**(布料模拟) - **Unreal Engine 5**(实时渲染) --- ### 二、**建模关键步骤** #### 1. **参考图处理** - 建立三视图正交参考系: $$ \text{RefSys} = \begin{bmatrix} \text{正面} & \text{侧面} & \text{顶视} \\ \text{金箍棒尺寸} & \text{锁子甲纹样} & \text{凤翅紫金冠结构} \end{bmatrix} $$ - 使用Photoshop校准《西游记》插画比例 #### 2. **基础模型构建** - **身体拓扑**: - 采用T形布线(眼鼻区域密度>200面/cm²) - 肌肉系统用Lattice变形器驱动 - 毛发使用粒子系统+曲线引导 - **金箍棒参数化**: ```python # Blender Python脚本示例 def golden_hoop(scale): bpy.ops.mesh.primitive_cylinder_add(vertices=128) bpy.context.object.modifiers["Screw"].iterations = scale*10 apply_wave_modifier(frequency=0.3, amplitude=scale/2) ``` #### 3. **高模雕刻** - 72变形态存储为形态键: $$ \text{Morph}_k = \begin{cases} \text{飞虫} & k=1 \\ \text{山石} & k=2 \\ \vdots & \vdots \\ \text{法天象地} & k=72 \end{cases} $$ - 使用ZBrush的DamStandard笔刷雕刻战斗伤痕 #### 4. **材质系统** - 火眼金睛Shader节点: ``` [Fresnel] → [ColorRamp(580nm金→630nm红)] → [Volumetric Scatter] ``` - 锁子甲智能材质: - 基础层:Anisotropic金属 - 磨损层:Cavity遮罩控制 - 佛光层:HDR辉光贴图 --- ### 三、**动画系统构建** #### 1. **骨骼绑定** - 四套骨骼系统并行: - 主体:HumanIK+自定义尾巴骨骼链 - 毛发:动力学骨骼(每根猴毛独立物理模拟) - 披风:Cloth模拟+风场影响 - 金箍棒:刚体动力学约束 #### 2. **核心动作库** - 筋斗云轨迹方程: $$ \vec{r}(t) = \vec{r}_0 + \int_{0}^{t} \left( \vec{v}_0 e^{-\beta t} + \frac{\vec{F}_{\text{cloud}}}{m} t \right) dt $$ - 棍法动作捕捉数据映射到NLA编辑器 #### 3. **表情系统** - 基于FACS的面部绑定: - 火眼金睛:虹膜缩放+巩膜发光 - 龇牙表情:17个混合形态键 - 念咒口型:Viseme音素映射 --- ### 四、**性能优化方案** 1. **LOD系统**: - 近距离:800万面(ZBrush细节) - 中距离:50万面(Normal Map烘焙) - 远距离:1万面( impostor生成) 2. **材质压缩**: - BC7格式(8:1压缩比) - 猴毛采用Hair BSDF优化 3. **动画重定向**: - 使用Motion Matching技术 - 战斗动作数据库采用k-d树索引 --- ### 五、**资源获取建议** 1. **基础模型**: - 可购买CGTrader的《西游角色包》 - 或使用Metahuman自定义基底 2. **材质资源**: - Quixel Megascans:山岩/佛殿材质 - Texture Haven:云纹/丝绸图案 3. **动捕数据**: - 武术库:Rokoko猴棍动捕数据 - 面部库:苹果ARKit表情数据 --- 如需具体实现某个环节(如毛发动力学参数设置),可告知您使用的软件平台,我将提供针对性技术方案。当前模型复杂度建议使用RTX 4090以上显卡进行实时渲染。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员一粟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值