Files
admin 0593ff7e62
nginx serve /uploads direct (audio speed) / patch-nginx (push) Failing after 1m34s
数字我 Digital Me:全量入库(大文件走 Git LFS)
2026-10-10 16:24:43 +08:00

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 任一为例)

  1. 服务端换会话:在 realtimeAvatar.js 的 createSession switch 里补该供应商 case—— 用客户 key 调其「创建实时会话」API,返回 { ready:true, provider, sessionToken, wsUrl/roomUrl, avatarId }。
  2. 前端挂载 SDK:在 Live.vue(视频通话页)按 provider 动态加载其 Web SDK,用会话凭据 挂载实时 avatar 流到一个 <video>;把 ChatPanel 的 LLM 流式回答 + TTS 驱动进 avatar。 ⚠ CSP:外部 SDK 脚本/媒体域名需加进前端 CSP 白名单。
  3. 驱动闭环:用户输入 → 现有 /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, 即可端到端跑通。没有供应商实时凭据前,无法真实联调(不做假)。