Files
dsh_shenxian/dsh-server-docs/04-调整方案/12-VoxEMW全云API化接入dsh-调研与M1落地.md
T
admin 5ad755116e chore(docs): 文档库并入代码仓(R4 选 a)+ 索引/台账跟进
1) dsh-server-docs/ 从工作区(原 E:\...\aliyun-dsh-server\dsh-server-docs)**整体并入本仓**,
   保留目录名 ⇒ 仓库内 dsh-server-docs/... 的相对引用天然继续有效;旧目录(含其 .git)已归档到
   工作区 _中间产物_待清理/,未随本提交带入。
2) .gitattributes:新增 `dsh-server-docs/** -text` —— 原文档库是 `* -text` + autocrlf=false,
   必须保持纯 LF,否则会被本仓的 CRLF 规则翻掉。
3) 活引用里的绝对路径已全部改到新位置(docs 的 INDEX / README / scripts / skills + 用户级 skills
   + ~/.workbuddy/settings.json 的 hooks);历史档案(04-调整方案/、archive/)按「只增不改」未动。
   ⚠️ hooks 路径改动需「完全重启会话」才生效(配置是会话启动快照)。
4) 交接单/T08:新增 §16「生产整体切换执行记录」(形态 / 落地动作 / **4 个只有真上线才暴露的真 bug** /
   验收证据 / 回滚命令 / 残留项);台账 T08 行 → 已完成并归档;03-路线图 §二 登记 T08 收尾项。
5) 统一称谓:**「本机」只指跑 WorkBuddy 的开发机**,47 / 106 一律写「远程服务器」。
2026-09-15 18:47:13 +08:00

