
ChatdollKit
让 3D 模型秒变能听会说的 AI 聊天角色
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 1280
技术标签
使用教程
⚠ 本教程由 AI 依据该项目 README 整理;原始文档不完整,部分步骤为通用流程推断,实际安装请以项目官方文档为准。
⚠ 该项目 README 未提供完整安装说明,以下步骤为通用流程,请以官方文档为准。
环境要求
- Unity 编辑器(ChatdollKit 为 Unity 框架,支持 Windows/Mac/Linux/iOS/Android/VR/AR/WebGL 等平
- 一个 VRM 格式的 3D 模型(用于新建带 VRM 模型的项目)
- OpenAI API Key(演示场景的对话、语音合成、语音识别都读取它)
- 可用的麦克风设备(WebGL 平台不支持麦克风,需改用 ChatdollMicrophone)
安装与启动步骤
-
1创建 Unity 项目
在 Unity 中新建项目。注意:不要使用 SRP(Scriptable Render Pipeline)项目模板,因为依赖的 UniVRM 不支持 SRP。
-
2导入依赖
按 README 说明先导入 ChatdollKit 及其依赖(README 未给出具体导入命令,请参照官方仓库与教学视频)。
-
3打开演示场景
导入依赖后,在项目中打开场景 Demo/Demo08,用于快速验证框架是否可用。
-
4选择虚拟形象对象
在 Demo08 场景的层级面板中选中名为 AIAvatarVRM 的对象,准备在 Inspector 上配置服务组件。
-
5配置 OpenAI API Key
在 AIAvatarVRM 对象的 Inspector 中,分别为 ChatGPTService、OpenSpeechSynthesizer、OpenAISpeechListener 三个组件填入同一个 OpenAI API Key。
-
6在编辑器中运行
点击 Unity 编辑器的 Play 按钮运行。若音量不合适可调整麦克风音量滑块。
-
7说出唤醒词测试
对麦克风说唤醒词(如 hello / こんにちは)或长度超过 3 个字符的词,模型应回复 "Hi there!" 之类的内容。
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
OpenAI API Key | 是 | 供对话服务、语音合成与语音识别组件使用 | sk-xxxxxxxxxxxxxxxx |
Wake Word | 否 | 唤醒词,在 Inspector 设置,说出后模型开始应答 | hello |
Microphone Volume | 否 | 麦克风音量滑块,按实际收音效果调整 | 1 |
如何确认成功
点击 Play 后模型出现待机动画与眨眼;说唤醒词或超过 3 个字符的词,模型会回复 "Hi there!"。
常见问题
Q:为什么 README 强调不要用 SRP 项目模板?
A:ChatdollKit 依赖的 UniVRM 不支持 Scriptable Render Pipeline,使用 SRP 模板会导致模型相关功能无法正常工作。
Q:WebGL 上麦克风不能用怎么办?
A:WebGL 不支持麦克风,README 建议改用与 WebGL 兼容的 ChatdollMicrophone 组件。
Q:WebGL 下 OVRLipSync 不可用?
A:改用 uLipSync,并在主脚本中把 modelController.SpeechController.HandlePlayingSamples 指向 uLipSync 的 OnDataReceived 回调。
Q:WebGL 构建后程序卡在 await?
A:WebGL 不支持线程,内置 Async/Await 不生效,README 建议改用 UniTask。
注意事项
- 不要使用 SRP 项目模板,UniVRM 不支持 SRP。
- WebGL 构建需 5-10 分钟(取决于机器性能),且调试困难,错误不会显示堆栈信息。
- WebGL 中 HTTP 请求需要配置 CORS,且不支持 MP3 等压缩音频格式,语音合成请使用 WAV。
- 若要在消息窗口显示多字节字符(如日文/中文),需导入含多字节字符的字体并设置到消息窗口。
核心亮点
- 开箱即用:提供完整的语音识别、对话、口型同步流水线,几行代码即可接入 ChatGPT 等 LLM
- 高度可定制:支持自定义动画、表情和交互逻辑,适配 VRM 等主流 3D 模型格式
- 多平台支持:基于 Unity,可发布到 Windows、Mac、移动端及 VR 设备
不足之处
- 依赖外部云服务(如 Azure、ChatGPT),需要网络和 API Key,离线场景受限
- 文档/社区待观察:部分高级功能示例较少,新手可能需自行摸索
适用场景
- 虚拟偶像/主播:让 3D 角色在直播中实时与观众对话
- 游戏 NPC:为 RPG 或社交游戏中的角色赋予智能对话能力
- 教育/陪伴:开发能互动的虚拟老师或 AI 伴侣
替代项目
Inworld AI、Convai、RPG Talk
同类项目推荐
float
开源
上传音频和照片,一键生成口型同步的逼真说话视频。
[ICCV 2025] Official Pytorch Implementation of FLOAT: Generative Motion Latent Flow ···
Open-LLM-VTuber
开源
对着电脑说话,Live2D 角色替你回答,支持打断,全本地运行。
Talk to any LLM with hands-free voice interaction, voice interruption, and Live2D av···
sem2nerf
开源
一张语义图,直接生成可多视角观看的三维场景
[ECCV'22] Sem2NeRF: Converting Single-View Semantic Masks to NeRFs
respace
开源
输入一句话,自动生成或编辑室内 3D 场景
Code for "ReSpace: Text-Driven Autoregressive 3D Indoor Scene Synthesis and Editing"
WeClone
开源
用聊天记录一键训练你的 AI 分身,绑定机器人即可对话
Build a portrait of your life. Assistants that know you better. Clones that sound mo···
Crystal.TTVS
开源
让语音合成拥有3D表情,实时生成会说话的数字人
Crystal TTVS engine is a real-time audio-visual Multilingual speech synthesizer with···
SadTalker
开源
一张照片+一段语音,生成逼真说话数字人视频
[CVPR 2023] SadTalker:Learning Realistic 3D Motion Coefficients for Stylized Audio-···
En3D
开源
从 2D 合成图直接生成可动画的 3D 数字人
Official implementation of "En3D: An Enhanced Generative Model for Sculpting 3D Huma···
MeshAnything
开源
一键将任意3D数据转为艺术家级网格,告别杂乱拓扑
[ICLR 2025] From anything to mesh like human artists. Official impl. of "MeshAnythin···