cyber-xiaoya/cyber-xiaoya-live

赛博小雅直播版 · 组件版数字人(Vidu s2)· 免费开源 AGPL-3.0 · 作者:天工开帧(抖音/B站/YouTube 同名)

赛博小雅直播版(Cyber Xiaoya Live)—— 一句话解释

这是一个免费开源的"数字人直播"软件套件。它让你在浏览器里操作一个虚拟形象(数字人),观众发弹幕、你打字或点歌,数字人就会说话、做动作、对口型,画面可以推流到抖音、B站等直播平台。

核心要点:这不是"下载即玩"的成品。 它提供的是整套软件(舞台操作页 + 本地桥接服务 + 弹幕/歌单/录播全链路),但不包含作者本人的形象、音色、人设、动作库、歌库和任何 API Key——这些都需要你自己准备。README 说照着做大约 1 小时能跑起来。


它到底能干什么

从 README 的实拍截图和演示看:

  • 观众在直播间发弹幕(比如"拿出墨镜戴上")→ 弹幕进入系统 → 数字人真的执行"拿出墨镜戴上"这个动作
  • 数字人同时会说话,台词由 LLM(大语言模型)生成,再用本机 TTS(文字转语音)合成声音
  • 主播端有一个"舞台页"(本地网页),左边是数字人画面 + 实时字幕,右边是快捷指令、点播歌单、参考图面板,底部可以打字聊天、直发动作、中断、设置

它是怎么跑起来的

README 给了一张架构图,翻译成大白话:

浏览器舞台页 ──文字──▶ 本地桥(FastAPI) ──▶ Vidu云端(渲染数字人画面)
     ▲                                        │
     │                                   LLM生成台词 → TTS合成声音 → 音频流
     └──── 订阅画面 ◀──────────────────── Vidu渲染口型+动作
  • Vidu(云端服务)只负责"变成画面":给它文字和音频,它渲染数字人的口型、表情、动作,并推流
  • 其余全部在你自己的电脑上跑:LLM 负责"思考"(生成台词)、TTS 负责"发声"、弹幕处理、点播、录播下载
  • 舞台页是本地网页(http://127.0.0.1:8795/stage),不需要公网

为什么这么设计:不用买云端的语音识别/LLM/TTS 套餐,成本只剩 Vidu 的渲染费(按秒计费,1 积分/秒);音色、人设、歌单全在你手里,不经过第三方。


你需要准备什么(必须项)

项目 说明
Windows 10/11 + NVIDIA 显卡(≥8GB 显存) 渲染在云端,但 TTS 在本机跑
Vidu 账号 + API Key 数字人渲染与推流,按秒计费(1 积分/秒),余额 <45 积分开不了场
LLM API Key(DeepSeek 或任意 OpenAI 兼容) 数字人的"脑子",生成台词
TTS 服务(OmniVoice) 本机跑,WSL2 + CUDA,否则没声音
ffmpeg 音频解码统一走它

可选:弹幕采集器(不装就只能手动打字互动)、点播歌库、摄像头/推流软件(OBS 等,想把画面推给平台才需要)。


准备步骤概览

  1. Vidu 账号:注册、充值、创建一个"形象"(上传正脸照或视频),拿到 avatar_id;可选建动作库拿 library_id;生成 API Key(形如 vda_xxx)
  2. LLM API Key:默认用 DeepSeek,把 key 存成文本文件,路径填进配置
  3. 本机环境:Python 3.12 + uv 装依赖 + ffmpeg
  4. TTS(最容易卡住的一步):项目只认 OmniVoice。推荐方案是在 WSL2(Windows 的 Linux 子系统)里跑 OmniVoice 服务,需要 NVIDIA 驱动 + 至少 8GB 可用显存(作者实测稳定占用约 11GB)。音色来源:要么用属性"设计"音色(不需要参考音频),要么用你自己的录音克隆(要求 3–10 秒、单句、16kHz 单声道、无背景音)
  5. (可选)接弹幕:用配套仓库"赛博小雅·弹幕采集器"(支持抖音/B站/YouTube/视频号),或者自己写采集器,按固定格式发 HTTP 请求到桥的 /api/danmaku 接口
  6. (可选)点播歌单:把 mp3/flac/wav 丢进 audio/ 目录即可
  7. 配置 config.json:填 Vidu key、形象 ID、动作库 ID、LLM key 路径、人设提示词(必须改成你自己的)、TTS 地址、音色目录等
  8. 启动:运行 python -m src.main 或双击一键脚本,打开舞台页,点"开始连线",等 5–15 秒画面出来。连线即开始计费,测完记得断开

舞台页能干什么

  • 中间:数字人画面 + 字幕 + 动作指令特效
  • 底部输入框:打字跟她聊(走 LLM → TTS → 说话)
  • 🎬 直发:直接把动作指令发给 Vidu,不经过 LLM
  • 🕹 快捷指令:点一下即发送;可编辑、拖拽排序、改名、新建
  • 🎵 点播歌单:放歌(带歌词字幕)
  • 🖼 参考图:换装 / 拿起商品 / 换背景
  • ⏺ 自动录播:让 Vidu 服务端录下这一场,播完自动下载到本地
  • ⚙ 设置:音色、开场白、字幕位置、黑名单词表等

仓库里故意没有的东西

README 明确列出(防止"下载后发现跑不起来"):

  • ❌ 人物形象(图片/视频/形象模型)—— 需要你自己上传到 Vidu
  • ❌ 克隆音色(参考音频、音色模型)
  • ❌ 人设提示词正文、文案、歌单、动作库内容
  • ❌ 任何 API Key、Cookie、账号凭据
  • ❌ OmniVoice 模型权重(几 GB)、Python 依赖环境(2GB+)、歌库音频
  • ❌ 弹幕采集器(另一个项目)

这不是藏私:形象、音色、人设是每个主播自己的东西,也是防止有人拿本项目做二次售卖的边界。代码是完整的,缺的都是"你自己的内容"。


许可证与版权

  • 代码:GNU AGPL-3.0
  • 素材与品牌:见 NOTICE 文件,不在 AGPL 授权范围内
  • 第三方依赖见 requirements.txt

重要提醒

  • 永久免费开源,唯一官方来源是 GitHub 仓库。任何付费售卖、代下载、代部署均未经授权
  • 没有官方 QQ 群、微信群,不卖课、不卖安装服务。任何以"官方答疑群""内部版""授权版""代部署"名义收费的都是假的
  • 作者:天工开帧,在抖音、B站、YouTube、博客等平台可关注
  • 项目问题优先提到 GitHub Issue(公开可查)

常见问题速览

  • 连不上 Vidu / 401:检查 API key 是否正确、余额是否 ≥45 积分
  • 没有声音:99% 是 TTS 没起来,先 curl 检查 OmniVoice 服务是否在跑
  • WSL2 重启后连不上:IP 变了,需要查新 IP 改配置
  • 画面卡 / 延迟大:TTS 和渲染抢显存,减少 OmniVoice 的 --graph-buckets 参数
  • 能换别的 TTS 吗:代码目前只实现 OmniVoice,要接别的需要自己写适配层

一句话总结:这是一个"数字人直播"的开源软件套件,代码完整免费,但需要你自己准备形象、音色、人设和 API Key,照着 README 大约 1 小时能跑起来。

相关

  • 项目
  • 项目
  • 项目
  • 项目