dsh-sound-alert:DSH 任務完成與確認的音效提示插件

DeepSeek Harness(DSH)在終端運行時,開發者容易忽略任務結束或等待確認的時刻。這個插件通過瀏覽器端的 FM 合成技術,在任務完成(高音)和需要確認(低音)時播放兩種截然不同的音效,無需依賴任何音頻文件。

它是 Charlestam218 維護的一個客戶端插件,遵循 MIT 協議。核心價值在於提供非侵入式的狀態反饋,避免因視線離開終端而漏掉關鍵信息。

核心功能

插件主要提供以下能力:

  • 雙音效區分:任務完成時播放高亢的 E6→B6 雙音(清亮有餘音),需要確認時播放低沉的 A3→E3 單音(短促有推進感)。兩個音效刻意放在不同音區,靠音高區分。
  • 純合成,無依賴:音效在瀏覽器端用純 JS 按 FM 合成公式逐採樣渲染,不依賴任何音頻文件、網絡請求或宿主路由。
  • Windows 任務欄徽標:在 DSH 任務欄按鈕上顯示紅點數字,數量爲“需要確認” + “已完成未讀”的會話數。僅在 Windows 平臺實現。
  • 兼容性降級:支持 Web Audio API;若上下文被瀏覽器掛起,自動退回 <audio> + WAV Blob 降級方案。

安裝與啓用

安裝插件需將包放入 profile 的 node_modules 並寫入配置。

Web Profile 安裝:

dsh plugin --profile web add link:<本包絕對路徑>

link: 是軟鏈安裝,修改源碼後會通過 HMR 熱重載自動生效。若使用 file: 則爲拷貝安裝。安裝後若未生效,重啓 DSH 客戶端(Web 端需重啓並按 Ctrl+R)。

典型用法

安裝完成後,插件會在瀏覽器控制台暴露 dshSoundAlert 對象。

測試與診斷

  • 依次測試:
    dshSoundAlert.test()
  • 單獨測試:
    dshSoundAlert.test('done')    // 只響完成音
    dshSoundAlert.test('confirm') // 只響確認音
  • 查看狀態:
    dshSoundAlert.state()         // { enabled, volume, audio: 'running', watched, sessions, done, confirm, lastPath, lastError }
  • 查看診斷歷史:
    dshSoundAlert.diag()          // 最近的狀態變化與發聲歷史

狀態存儲與排查

不打開 DevTools 也能查看狀態,數據保存在 localStorage:

鍵 / 文件 含義
localStorage dsh-sound-alert:boot 客戶端半區運行狀態(版本、掛載時間)
localStorage dsh-sound-alert:diag 心跳快照:當前會話、最近發聲記錄、audio 狀態
localStorage dsh-sound-alert:plays 各音效播放次數與最後一次的類型
$DSH_HOME/.dsh-sound-alert.log 宿主半區加載/卸載日誌

開關與音量控制

dshSoundAlert.off()          // 靜音
dshSoundAlert.on()           // 恢復
dshSoundAlert.toggle()       // 切換
dshSoundAlert.setVolume(0.7) // 設置音量 (0~1)

適用場景與注意

  • 多窗口限制:多窗口會各自播放聲音,各自判定狀態。
  • 頁面未打開不響:頁面未打開時不會響,這是界面提示而非系統通知。如需離開窗口也提醒,需配合系統通知類工具。
  • 依賴關係:插件依賴 DSH 客戶端的服務名 sessions 與 uiSession.sessionStatus。若 DSH 內部服務變更,插件會靜默失效。
  • 配置生效:配置更改需重啓或熱重載。

開發與維護

音效配方在 lib/client.js 頂部的 RECIPES 中,使用 FM 合成參數(頻率、調製比、衰減等)定義。修改後保存即可觸發熱重載。

插件遵循 MIT 許可證,源碼託管於 GitHub。

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

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

小夜