前言¶
DeepSeek Harness (DSH) 採用插件化架構,允許通過 Web 界面進行智能體開發與交互。在 Web composer 場景下,頻繁切換輸入法或手動打字會影響交互效率。dsh-dictation-hotkey 旨在解決這一問題,提供一種基於快捷鍵的語音輸入方式,複用本地 SenseVoice 引擎,無需額外下載模型或調用雲端 API。
插件概述¶
該插件爲 DSH Web composer 提供“按住說話”功能。它不引入獨立的識別進程,而是直接驅動 DSH 官方 Web composer 內置的語音 Remote(SenseVoice),通過官方 API 將轉寫結果插入編輯器。
核心功能¶
- 模式控制:支持“按住說話”或“切換模式”。
- 發送策略:支持將轉寫內容“填充”到編輯器供檢查,或“立即發送”。
- 原生集成:複用官方語音輸入 bundle,不引入獨立的識別器進程。
- 原生插入:通過官方 API 將文本插入編輯器,保留光標位置和附件。
- 配置管理:快捷鍵、模式、行爲、提示音等配置存儲在瀏覽器本地。
- 多場景支持:在新建對話頁面也可工作(需有焦點編輯器)。
- 診斷日誌:提供音量、時長、推理時間等診斷信息。
安裝與啓用¶
插件依賴 DSH 的官方語音輸入 bundle,安裝前需確保環境滿足要求。
前置條件
* DSH 版本:0.2.0-rc.2 或兼容版本。
* 插件管理器中啓用“語音輸入” bundle。
安裝步驟
1. 打開終端,執行安裝命令:
dsh plugin --profile web add github:AndyYang12345/dsh-dictation-hotkey
- 重載 DSH Web UI。
使用方法¶
安裝後,在 composer 下方的工具欄會出現一個“🎙 Dictation” pill。
基本操作
* 按住 Ctrl+Shift+Space,開始說話,鬆開後文本插入編輯器。
* 點擊 pill 圖標可配置快捷鍵、發送行爲(填充/發送)、模式(按住/切換)、提示音和診斷開關。
常用配置項
配置存儲在瀏覽器 localStorage 的 dsh-dictation-hotkey.settings 鍵下。
| 配置項 | 默認值 | 說明 |
|---|---|---|
hotkey |
Ctrl+Shift+Space |
快捷鍵組合,支持 + 分隔。 |
mode |
hold |
hold (按住錄音) / toggle (點擊開始/停止)。 |
autoSend |
false |
是否在插入文本後自動發送。 |
beep |
true |
是否播放提示音。 |
language |
(空) | 識別語言提示,空則跟隨 DSH 設置。 |
providerId |
(空) | 語音提供者 ID。 |
minRecordMs |
150 |
最小錄音時長(毫秒),過短會被拒絕。 |
tailMs |
180 |
鬆開按鍵後保留的音頻時長(毫秒)。 |
maxRecordSeconds |
60 |
最大錄音時長(秒)。 |
debug |
false |
是否開啓診斷日誌。 |
診斷與調試¶
在 pill 配置界面開啓“診斷日誌”後,每次按鍵操作都會記錄一條結構化日誌。
日誌事件類型
* start: 麥克風啓動,記錄觸發按鍵。
* stop: 鬆開按鍵,記錄錄音時長。
* ok: 識別成功,記錄音頻時長、推理時間、字符數、音量峯值。
* empty-transcript: 返回空文本,記錄音量峯值。
* skip: 被閾值拒絕(如錄音過短、無音頻、語音 Remote 未掛載)。
* transcribe-failed / mic-failed / insert-conflict / finish-threw: 對應的失敗事件。
限制與注意事項¶
- 快捷鍵範圍:快捷鍵僅在 DSH 頁面獲得焦點時有效,不支持系統級全局快捷鍵。
- 麥克風權限:麥克風權限僅授予 DSH 域,首次使用可能需要點擊官方麥克風按鈕授權。
- 錄音時長:受
maxRecordSeconds(默認 60s)及 Remote 音頻限制。 - 開發環境:本地開發需要 Node.js 版本
^22.19.0或>=24.0.0。
結語¶
該插件通過複用官方 SenseVoice 引擎和 Web composer API,降低了語音輸入的門檻,適合需要頻繁進行語音交互的開發場景。