对着浏览器说话,一面紫金魔镜里的女巫秒回你——说完 ~3s 开口,声画齐出。 判停 / 转写 / 音色设计 / 数字人渲染 / 视觉,全部跑在一张 4090 上,只有大脑上云(DeepSeek API)。
一张 4090(24GB)全搞定。 AutoDL 单卡同时驻留四个模型:Qwen3-ASR-1.7B(耳朵)+ VoxCPM2(音色设计)+ SoulX-FlashHead(写实数字人)+ MiniCPM-V-4.6(眼睛),显存 21.7G/24G。Mac + VRM 二次元轻量档存档于 git tag v1.9.0。
形态说明:早期版本(云端 AVTR-1 + 本地 27B 全离线)见 git tag v1.7.x;纯语音星空版见 v1.8.x; Mac 本地 + VRM 二次元版见 v1.9.0。当前主线:4090 满血写实数字人版(魔镜女巫)。
本项目的开发过程记录在 电磁波Studio,看不懂代码可以先看视频:
浏览器(麦克风上行 + 摄像头抓帧 + 视频画布)
│ ws/http(TCP 隧道友好;LAN 可切 WebRTC Opus 轨)
▼
4090 服务器(AutoDL,24GB)
orchestrator(:8000)——会话调度 / persona 注入 / 工具执行 / 打断编排
├─ s2s 语音管线(:8765) ①VAD → ②STT → ③LLM → ④TTS
│ │
│ └─ DeepSeek API(deepseek-v4-flash)
├─ SoulX 渲染服务(:8791,独立 flashhead env)⑤数字人: paced 喂入 → 25fps 滴灌
└─ VLM 边车(:18099,独立 vlm env) ⑥眼睛:MiniCPM-V-4.6 看图/OCR
| 积木 | 模型/方案 | 说明 |
|---|---|---|
| ① VAD 判停 | Silero + SmartTurn v3.2(CPU ONNX) | 语义复核,停顿不抢答 |
| ② STT 语音转写 | Qwen3-ASR-1.7B-hf(transformers,CUDA bf16) | 人设热词注入 + 专名后校正 |
| ③ LLM 大脑 | DeepSeek v4-flash(API) | 关思考模式保时延;function calling 自主决定「看」 |
| ④ TTS 语音合成 | VoxCPM2(官方 PyTorch bf16) | 音色设计:voice_control 描述词 + voice_seed 钉定(也支持零样本克隆),TTFA 0.2s,RTF ~0.5 |
| ⑤ 数字人 | Soul-AILab/SoulX-FlashHead-1_3B(Lite) | 音频驱动写实 talking-head,96 FPS 级,待机呼吸常活 |
| ⑥ 眼睛 | MiniCPM-V-4.6(1.3B bf16) | DeepSeek 调 look_at_camera 工具 → orchestrator 取帧描述回注,36 切片 OCR |
| ⑤+ Persona 人设 | 女娲 · Skill 造人术 | personas/*.md(人设正文 + 音色描述词/种子或克隆参考音) |
# 实例上(环境已按 docs/plan-4090.md 装好):
bash scripts/start_4090.sh # 一键起:管线(py312) → SoulX(flashhead) → VLM(vlm) → orchestrator
bash scripts/start_4090.sh stop # 全停
# 本地(Mac)架隧道后开页面:
ssh -NL 8000:127.0.0.1:8000 -p <port> root@<autodl-host>
open http://localhost:8000
要点:TCP-only 隧道环境下行音频走 WS + WebAudio 播放(WebRTC 的 UDP 过不去,已内置切换);局域网/公网直连可回 rtc.enabled: true 走低延迟 Opus 轨。
personas/mojingnvwu.md):迪士尼童话腔奉承发动机,招牌段子照本念(「魔镜魔镜告诉我,谁是全世界最美的女人」),SoulX 参考脸同步换镜中女巫voice_seed,音色确定且逐句一致(配置校验同步改为 ref_wav / voice_control 二选一)look_at_camera 工具,模型自主决定「看」,orchestrator 拦截 tool call 执行 VLM 描述、function_call_output 回注;修复 tool 回合被空回复兜底误判、用户抢话与工具回注撞 response.create 两个竞态look_at_camera 紫光扫镜、系统消息浓缩为镜下一行小字rtc.enabled=false 时音频 delta 走 WebSocket + 前端 WebAudio 队列无缝续播,打断本地清队python3 -m venv .venv && .venv/bin/python -m pip install pytest pyyaml numpy aiohttp
.venv/bin/python -m pytest tests/ -v
175 commits
Python
69.9%
JavaScript
17.1%
CSS
5.6%
Shell
5.1%
Swift
1.5%
对着浏览器说话,一面紫金魔镜里的女巫秒回你——说完 ~3s 开口,声画齐出。 判停 / 转写 / 音色设计 / 数字人渲染 / 视觉,全部跑在一张 4090 上,只有大脑上云(DeepSeek API)。
一张 4090(24GB)全搞定。 AutoDL 单卡同时驻留四个模型:Qwen3-ASR-1.7B(耳朵)+ VoxCPM2(音色设计)+ SoulX-FlashHead(写实数字人)+ MiniCPM-V-4.6(眼睛),显存 21.7G/24G。Mac + VRM 二次元轻量档存档于 git tag v1.9.0。
形态说明:早期版本(云端 AVTR-1 + 本地 27B 全离线)见 git tag v1.7.x;纯语音星空版见 v1.8.x; Mac 本地 + VRM 二次元版见 v1.9.0。当前主线:4090 满血写实数字人版(魔镜女巫)。
本项目的开发过程记录在 电磁波Studio,看不懂代码可以先看视频:
浏览器(麦克风上行 + 摄像头抓帧 + 视频画布)
│ ws/http(TCP 隧道友好;LAN 可切 WebRTC Opus 轨)
▼
4090 服务器(AutoDL,24GB)
orchestrator(:8000)——会话调度 / persona 注入 / 工具执行 / 打断编排
├─ s2s 语音管线(:8765) ①VAD → ②STT → ③LLM → ④TTS
│ │
│ └─ DeepSeek API(deepseek-v4-flash)
├─ SoulX 渲染服务(:8791,独立 flashhead env)⑤数字人: paced 喂入 → 25fps 滴灌
└─ VLM 边车(:18099,独立 vlm env) ⑥眼睛:MiniCPM-V-4.6 看图/OCR
| 积木 | 模型/方案 | 说明 |
|---|---|---|
| ① VAD 判停 | Silero + SmartTurn v3.2(CPU ONNX) | 语义复核,停顿不抢答 |
| ② STT 语音转写 | Qwen3-ASR-1.7B-hf(transformers,CUDA bf16) | 人设热词注入 + 专名后校正 |
| ③ LLM 大脑 | DeepSeek v4-flash(API) | 关思考模式保时延;function calling 自主决定「看」 |
| ④ TTS 语音合成 | VoxCPM2(官方 PyTorch bf16) | 音色设计:voice_control 描述词 + voice_seed 钉定(也支持零样本克隆),TTFA 0.2s,RTF ~0.5 |
| ⑤ 数字人 | Soul-AILab/SoulX-FlashHead-1_3B(Lite) | 音频驱动写实 talking-head,96 FPS 级,待机呼吸常活 |
| ⑥ 眼睛 | MiniCPM-V-4.6(1.3B bf16) | DeepSeek 调 look_at_camera 工具 → orchestrator 取帧描述回注,36 切片 OCR |
| ⑤+ Persona 人设 | 女娲 · Skill 造人术 | personas/*.md(人设正文 + 音色描述词/种子或克隆参考音) |
# 实例上(环境已按 docs/plan-4090.md 装好):
bash scripts/start_4090.sh # 一键起:管线(py312) → SoulX(flashhead) → VLM(vlm) → orchestrator
bash scripts/start_4090.sh stop # 全停
# 本地(Mac)架隧道后开页面:
ssh -NL 8000:127.0.0.1:8000 -p <port> root@<autodl-host>
open http://localhost:8000
要点:TCP-only 隧道环境下行音频走 WS + WebAudio 播放(WebRTC 的 UDP 过不去,已内置切换);局域网/公网直连可回 rtc.enabled: true 走低延迟 Opus 轨。
personas/mojingnvwu.md):迪士尼童话腔奉承发动机,招牌段子照本念(「魔镜魔镜告诉我,谁是全世界最美的女人」),SoulX 参考脸同步换镜中女巫voice_seed,音色确定且逐句一致(配置校验同步改为 ref_wav / voice_control 二选一)look_at_camera 工具,模型自主决定「看」,orchestrator 拦截 tool call 执行 VLM 描述、function_call_output 回注;修复 tool 回合被空回复兜底误判、用户抢话与工具回注撞 response.create 两个竞态look_at_camera 紫光扫镜、系统消息浓缩为镜下一行小字rtc.enabled=false 时音频 delta 走 WebSocket + 前端 WebAudio 队列无缝续播,打断本地清队python3 -m venv .venv && .venv/bin/python -m pip install pytest pyyaml numpy aiohttp
.venv/bin/python -m pytest tests/ -v
175 commits
Python
69.9%
JavaScript
17.1%
CSS
5.6%
Shell
5.1%
Swift
1.5%