您可以借助开源社区力量构建高质量的 AI 数字人。
构建数字人的躯壳有多种方式:
构建数字人的灵魂需要注意以下几个工程关键点:
如果都要自建代码实现各模块,开发工作量巨大,迭代难度也很高,对于个人开发者来讲不现实。因此推荐借助开源社区的力量,现在开源社区已经有了像 dify、fastgpt 等等成熟的高质量 AI 编排框架,它们有大量的开源工作者维护,集成各种主流的模型供应商、工具以及算法实现等等。我们可以通过这些框架快速编排出自己的 AI Agent,赋予数字人灵魂。在笔者的开源项目中,使用了 dify 的框架,利用其编排和可视化交互任意修改流程,构造不同的 AI Agent,并且实现相对复杂的功能,比如知识库的搭建、工具的使用等都无需任何的编码和重新部署工作。同时 Dify 的 API 暴露了 audio-to-text 和 text-to-audio 两个接口,基于这个两个接口就可以将数字人的语音识别和语音生成都交由 Dify 控制,从而低门槛做出来自己高度定制化的数字人。具体的部署过程参考 B 站视频:https://www.bilibili.com/video/BV1kZWvesE25 。如果有更加高度定制的模型,也可以在 Dify 中接入 XInference 等模型管理平台,然后部署自己的模型。此外,数字人 GUI 工程中仍然保留了 LLM、ASR、TTS、Agent 等多个模块,能够保持更好的扩展,比如实现更加真实性感的语音转换、或者如果有更加 Geek 的 Agent 实现也可以选择直接后端编码扩展实现。
使用 Dify 接口需要注意:
上述种种,如果都要自建代码实现各模块,开发工作量巨大,迭代难度也很高,对于个人开发者来讲不现实。因此我们推荐借助开源社区的力量,现在开源社区已经有了像dify、fastgpt等等成熟的高质量AI编排框架,它们有大量的开源工作者维护,集成各种主流的模型供应商、工具以及算法实现等等。我们可以通过这些框架快速编排出自己的AI Agent,赋予数字人灵魂。在笔者的开源项目中,使用了dify的框架,利用其编排和可视化交互任意修改流程,构造不同的AI Agent,并且实现相对复杂的功能,比如知识库的搭建、工具的使用等都无需任何的编码和重新部署工作。同时Dify的API暴露了audio-to-text和text-to-audio两个接口,基于这个两个接口就可以将数字人的语音识别和语音生成都交由Dify控制,从而低门槛做出来自己高度定制化的数字人(如下图),具体的部署过程参考B站视频:https://www.bilibili.com/video/BV1kZWvesE25。如果有更加高度定制的模型,也可以在Dify中接入XInference等模型管理平台,然后部署自己的模型。此外,数字人GUI工程中仍然保留了LLM、ASR、TTS、Agent等多个模块,能够保持更好的扩展,比如实现更加真实性感的语音转换、或者如果有更加Geek的Agent实现也可以选择直接后端编码扩展实现。上述Dify接口使用注意事项:1.使必须在应用编排功能中打开文字转语音和语音转文字功能,否则接口会返回未使能的错误。2.只有接入了支持TTS和SPEECH2TEXT的模型供应商,才会在功能板块中展示出来,Dify的模型供应商图标下标签有展示该供应商支持哪些功能,这里可以自行选择自己方便使用的。对于TTS,不同的模型供应商支持的语音人物不同,可以根据个人喜好添加。
有了数字人躯壳,我们就需要构建数字人的灵魂,让数字人具备各种智能,比如记得你的个人信息,充当你的个人助手;在某个领域具备更专业的知识;能处理复杂的任务等等。这些能力实现有以下几个需要注意的工程关键点:1.AI Agent:我们要想数字人像人一样思考就需要写一个像人一样的Agent,工程实现所需的记忆模块,工作流模块、各种工具调用模块的构建都是挑战;2.驱动躯壳的实现:灵魂部分怎样去驱动躯壳部分,我们可以将灵魂部分的所有接口定义出来,然后躯壳部分通过API调用,调用方式可以是HTTP、webSocket等等,视躯壳部分的实现而定。但包含情绪的语音表达以及如何保证躯壳的口型、表情、动作和语音的同步及匹配,目前主流方案只能做到预设一些表情动作,再做一些逻辑判断来播放预设,语音驱动口型相对来说成熟一些,但都是闭源的,效果可以参考Nvidia的Audio2Face(https://www.nvidia.cn/omniverse/apps/audio2face/)或则Live Link Face(Iphone APP)+Face AR Sample(UE);3.实时性:由于整个数字人的算法部分组成庞大,几乎不能实现单机部署,特别是大模型部分,所以算法一般会部署到额外的集群或者调用提供出来的API,这里面就会涉及到网络耗时和模型推理耗时,如果响应太慢就会体验很差,所以低延时也是亟需解决的一个问题。4.多元跨模态:仅仅是语音交互的数字人是远远不够的,人有五感(听觉、视觉、嗅觉、触觉、味觉),听觉只是其中一种,其他的感官可以根据实际需求来做,比如视觉我们可以通过添加摄像头数据来获取数据,再通过系列CV算法做图像解析等;5.拟人化场景:我们正常和人交流的时候不是线性对话,会有插话、转移话题等情况,这些情景如何通过工程丝滑处理。
数字人的躯壳就是建模过程,有多种构建方式:1.2D引擎风格偏向二次元,亲和力强,定制化成本低,在日本、东南亚等国家比较受欢迎,也深受年轻人喜欢,毕竟能将喜欢的动漫人物变成数字人的躯壳,是一件很棒的事情。2D引擎的代表就是Live2D Cubism(https://www.live2d.com/)。1.3D引擎风格偏向超写实的人物建模,拟真程度高,定制化成本高,目前有很多公司都在做这个方向的创业,已经可以实现用户通过手机摄像头快速创建一个自己的虚拟人身体(如下图,NextHuman(https://nexthuman.cn/))。3D引擎的代表是UE(Unreal Engine)、Unity,虚幻引擎MetaHuman等(个人学习在电脑配置和学习难度上有一定门槛。1.AIGC虽然AIGC的方式相比前两者省去了建模流程,直接生成数字人的展示图片,但弊端也明显,算法生成的数字人很难保持ID一致性,帧与帧的连贯性上会让人有虚假的感觉。如果项目对人物模型真实度要求没有那么高,可以使用这种方案(算法发展非常快,可能不久就会有连贯度很高的生成方式),典型的项目有wav2lip(https://github.com/Rudrabha/Wav2Lip)、video-retalking(https://github.com/OpenTalker/video-retalking)等。AIGC还有一个方向是直接生成2d/3d引擎的模型,而不是直接生成数字人的最终展示部分,但该方向还在探索中。得益于现有各类技术方案的成熟度,以往建模往往都是由专业的建模师完成工作,不久之后相信大家就可以通过一些生成算法快速生成自己的人物模型了。