效率与协作 webrtcvoice-assistantdigital-humanragpersona-memorytext-to-speechspeech-recognition

CyberVerse 数字人助手

将语音对话、角色记忆与可选数字人视频部署为自托管实时助手。

FollowAgents 评估 · FARS-2.0
待评估
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

CyberVerse 是一个自托管的实时数字人 Agent 框架,以 WebRTC 为实时交互基础,面向语音优先的角色化助手。系统将前台 PersonaAgent 与异步 SubAgent 分工:前者维持对话、处理打断和上下文切换,后者可执行搜索、研究、资料整理、摘要和 HTML 报告生成等长任务。角色对话历史会持久化到本地磁盘,导入的知识库、文档和人物资料会被索引用于 RAG。其插件化栈可替换 brain、voice、hearing、tools、memory 与 face,并可在 `/settings` 配置供应商密钥和端点。它可作为纯语音助手运行,也可选用本地 FlashHead、LiveAct 或云端数字人服务输出实时视频形象。

运行时由 config/cyberverse.yaml 控制,omni、LLM、embedding、TTS 和 ASR 定义从 infra/config/*_models/ 发现,并可由 config/*_models/ 覆盖。系统接收实时语音交互,调用配置的 ASR、LLM/omni 与 TTS 服务,保存并重载角色历史,并检索已索引的角色资料生成回答;后台 SubAgent 可异步完成搜索、研究、整理、摘要和 HTML 报告任务。开启 inference.avatar.enabled: true 后,Python inference 服务可按 config/avatar_models/ 中的模型配置驱动 FlashHead 或 LiveAct;Baidu Xiling 则由前端嵌入 H5 iframe,并使用 sendAudioData / AUDIO_STREAM_RENDER 发送音频。部署后通过 make inferencemake servermake frontend 分别启动 Python 推理、Go API 和前端,健康检查为 GET /api/v1/health

  1. 希望自托管语音助手的开发者,可关闭头像推理,将 `inference.avatar.enabled` 设为 `false`,仅部署实时语音会话。
  2. 需要长期保持角色设定的创作者,可为每个角色导入传记、文档或知识库,并利用本地持久化历史与 RAG 延续对话。
  3. 需要真人视频通话式交互的产品团队,可在具备 CUDA 12.8+ GPU、模型权重和相应配置时接入 FlashHead 或 LiveAct。
  4. 要让用户在对话中持续追问的研究型助手,可把搜索、资料整理、摘要或 HTML 报告生成交给异步 SubAgent,同时保持前台语音对话。
  5. 不愿维护本地头像 GPU 的部署者,可选择 Baidu Xiling、Xunfei Digital Human 或 Vidu S1 等文档列出的云端数字人路径。

这个 Agent 有哪些优点和局限?

优点
  • 前台 PersonaAgent 与异步 SubAgent 分离,文档明确说明长任务不会阻塞语音回合,且可在结果完成后返回。
  • 角色历史持久化到本地磁盘,并支持导入资料后建立 RAG 索引,适合需要跨会话连续性的角色助手。
  • 同一部署可在纯语音与可选数字人视频之间切换,视频可使用本地 FlashHead、LiveAct 或列出的云端数字人服务。
  • 模型与供应商配置可通过内置目录、局部覆盖文件及 `/settings` 管理;LiteLLM 插件提供统一接入多个 LLM 供应商的路径。
局限
  • 基础部署需要 Node、Go、Conda、Python、FFmpeg 及多项系统音频库,运行环境并不轻量。
  • 本地数字人视频额外要求 CUDA 12.8+、PyTorch 2.8、模型权重和支持的 GPU;不同分辨率与模型的实时表现受 GPU 数量和性能影响。
  • 默认语音能力依赖用户配置实时 voice/omni/LLM/TTS/ASR 供应商,文档明确指出运行成本取决于这些服务。
  • 远程直连模式依赖浏览器可访问嵌入式 TURN 服务的 `8443/TCP`;云安全组、防火墙或 NAT 限制会导致 ICE 失败或发布超时。

如何安装或部署这个 Agent?

前置条件:Node 18+、Go 1.25、Conda、Python 3.10+、FFmpeg,以及 libopus-devlibopusfile-devlibsoxr-devpkg-config

git clone https://github.com/dsd2077/CyberVerse.git
cd CyberVerse
conda create -n cyberverse python=3.10
conda activate cyberverse
cp -r infra/config config

config/env 填入至少一种已列出的模型凭据,例如 DASHSCOPE_API_KEY,或 DOUBAO_ACCESS_TOKENDOUBAO_APP_ID。编辑 config/cyberverse.yaml 并设置:

inference:
  avatar:
    enabled: false

然后执行:

make setup
pip install -e ".[all]"

如何使用这个 Agent?

在三个终端分别启动:

conda activate cyberverse
make inference
make server
make frontend

用以下命令验证 API:

curl -s http://localhost:8080/api/v1/health

随后在浏览器打开 http://localhost:5173。需要本地数字人视频时,安装 CUDA 12.8+ 对应的 PyTorch 与模型权重,将 inference.avatar.enabled 改为 true,并在 config/avatar_models/flash_head.yamlconfig/avatar_models/live_act.yaml 配置模型路径。

常见问题

纯语音模式是否需要本地头像 GPU?
不需要。将 `inference.avatar.enabled` 设为 `false` 后,CyberVerse 以纯语音助手运行;实际费用取决于所配置的实时语音、omni、LLM、TTS 和 ASR 供应商。
本地视频头像支持哪些模型?
文档当前列出 FlashHead 与 LiveAct。启用它们需要下载相应权重,并在 `config/avatar_models/` 的模型配置文件中设置路径和参数。
如何判断本地头像推理是否跟不上实时播放?
查看推理日志中的 RTP:`elapsed / (frames / fps)`。RTP 大于 1 表示生成速度低于播放速度,可能出现视频延迟或卡顿。
远程页面可打开但音视频无法连接,该检查什么?
在 `streaming_mode: direct` 且使用内置 TURN 时,先确认浏览器可访问服务器的 `8443/TCP`。若不可达,文档建议检查安全组、防火墙或 NAT,或使用 SSH 端口转发。

相关 Agents