CyberVerse 数字人助手
将语音对话、角色记忆与可选数字人视频部署为自托管实时助手。
这个 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 inference、make server、make frontend 分别启动 Python 推理、Go API 和前端,健康检查为 GET /api/v1/health。
- 希望自托管语音助手的开发者,可关闭头像推理,将 `inference.avatar.enabled` 设为 `false`,仅部署实时语音会话。
- 需要长期保持角色设定的创作者,可为每个角色导入传记、文档或知识库,并利用本地持久化历史与 RAG 延续对话。
- 需要真人视频通话式交互的产品团队,可在具备 CUDA 12.8+ GPU、模型权重和相应配置时接入 FlashHead 或 LiveAct。
- 要让用户在对话中持续追问的研究型助手,可把搜索、资料整理、摘要或 HTML 报告生成交给异步 SubAgent,同时保持前台语音对话。
- 不愿维护本地头像 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-dev、libopusfile-dev、libsoxr-dev、pkg-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_TOKEN 与 DOUBAO_APP_ID。编辑 config/cyberverse.yaml 并设置:
inference:
avatar:
enabled: false然后执行:
make setup
pip install -e ".[all]"如何使用这个 Agent?
在三个终端分别启动:
conda activate cyberverse
make inferencemake servermake 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.yaml 或 config/avatar_models/live_act.yaml 配置模型路径。