DSH 插件 dsh-push-to-talk:按住說話與單鍵快捷鍵

前言

在 DeepSeek Harness(DSH)裏用語音填輸入框,常見做法是點麥克風開始、再點一次停止。對話節奏快時,多一次點擊會打斷思路。社區維護者 zl0215 在倉庫 zl0215/dsh-vediocontrol 中提供了客戶端插件 dsh-push-to-talk(npm 包名 dsh-push-to-talk,版本 0.1.0):在輸入框旁提供「按住說話」按鈕,並支持單個按鍵按住錄音、鬆開自動識別併發送。識別仍走本機已有的 speechToText 服務(語音輸入實驗包裏的 SenseVoice 或雲端),不另建識別通道、不重複下載模型。

這是什麼

dsh-push-to-talk 屬於 DSH 客戶端類插件,維護者爲 zl0215。啓用後會停用內置的點擊式語音前端 ui-voice-input,改爲按住說話按鈕與單鍵快捷鍵,避免出現兩個麥克風。停用或卸載本插件後,內置麥克風會恢復;語音插件裏已保存的識別服務與語言偏好繼續生效。

目錄頁:https://www.skillhub.cn/plugins/zl0215/dsh-vediocontrol
源碼與說明:https://github.com/zl0215/dsh-vediocontrol

核心功能

按住說話與發送

  • 麥克風按鈕:位於輸入框右側、發送按鈕之前。按住開始錄音,波形與計時顯示在輸入框下方;鬆開即識別,並將文字插入按住時記錄的光標位置後調用 inputActions.submit() 發送。
  • 快捷鍵:默認 F2(單個按鍵)。在頁面內任意位置或輸入框內按住 F2 說話,鬆開即識別併發送。
  • 取消:上滑後鬆開、按 Esc,或在按住快捷鍵時再按其它字符鍵,會取消本次錄音。
  • 按下不足 350ms 視爲誤觸,不會識別;未識別到語音也不會發送。單次最長錄音 120 秒(與語音服務默認上限一致)。

自定義快捷鍵

路徑:設置 → 通用 → 「按住說話快捷鍵」。

  1. 點「修改」,再按下一個按鍵完成綁定。
  2. 只接受非字符按鍵:F1–F12、左/右 Ctrl、左/右 Alt、左/右 Shift,避免與打字衝突。
  3. 「恢復默認」回到 F2。綁定保存在瀏覽器 localStorage,換頁或重啓 DSH 後仍生效。

同一頁還有 「麥克風常駐」:開啓後麥克風保持待命,按下幾乎零等待(系統麥克風指示會持續亮);關閉時每次識別成功後熱連接約 2 分鐘。首次識別成功後會提示「開啓零等待」,也可在設置裏手動打開。

全局快捷鍵(Windows)

設置 → 通用 → 「全局快捷鍵(其它軟件中也能用)」 默認開啓時,插件會啓動本機 PowerShell 輔助進程 hotkey.ps1,安裝 Windows 低級鍵盤鉤子,只監聽綁定的那一個鍵,不聯網、不記錄輸入、不攔截按鍵(其它軟件仍收到該鍵)。

在其它軟件中 按住 F2(或你綁定的鍵)→ 鬆開,識別結果會發送到 DSH 當前會話。更換快捷鍵後會重啓輔助進程;關閉開關即停止。全局能力目前僅支持 Windows。DSH 窗口不要最小化(可置於其它窗口後),否則瀏覽器可能節流頁面。第一次在 DSH 頁面仍需允許麥克風權限。

與內置語音插件的關係

本插件通過 bundle patch 關閉 ui-voice-input,只替換前端交互,Host 側仍依賴 @deepseek-ai/dsh-experimental-voice-input-bundle 提供的 speech-to-text 等能力。模型未就緒時,輸入框下方會提示「下載並準備」,本插件可觸發下載並顯示進度。

實驗功能:回覆浮窗(默認關閉)

設置 → 通用 → 「回覆浮窗(實驗)」,僅 Windows、默認關閉。開啓後,用全局快捷鍵提問時回答可邊生成邊顯示;可配置背景不透明度、字體、字號。不屬於主流程,按需開啓即可。

安裝與啓用

前置條件:已啓用 @deepseek-ai/dsh-experimental-voice-input-bundle;首次使用需在頁面允許麥克風權限。插件以當前 DSH 進程權限運行,安裝前建議閱讀倉庫源碼與 MIT 許可證。

從 GitHub 安裝(README 給出的當前可用方式):

dsh plugin --profile web add github:zl0215/dsh-vediocontrol

等價寫法:

dsh plugin --profile web add git+https://github.com/zl0215/dsh-vediocontrol.git

也可在 DSH 插件 → 安裝 頁面填入包名或 Git 地址。npm 發佈後可使用 dsh plugin --profile web add dsh-push-to-talk(README 註明暫未發佈)。安裝後 bundle 會停用內置點擊式語音前端;在 Windows 上按需啓動本機輔助進程監聽全局按鍵。

引擎要求(package.json):dsh >= 0.2.0-rc.1,node >= 20。

典型用法

  1. 完成語音輸入 bundle 與模型準備後,安裝本插件並打開 DSH 聊天頁。
  2. 頁面內:按住輸入框旁麥克風,或按住 F2,看到「正在聆聽」後再說話,鬆開等待識別並自動發送。
  3. 需要改鍵時進入 設置 → 通用,修改「按住說話快捷鍵」;若常在其它軟件裏口述,保持「全局快捷鍵」開啓,並視延遲情況打開「麥克風常駐」。
  4. 識別完成後若草稿在錄音期間被改動,插入可能失敗,輸入框下方會提供「插入併發送 / 丟棄」。

延遲說明(來自 README):快捷鍵冷按會有打開麥克風的 0.1–0.4 秒左右延遲(藍牙耳機可能更長);識別成功後 2 分鐘內再按通常很快;「麥克風常駐」可進一步消除等待。鬆開至文字發出,本機 SenseVoice 常見約 0.2–0.6 秒。

適用場景與注意

適合:希望在 DSH 裏用「對講機式」語音輸入、減少點擊;Windows 用戶需要在瀏覽器外按住單鍵把話送進當前會話。

注意:

  • 不提供輸入設備與識別語言選擇器,使用系統默認麥克風與語音插件已保存的服務/語言(默認自動識別)。
  • 頁面內快捷鍵僅在存在聊天輸入框的頁面生效;全局快捷鍵需要 DSH 運行且當前會話有輸入框。
  • 頁面內按住期間切換會話、頁面隱藏或失焦會結束錄音;全局錄音不受窗口失焦影響。
  • 全局快捷鍵收不到發往「以管理員運行」窗口的按鍵;UAC/鎖屏期間無事件。
  • 若語音輸入 bundle 被停用,按鈕會半透明並在輸入框下方說明服務不可用。

Host 側在本機迴環註冊 JSON 接口(如 GET /push-to-talk/api/status、POST /push-to-talk/api/transcribe 等),僅 127.0.0.1 / ::1 可訪問;錄音數據僅在單次請求內處理,不寫入會話事件。

結尾

dsh-push-to-talk 把 DSH 語音輸入改成「按住錄、鬆開發」,並可選 Windows 全局單鍵,識別鏈路仍復用實驗語音包,不重複造輪子。社區目錄頁:https://www.skillhub.cn/plugins/zl0215/dsh-vediocontrol;安裝命令與細節以 GitHub README 爲準:https://github.com/zl0215/dsh-vediocontrol。

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

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

小夜