dsh-mood-dj:按会话情绪与话题在后台播放网易云音乐

前言

在 DSH 里长时间写代码、查资料或和模型对话时,背景歌单往往和当下状态对不上:要么一直同一套歌,要么得自己切客户端。手动根据聊天内容挑歌成本高,也未必能接上你刚聊到的具体作品或事件。

心绪电台(Mood radio)是社区维护者 SAI-h 发布的 DSH 插件,归类为联网工具。它会在左侧栏提供入口,读取当前会话最近的消息,推断情绪与具体话题,在本机网易云音乐(也可配合 QQ 音乐 / Spotify)后台播放匹配歌曲,并按队列自动补歌。情绪分析在 DSH Host 本机完成,不上传对话原文。

这是什么

插件仓库:SAI-h/dsh-mood-dj。目录页:SkillHub 插件页。

package.json 中版本为 0.1.1,许可证 MIT,要求 Node >=18.17.0。它是一个带 dsh.bundle.patch 与 Web 侧栏客户端的 bundle:通过 cordis.patch.yml 插入 mood-dj 行,在 DSH 左侧栏展示「心绪电台」图标。

核心功能

选歌逻辑

打开面板时,插件会结合以下来源(无明确情绪信号时按顺序回退):

  1. 当前会话推断出的情绪;
  2. 上一首歌的气质;
  3. 本机收听日记中的「喜欢 / 跳过」反馈;
  4. 当前时间段(凌晨 / 清晨 / 工作时段 / 夜晚)。

情绪分析优先调用当前 DSH 模型:将最近真实用户发言总结为一句情绪判断,再据此选歌;同一轮对话的分析缓存 10 分钟。模型还会提取你明确谈到的具体对象(动漫 / 电影 / 游戏、事件、地点、活动)。例如聊到「进击的巨人」会优先搜相关主题曲;泛泛的「动漫」「音乐」,以及技术 / 产品 / 插件 / 仓库 / 路径等词不会当作话题。

每批向队列排入 5 首同氛围歌曲,用追加方式接到队尾。话题相关最多 3 首,再补 2 首公开歌单里的「新发现」,其余由内置曲库补齐;话题搜索失败或无具体对象时,由「新发现 + 情绪画像」接手。连续批次会避开最近 12 首,同批尽量不重复同歌手;卡片会标注「曲库 / 话题 / 新发现」,便于辨认是否兜底。

面板与自动补歌

典型操作如下:

  • 左侧栏「心绪电台」→ 打开面板。首次打开,或距上次选择超过 6 小时,会自动选歌;6 小时内再次打开会停在上次选好的歌,不会自动切歌。
  • 面板内可「重新播放」「换一首」「安静一点」;只有这些操作会主动切歌。
  • 顶部「在对话中采集情绪」开启后,电台会在歌曲快结束时自动分析并补下一批;关闭后仅在你点按钮时播放。
  • 「自动补歌」关闭时,当前队列播完即停。
  • 面板每 5 秒同步当前播放曲目与队列数量;「喜欢 / 跳过」写入本机收听日记,供后续选歌参考。

对话里出现「好烦 / 累 / 难受 / 开心」等明显情绪,且在采集开启时,会记入本轮情绪窗口并在补歌时统一分析,不会为单句硬切当前歌曲。

播放与后台切歌

歌曲通过网易云桌面客户端的 orpheus://<base64> 深链下发(载荷形如 {"type":"song","id":"...","cmd":"play"})。非黑胶会员播放 VIP 曲时按 30 秒试听计入时长;一批试听顺序播完并暂停时会尝试补下一批。

Windows 上优先使用网易云桌面客户端的本地 Chromium 控制通道(CDP):未运行时可用 --remote-debugging-address=127.0.0.1 --remote-debugging-port=9223 启动客户端再切歌;已带控制通道时切歌不抢前台。若客户端在跑但未开控制通道,可回退深链,面板提供「开启后台切歌」以重启客户端并启用后台控制。

安装与启用

从 GitHub 安装(资料原文命令):

dsh plugin add -w github:SAI-h/dsh-mood-dj

也可将插件目录交给 DSH 的 plugin_manager 安装。安装前建议阅读仓库源码与 MIT 许可证;插件以当前 dsh 进程权限运行,会读写本机状态并唤起音乐客户端。

数据与环境变量

收听日记默认路径:

~/.dsh/mood-dj/state.json

仅保存歌曲 id、标题、歌手、情绪标签、时间与反馈,不保存对话原文。可用环境变量改存放位置:

MOOD_DJ_HOME=/path/to/dsh-save-place

可选:ncm-cli

@music163/ncm-cli 不随插件自动安装,适合搜索、歌单与 TUI。Windows 上其 orpheus 播放器不可用,需将 player 设为 mpv 并保证 mpv 在 PATH 中;与电台默认的「官方客户端 + CDP」是两条独立路径。API 私钥需在自有终端执行 ncm-cli config set privateKey,勿写入插件配置或日志。

限制与注意

  • 精确到歌曲的自动播放依赖网易云桌面客户端注册的 orpheus: 协议;其他客户端会尽量打开并提示手动确认。
  • 情绪推断基于本地可解释的关键词 / 标点 / 表情信号(README「限制」一节亦说明不调用外部模型做该层推断);复杂反讽或极隐晦表达可能不准。
  • 内置曲库为人工挑选的小型歌单,每首带有已验证的网易云歌曲 id。
  • 首次启用后台控制可能需要重启一次网易云客户端。

结尾

心绪电台把 DSH 会话里的情绪与话题接到本机网易云队列,适合希望在开发或对话过程中让背景乐随状态变化、又不必反复手动搜歌的用户。社区插件目录与 DeepSeek / 幻方无官方从属关系,安装与行为以仓库 README 为准。

  • 目录页:https://www.skillhub.cn/plugins/SAI-h/dsh-mood-dj
  • GitHub:https://github.com/SAI-h/dsh-mood-dj
羽毛球分组比赛记分
小程序二维码

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

小夜