77 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 12-VoxEMW 全云 API 化接入 dsh(调研 + M1 落地)
- 状态:**已冻结(2026-09-11 决策)** —— "云端链路待接线"自 09-10 起无进展,需供应商账号与资源;冻结以免长期占用待办位(档案 19 §D6)。恢复条件:拿到 VoxEMW 供应商账号与配额。
> 状态:**调研完成 + 本地 M1 骨架已实现(冒烟通过);云端链路与实例级验证待办**|2026-09-10|对象:dsh 工作台插件生态(feature-tier)+ 云端 Realtime/数字人 API
> 需求来源:调研 github.com/emwstudio/VoxEMW(魔镜女巫写实数字人)能否以插件形式加入 dsh、会话窗口旁显示、用户数据隔离;**用户决策:模型全部连线上 API,零本地部署**(2026-09-09)。
> 全文方案(原存于旧工作区 `D:\AI技能\aliyun-dsh-server\`;**本机 `dsh-server-docs\` 内未见,待补**):`VoxEMW接入dsh调研与落地方案_20260909.md`(GPU 原套存档)、`VoxEMW全云API化接入dsh修订方案_20260909.md`(主路径)。
## 一句话结论
VoxEMW 是 GPU 重型多进程服务(4090 四模型 21.7G),**不能也不应搬进插件**;采用**云 API 化的 feature-tier 插件** `dsh-plugin-voxemw-cloud`:以 VoxEMW 为产品/体验蓝本,复用其 persona 文案与 `assets/mojingnvwu/face_ref.jpg` 形象资产,后端换 2026 年已商业化的云端端到端 Realtime(大脑/语音/视觉)+ 实时数字人 API,由插件做编排/同源代理/槽位/记账/隔离。
## 一、调研关键事实(决定方案的依据)
### 1. VoxEMW 原套(本地 4090 版)
| 积木 | 实现 | 端口/进程 |
|---|---|---|
| ① VAD+②STT | Silero + Qwen3-ASR(本地) | s2s 管线 :8765 |
| ③ LLM | DeepSeek API(唯一线上) | — |
| ④ TTS | VoxCPM2(本地,音色设计/seed 钉定) | 同上 |
| ⑤ 数字人 | SoulX-FlashHead(本地写实 talking-head) | :8791 |
| ⑥ 眼睛 VLM | MiniCPM-V(本地) | :18099 |
| orchestrator | aiohttp :8000,浏览器唯一入口 | py312 venv |
硬约束:**单用户单会话**(`current_session` 全局单槽,新连接顶旧会话;s2s `num_pipelines:1`);会话状态全在内存不落盘(隔离利好);personas/*.md 启动静态装载是唯一共享持久点;无鉴权、单 DeepSeek key。
### 2. 2026-09 云端供给矩阵(已核实存在)
| 环节 | 云 API 候选 |
|---|---|
| 端到端 Realtime(VAD+STT+LLM+TTS+视觉,一条 WS) | 智谱 GLM-Realtime(音频 0.18~0.3 元/分,视频 1.2~2.1 元/分;支持摄像头帧/function calling/server VAD 打断);阿里 Qwen-Omni-Realtime / qwen3.5-omni-plus-realtime(WS+WebRTC 双通道) |
| 实时写实数字人(音频流→实时视频流) | 火山「实时互动数字人 FlowAct-R1」(单图+16k PCM→480P@25fps,首帧~2s);阿里数字人实时交互 OpenAPI(支持 customUserId 租户标记);ZEGO 精品照片数字人(200ms/1080P/RTC) |
| 视觉 | Realtime 模型原生吃视频帧(GLM/Qwen),无需单独 VLM |
### 3. 形态判定(三选一结论)
二开/搬代码 ❌(GPU 重负载+独立 venv+红线禁改官方 bundle);host/feature 插件 + 同源代理 + iframe 内嵌 ✅(social-workbench 守护模板 + mcn 会话分栏技术);iframe 直连裸址 ⚠️(非安全上下文拿不到麦克风/摄像头)。
### 4. 负载与并发(修订方案 §9,规划级)
媒体面**直连**(浏览器↔云厂商 RTC/WS,dsh 只做控制面/临时凭证/记账)时 dsh 服务器压力≈0;服务端全中转时每路全功能 ≈2Mbps(上行 PCM16 256k + 下行 pcm24 384k + 数字人视频 ~1M)。并发三层模型:同时在线(数百~上千)≠ 同时语音(受云并发配额,如 GLM-Realtime 低等级 5 路起)≠ 同时数字人出画(按路/分钟计费)。瓶颈在云配额+费用,槽位=所购云端路数。
## 二、M1 本地交付(dsh-plugin-voxemw-cloud v0.1.0)
位置:`D:\dshworkspace\plugin_package\dsh-plugin-voxemw-cloud\`(与 mcn/social-workbench 同生态;随文档库 poc 可另行归档)。
| 文件 | 职责 |
|---|---|
| package.json / cordis.patch.yml | 三段式骨架,feature-tier(insert id voxemw-cloud) |
| lib/index.js | 宿主半区:apply(ctx)+inject=['webServer'],注册 /voxemw/health、/api/status(脱敏)、/api/slot/{claim,release,keepalive}、/api/billing/summary、/app(面板页) |
| lib/slot.js | 单席位互斥/同 profile 续期/force 强拆(返回 evicted+claimId 防重复记账)/过期回收 |
| lib/billing.js | profile 维度按天 JSONL 记账;宿主 60s 对账补记超时占用 |
| lib/cloudcfg.js | env 配置装载 + getPublicConfig 脱敏(Key 不下发) |
| lib/realtime.js / avatar.js | 协议适配纯函数(session.update 人设注入、打断、文本旁路、数字人初始化、配置校验)——M1 接线点 |
| lib/client.js | __ModuleLoader__.load 包装;注册 __mcnEntries 'voxemw-cloud';面板 iframe /voxemw/app(allow mic+camera);无 exports.default(守红线) |
| web/app.html | 面板单页:云端状态/槽位控制/麦克风回环自测 |
| tests/smoke.mjs | 冒烟 15 断言组全绿;index.js exports 契约正确;client.js --check 通过 |
环境变量要点:`VOXEMW_REALTIME_API_KEY`(必配才算已配置)、`VOXEMW_PROVIDER=glm|ali`、`VOXEMW_AVATAR_URL/_API_KEY/_IMAGE`、`VOXEMW_MAX_SLOTS=1`、`VOXEMW_DAILY_QUOTA_MIN=30`。
## 三、验证状态与待办
**已完成(本地)**:逻辑冒烟 15 组;模块可加载;client bundle 语法校验。
**待验证(需实例/账号)**:工作台入口显示与分栏宿主(须装到 dsh 实例并重启——client bundle 启动时打包);面板麦克风授权(需 https 安全上下文);云端 Realtime/数字人真实链路。
**待用户决策**:①供应商组合(甲=GLM-Realtime+火山 FlowAct-R1,默认推荐 / 乙=全阿里 / 先纯语音);②数字人形象(默认复用 VoxEMW face_ref.jpg);③音色路线(预置起步,专属嗓音走分离式 TTS 克隆)。
**待实现(决策后)**:realtime.js/avatar.js 传输层按官方协议接线;x-dsh-profile 从 dsh 会话真实注入完成多用户隔离闭环;配额/账单运营页。
## 四、红线遵守
不自动升级 dsh;不改官方主程序与缓存(只写 dsh-plugin-voxemw-cloud 目录);client bundle 不导出 `exports.default`;云 Key 只存服务端进程、绝不下发浏览器。
## 五、参考
- 本机 dsh-plugin-dev 知识库(`D:\dshworkspace\dsh-plugin-dev\references\知识库\`):插件种类全景/发布插件/Cordis HMR
- plugin_package 参考实现:dsh-plugin-social-workbench(守护+内嵌模板)、dsh-plugin-mcn(会话分栏 .mcnNav_split)、douyin-accounts(feature-tier 空 apply 实证)
- 云端 API 官方文档:火山 FlowAct-R1、阿里数字人实时交互/Omni-Realtime、智谱 GLM-Realtime(链接见全文方案附录)