☰
xiaoke.ai 小可爱技术路线图解:3D 陪玩、虚拟陪伴、透明桌宠
2026/10/14 15:49:11 网站建设 项目流程

xiaoke.ai(小可爱)是 2026 年开源免费的本地 3D 陪玩 / 虚拟陪伴。源码 https://github.com/liupig/xiaokeai ,网站 https://xiaoke.ai ,Windows 包 https://pan.baidu.com/s/1Y3KuQWG761eP08Uktx36Eg?pwd=xkai (提取码xkai)。

下面按一条消息的真实路径写。每一步对应仓库里的模块,并配一张现成的图或 GIF。发到知乎、掘金、CSDN 时,按顺序把图上传,正文不要删链接。

0. 路径

麦克风或键盘 → ASR(Web Speech 或 SenseVoice) → prompt_stack 拼本轮人设 → OpenAI 兼容 LLM 流式输出 → 剥掉 [emo:] [act:] [dance:] [cam:] [intent:] → 正文送 TTS(Qwen3-TTS 或 edge-tts) → AnalyserNode 用振幅驱动口型 → 标签驱动表情、动作、舞蹈、已审查镜头 → Three.js 舞台(VRM / PMX / GLB)

不填聊天 Key 时,不请求外部大模型,改播本地兜底句。兜底句里同样有标签,所以舞台、表情、跳舞还在。多轮聊天要自己填base_url/api_key/model。

1. 舞台:人在三维里,不在气泡里

前端是 Vue 3 + TypeScript + Vite + Pinia + Naive UI。渲染是 Three.js 0.185。VRM 用 @pixiv/three-vrm,MMD 用 three-stdlib 的 MMDLoader / MMDPhysics,布料是 ammo.js(头发、裙摆、飘带)。GLB 走同一条舞台。三种格式热切换。

引擎代码在companion/frontend/src/engine/:舞台、角色、动作、表情、口型、镜头、闲置。

2. 她开口:声音和嘴是两条线

ASR 和 TTS 分开配。

在线离线
听浏览器 Web SpeechSenseVoice-Small,sherpa-onnx,CPU
说edge-tts,或百炼 CosyVoiceQwen3-TTS 本地流式。没有 NVIDIA 显卡就改 edge-tts

全双工按句排队或打断,沉默后续聊。浏览器里用 Silero VAD 切段,用 WebRTC AEC3 压掉她自己的声音。节奏这侧借鉴小冰,不是把整段生成完再播。

口型不认音素。companion/frontend/src/engine/lipsync.ts把 TTS 接到 WebAudioAnalyserNode,对时域波形算 RMS,放大后驱动张嘴。嘴跟着这句话有多响,不跟着声母。

3. 标签:模型写字,舞台拆着演

流式回复里可以夹:

标签舞台做什么
[emo:happy/angry/sad/relaxed/neutral]切表情,可写强度,如[emo:happy:0.8],可叠加角色卡形态键
[act:nod/shake]点头、摇头
[intent:…]走审过的意图动作,例如打招呼
[dance:文件名.vmd]播舞蹈。VMD 只给 PMX,VRM/GLB 会提示不支持
[cam:…]换运镜

后端把标签从要念的字里剥掉,字进 TTS,标签进companion/frontend/src/features/performance/。人设不是一整段写死的 system。prompt_stack每轮重拼:角色卡、场景包、扮演叠层、时间槽、记忆、导演手册。临时扮演能撤,不写进长期人设。内置人设是清宵。

4. 镜头:先审查,再上台

景别 × 运镜 × 站位 × 动作在审查表里逐条标过,仓库记录是三万多条,只有可用的组合能进剧目,用来避开穿模和动作错位。右上角会显示这一句用了哪一组,不好可以当场去掉。

5. 舞蹈:说一声,PMX 播 VMD

舞蹈文件是 VMD,模型是 MMD/PMX。内容包里的舞、音乐版权在原作者,不随 Apache-2.0 再授权。源码负责播放和跟台词接上,不负责把舞变成你的。

6. 背景和台面

情境卡换背景和灯光(雨夜、花树、星空等)。脚底下的台有圆盘、莲座、黑胶、棋盘等造型,贴图另换。人还是同一个角色。

7. 塔罗:代码发牌,模型只讲翻开的

companion/backend的modules/tarot是发牌机和仪式状态机。牌阵有日抽、是否、过去现在未来、现状阻碍建议、身心、二选一、关系五张、事业五张、凯尔特十字。抽哪张、正位还是逆位由代码决定。模型不许改牌,也看不见没翻开的牌。80 张国风牌面是仓库里的原创图,和源码一样 Apache-2.0。定位是心理和娱乐,不给建议。看牌过程默认不写入长期记忆。

8. 记忆

mem0 从普通对话里抽偏好、关系、约定,写入本机 Qdrant,下一轮注回 prompt。向量可以是云端 embedding,或本机 MiniLM。SQLite 在companion/backend/data/,不进 git。扮演和塔罗默认不入库。

9. 桌宠:同一套角色,换一种窗口

壳是 Electron,启动器是 PyInstaller。打包版自带 Chromium 和 Python。顶栏「放到桌面」把整窗换成置顶透明小窗:空白处点击穿透,拖身体移动,拖角缩放,位置和大小会记住。空闲时她走动;你说话、她回复、你正在拖的时候站住。「回到舞台」回到全屏。浏览器开发页没有这一层。

2026-10-12 的程序包xiaoke-ai-A-20261012184939.7z带桌宠。2026-10-11 那一版没有。

10. 语言、动捕、Code 伴侣

界面语言和对话语言分开:简体中文、英语、日语、韩语。英语 Serena,日语小野安娜,韩语素熙。改对话语言会换成该语言的默认音色。

动捕在companion/frontend/src/features/mocap/。MediaPipe Holistic 在 Worker 里出全身、双手、脸。求解把关键点解成父骨骼四元数,参考 Reze MiPo,静止抖动用 1€ Filter。开着动捕时,VMD 和闲置动画暂停。PMX 骨骼最完整。

Code 伴侣在对话栏的「码」。她看本机 Cursor、Codex、Claude Code、通义灵码、Trae、文心快码的开工和收工,用表情、动作和一句短话接上。

资产中心导入 zip / rar / 单文件,或用模之屋 token 在线下载。角色卡是模型 + 人设 + 音色 + 情绪形态键 + 闲置动作。记忆、情境、重说、证物、塔罗、Code 伴侣都能单独关掉。

11. 两套端口,不要混

前端后端
源码开发http://localhost:5175http://127.0.0.1:8600
网盘安装包127.0.0.1:5211127.0.0.1:5201

源码:Node.js 18+,Python 3.11+。后端不要加--reload或--workers。安装包:Windows 10+,7-Zip 把 A 和 B 解压成并列文件夹,双击 A 里的xiaoke-ai.exe,第一次把内容包指到 B(目录里有xiaoke-content.json),退出再开。

  • 源码:https://github.com/liupig/xiaokeai
  • 网站:https://xiaoke.ai
  • 网盘:https://pan.baidu.com/s/1Y3KuQWG761eP08Uktx36Eg?pwd=xkai (提取码xkai)

源码 Apache-2.0,可以商用。品牌名不转让。演示里的模型、舞蹈、音乐、音色归原作者。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询