2.7 KiB
Executable File
2.7 KiB
Executable File
实时互动数字人(2b)接入方案
状态:接口/架构缝已就绪,端到端待接入某供应商的实时 SDK + 客户 BYO-key。 异步口播(2a:EMO/VideoRetalk)已上线;本档是「实时流式对话数字人」的落地路线。
为什么单独一档
2a 是「离线渲染一段 mp4」;2b 是「实时:你说话/打字,数字人即时用你的脸+声流式回你」。 2b 需要 WebRTC/供应商 Web SDK + 低延迟流 + 服务端换会话 token,和 2a 不是一套栈。
已就绪(本仓已落地)
services/realtimeAvatar.js— 实时引擎目录REALTIME_ENGINES(硅基 DUIX / 腾讯云数智人 / HeyGen LiveAvatar,均available:false待接入)+createSession(twin, engineId)换会话缝。- BYO-key 复用异步那套
engine_creds(加密),createSession已按 twin 取客户 key。 - 路由
POST /api/twins/:id/realtime-session→ 现诚实返回{ ready:false, reason:'not-integrated' }。 - 前端
GET /api/twins/:id/engine已带realtime目录(前端可展示为「即将上线」)。
接入某供应商 = 三步(以 DUIX / 腾讯 / HeyGen 任一为例)
- 服务端换会话:在
realtimeAvatar.js的createSessionswitch 里补该供应商 case—— 用客户 key 调其「创建实时会话」API,返回{ ready:true, provider, sessionToken, wsUrl/roomUrl, avatarId }。 - 前端挂载 SDK:在
Live.vue(视频通话页)按 provider 动态加载其 Web SDK,用会话凭据 挂载实时 avatar 流到一个<video>;把 ChatPanel 的 LLM 流式回答 + TTS 驱动进 avatar。 ⚠ CSP:外部 SDK 脚本/媒体域名需加进前端 CSP 白名单。 - 驱动闭环:用户输入 → 现有
/ask(RAG+人设)出流式文本 → 供应商 avatar「说」出来 (供应商内置 TTS,或用我们 CosyVoice 克隆音色喂它,取决于供应商能力)。
选型建议(先 POC 再定)
| 供应商 | 实时 | 形象门槛 | 备注 |
|---|---|---|---|
| 硅基 DUIX | ✅ API+SDK,还有开源 | 视频克隆 | 实时最强、可私有化;国内 |
| 腾讯云数智人 | ✅ 交互数智人,云/端渲染 | 3min 视频 | 生态成熟、并发计费;国内 |
| HeyGen LiveAvatar | ✅ ~$0.2/min | 照片/视频 | 最写实;海外(延迟/合规/付款) |
红线(与 2a 一致,统一在底座)
- 成本:实时按分钟/并发计费,更贵 → 必须 BYO-key(客户自付)+ 会话时长/并发上限门控。
- 合规:同
services/compliance.js的肖像授权门 + 实时画面也要「AI 生成」标识。
下一步
你选定一家 + 提供该家 key,我在 createSession 补该家 case + 在 Live.vue 接其 Web SDK,
即可端到端跑通。没有供应商实时凭据前,无法真实联调(不做假)。