dsh-live-studio: DSH Virtual Streamer, Danmaku Voice, and Live2D Streaming

前言

在 DeepSeek Harness(DSH)里做直播互动,常见做法是自行拼接弹幕抓取、大模型回复、TTS 和 OBS 浏览器素材,进程与配置分散,也难以在同一套数据目录里保留人设、记忆和消耗账本。维护者 XiaoZheBrother 发布的 dsh-live-studio(社区目录名 xiaozhebrother/dsh-live-studio,分类为趣味换装)把上述能力收进一个独立插件:接收 B 站直播弹幕、合并同一观众的问题、生成语音、内置 Live2D 舞台、输出浏览器直播画面,并记录模型消耗与礼物金额。当前为 0.2.0-alpha.3 开发预览,默认关闭,源码在 GitHub 公开(MIT 许可证,约 2 stars)。

下面按定位、能力、安装配置与使用边界说明,事实以仓库 README 与 package.json 为准。

这是什么

dsh-live-studio 是 DSH 生态下的虚拟主播插件,由 XiaoZheBrother 维护。它不代替你点击开播,也不分发 Live2D 模型素材;在 DSH 插件进程托管下运行,关闭 DSH 会停止本插件,与宿主权限一致,安装前应自行审阅源码与许可证。

插件描述为:DSH 虚拟主播——弹幕互动、语音、Live2D 桥接和直播画面。大肥鱼直播工作室场景在 README 中有示意截图(纯聊天场景与直播姬开播前预览),布局可能与当前版本略有差异。

核心功能

弹幕与语音互动

接收 B 站直播弹幕,合并同一观众的问题;语音当前使用 Edge TTS,模型调用使用 DeepSeek Flash,需要联网。需配置 DEEPSEEK_API_KEY 环境变量,或沿用 DSH home 中的凭据文件,勿将密钥提交到版本库。

真实弹幕依赖 blivedm,须按其上游说明安装到与插件 Python 相同的虚拟环境中。

内置 Live2D 舞台

配置 model(含 model3.json 及引用素材的目录)与 cubismCore(本地 live2dcubismcore.min.js 绝对路径,需自行取得许可)后,由插件加载模型,无需安装或启动鲸语。模型与 Cubism Core 均不随包分发。

  • 访问路径 /avatar 为透明角色页,适合浏览器素材捕捉;完整直播页会嵌入并传递语音音量驱动口型。
  • 工具 live2d_catalog 列出模型真实存在的表情与动作;live2d_perform 按名称执行;live2d_status 查询播放回执。模型未打开时请求会排队,30 秒未消费则过期。
  • 表演语义支持 keep、neutral、none、stop 等;没有按台词关键词自动切换情绪的规则。
  • 渲染与动作逻辑复用了 鲸语 jingyu-live2d-agent 的 MIT 组件,详见仓库 NOTICE.md。

直播画面与账本

开启后本机回环地址提供网页输出;直播软件中可用浏览器素材抓取流式页面。账本使用独立 SQLite 路径(ledger 配置项),显示 API 用量估算与礼物标价,不等于平台结算到账。

表演组件与生态拆分

backend/live_performance.py 与 backend/live-performance.mjs 提供表情/动作目录、校验及 createPerformanceController,供渲染器复用;不会自动给每条弹幕加表情。离线陪看已拆到独立插件 dsh-reaction-studio,直播用户不必安装识别模型和媒体制作依赖。

环境与依赖

  • Node.js:>=22.19.0(package.json engines)
  • Python:3.11+
  • DSH 对等依赖:@deepseek-ai/schemastery ^3.18.4、@deepseek-ai/dsh-tools >=0.2.1-rc.5

在包目录创建 Python 虚拟环境并安装依赖:

python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt

安装与启用

官方开发包安装流程为在源码目录执行 npm pack,再在目标 DSH 数据目录下安装生成的 tgz(勿凭插件名拼接 dsh plugin add github:owner/repo):

$env:DSH_HOME = 'D:\my-agent-data'
dsh plugin --profile web add '<生成的 tgz 绝对路径>'

说明:

  1. 安装不会自动启用;须在插件配置中填写字段后将 enabled 设为 true。
  2. 若需搭配同版本游戏相关插件,须先把同版本直播插件 tgz 安装到同一 profile。
  3. 开发包不得覆盖正在运行的旧任务,请先停用旧实例。
  4. 开发预览发行包见 GitHub Releases。

插件配置

在 DSH 插件配置中填写(默认 enabled 为 false):

字段 含义
enabled 默认 false,准备好后手动开启
home 自己的 DSH 数据目录
persona 人设 Markdown 文件的绝对路径
python 上述虚拟环境的 python.exe 绝对路径
port 默认 3088,绑定本机回环地址
model Live2D 目录,包含 model3.json 及其引用素材
cubismCore 本地 live2dcubismcore.min.js 的绝对路径
jingyuUrl / pet 原外部舞台配置,仅在未配置 cubismCore 时使用
room 直播间 ID;0 表示只做本地预览
credential 可选独立直播账号凭据文件,不能误用投稿账号
ledger 独立账本 SQLite 路径

沿用原来的 home、persona、ledger 可保留数据,不复制或清空旧记录。相同 home 与直播间有进程锁;不得同时开启原实验启动器。

典型用法

  1. 完成 Python 环境、blivedm、DeepSeek 凭据与 Live2D 素材路径准备。
  2. 填写配置并开启 enabled。
  3. 浏览器访问 http://127.0.0.1:3088/ 做本地预览与调试。
  4. 在直播软件(如直播姬)中添加浏览器素材,地址使用:
http://127.0.0.1:3088/?view=stream&audio=direct

画布建议 1920×1080。只保留一份播出端,避免重复语音。

平台的「直播与游戏」入口会读取 home/plugin-services 中的无密钥状态文件并核对服务身份,不会替插件启动后台任务。

适用场景与注意

适合:已在用 DSH、需要把 B 站弹幕、DeepSeek 回复、TTS 与 Live2D 画面收拢到同一插件进程,并希望在本地账本中记录用量与礼物显示的用户。

务必注意:

  • 当前版本尚未完成「全新 DSH 启动」与真实直播验收;README 声明单元测试覆盖配置与聊天逻辑,不能据此认定长时间推流、新机安装或音画质量已验证。
  • 插件以当前 DSH 进程权限运行;credential 须使用独立直播账号凭据,避免误用投稿账号。
  • 社区目录 SkillHub 插件页 与 GitHub 仓库由社区维护,与 DeepSeek / 幻方无官方从属关系;DSH 理念是「一切皆插件」,本文安装命令与配置项均以仓库原文为准。

结尾

dsh-live-studio 把虚拟主播链路——弹幕、语音、Live2D 舞台与浏览器直播输出——做成可配置的 DSH 插件,适合愿意自行准备模型与凭据、接受 alpha 预览边界的开发者。查阅详情与 Issue 请访问 GitHub:XiaoZheBrother/dsh-live-studio,社区索引见 SkillHub 目录页。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye