前言¶
在 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 左側欄展示「心緒電臺」圖標。
核心功能¶
選歌邏輯¶
打開面板時,插件會結合以下來源(無明確情緒信號時按順序回退):
- 當前會話推斷出的情緒;
- 上一首歌的氣質;
- 本機收聽日記中的「喜歡 / 跳過」反饋;
- 當前時間段(凌晨 / 清晨 / 工作時段 / 夜晚)。
情緒分析優先調用當前 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