dsh-audio-rail:讓會話頁右側跳轉錨點隨系統音樂律動

前言

在 DeepSeek Harness(DSH)的 Web GUI 裏,長對話右側會有一列「快捷跳轉錨點」(turn rail),用來快速跳到不同輪次。默認狀態下,這些短條只反映加載、預覽、當前等會話狀態,和你在本機播放的音樂無關。若希望在寫代碼、查資料的同時,界面邊緣能隨系統混音做輕量律動,而不改 DSH 核心或自己寫前端補丁,可以裝社區插件 dsh-audio-rail。下面介紹它是什麼、怎麼工作,以及如何在 Windows 上安裝啓用。

這是什麼

dsh-audio-rail 由維護者 Lingwuxin 發佈,在 SkillHub 插件目錄 中歸類爲「趣味換裝」。一句話定位:讓 DSH Web 會話頁右側 turn rail 的錨點短條,隨系統正在播放的音樂做伸縮律動,視覺效果類似把頻譜柱旋轉 90°。

源碼與說明見 GitHub:Lingwuxin/dsh-audio-rail。當前 package 版本爲 1.0.1,許可證 MIT。

核心功能

插件只做一件事:把 WASAPI 環回採集到的頻段能量,經宿主 SSE 推到瀏覽器,再驅動每個錨點短條的 scaleX,在保留 DSH 原有狀態樣式的前提下疊加音頻脈衝。

採集(Windows)

  • 獨立 helper:bin/AudioRailCapture.exe(由 src/AudioRailCapture.cs 經 build.cmd 編譯,零依賴單文件)。
  • 以環回模式捕獲默認渲染端點的系統混音(WASAPI shared mode + AUDCLNT_STREAMFLAGS_LOOPBACK)。
  • FFT 後歸約爲 12 個對數分佈頻段(約 45 Hz–16 kHz),約 30 fps 向 stdout 輸出 JSON 行;靜默時衰減到 0。
  • 歸一化採用約 1 秒滑窗均值爲基準的相對動態映射(-9/+17 dB 窗口),鼓點可上衝、弱奏回落,避免一直頂格。

宿主(index.js)

  • 註冊 /audio-rail/events(SSE)與 /audio-rail/status。
  • 有訂閱者才啓動採集進程;最後一個訂閱者斷開 15 秒後停止;崩潰按指數退避重啓(設備熱插拔 exit 3 可恢復)。

瀏覽器(client.js)

  • 注入 CSS,將錨點短條(.…_mark::before)的 transform 改爲帶 scaleX(var(--dsh-audio-rail-scale, .6))。
  • 通過 EventSource 收頻段幀,在 requestAnimationFrame 裏對每個錨點做攻擊/釋放平滑,寫入 CSS 變量;音頻脈衝乘在宿主狀態係數之上(上限約 26px)。低音對應底部錨點。
  • 尊重 prefers-reduced-motion:用戶開啓減少動效時,插件完全不啓用。

兼容性說明

README 標明:v1.0.1 僅針對 dsh v0.1.7-rc.2 做過適配驗證。插件依賴 dsh-client-ui-chat 的 TurnNavigator DOM 約定(_marks 內 _mark 按鈕、data-index 排序、固定 20px 短條、scaleX 狀態係數)。DSH 若再次重構該組件,視覺效果可能失效;採集與 SSE 管線不受影響。

平臺:僅 Windows(WASAPI)。非 Windows 環境無法使用採集端。

安裝與啓用

插件以當前 dsh 進程權限運行;安裝前請自行查看倉庫源碼與 MIT 許可證。採集器不隨倉庫分發,克隆後須先在本機編譯。

  1. 克隆倉庫到本機路徑(安裝命令需要該路徑,勿用未在文檔中出現的 github:owner/repo 簡寫)。
  2. 在倉庫根目錄執行 Windows 編譯腳本(調用系統自帶 .NET Framework csc.exe,無需額外安裝依賴):
build.cmd
  1. 在 DeepSeek Harness 會話中讓 agent 安裝 bundle,或手動執行(將 <本倉庫克隆路徑> 換成實際路徑):
dsh plugin --profile web add link:<本倉庫克隆路徑>

安裝後瀏覽器頁面會自動熱加載,一般無需手動刷新。卸載或禁用插件後 SSE 斷開,採集進程退出,無常駐開銷。

典型用法

沒有單獨的配置文件或 CLI 子命令:安裝並編譯採集器後,在 Web GUI 打開會話頁,本機有音樂從默認渲染設備播放即可。右側 turn rail 各錨點綁定不同頻段,隨混音伸縮;無訂閱者時宿主不會長期跑採集進程。

效果可參考倉庫 docs/demo1.gif 與 docs/demo1.mp4。

適用場景與注意

適合:在 Windows 上使用 DSH Web GUI、希望 turn rail 隨背景樂做輕量視覺反饋的開發者;接受「趣味換裝」類非功能型插件。

注意:

  • 必須與 README 聲明的 DSH 版本及 TurnNavigator DOM 一致,否則可能只有 SSE/採集正常、畫面不動。
  • 部分 Windows 版本/運行時對 IMMDevice::Activate 存在已知問題,helper 已按 IAudioClient3 → IAudioClient2 → IAudioClient1 探測並用 vtable 委託規避;高採樣率設備會自動加大 FFT 點數以保證低頻分辨率。
  • SkillHub 等爲社區目錄,與 DeepSeek / 幻方無官方從屬關係;星標與傳播數據以各站點當時頁面爲準,本文不引用未覈實數據。

結尾

dsh-audio-rail 把系統混音的 12 頻段經 SSE 接到 Web 端,在不動會話邏輯的前提下給 turn rail 加上音樂律動,適合作爲 DSH「一切皆插件」生態裏的一例趣味 UI 擴展。

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

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

小夜