前言¶
在 DSH 裏做多輪對話時,最打斷節奏的動作不是想不出答案,而是騰出手去點麥克風。官方語音輸入插件要按一下「開始錄音」、說完再按一下「結束」,這個「點兩次」的動作在連續改稿、反覆追問的場景裏會積少成多。
dsh-push-to-talk 做的事很簡單:按住一個鍵說話,鬆開自動停止並轉寫成草稿。默認 macOS 用 Option ⌥,Windows 用 Alt。插件不自己錄音、不自己識別,只是把按住和鬆開翻譯成官方語音輸入插件的兩次點擊,錄音界面、模型、語言全部沿用官方那套。
插件由 wengyingjian 維護,發佈在社區目錄(SkillHub),包名 dsh-push-to-talk,當前版本 0.6.0,許可證 MIT。
它解決什麼問題¶
- 去掉手離開鍵盤的步驟:錄音的開始和結束都在一個鍵上完成。
- 不另起一套語音鏈路:識別走官方語音輸入插件
@deepseek-ai/dsh-experimental-voice-input-bundle,本地識別模型、語言設置、錄音界面都沒有變化。 - 按鍵可按平臺選:默認值適配 macOS 和 Windows,macOS 上想用 Command 或功能鍵也可以換。
核心功能¶
- 按住說話、鬆開轉寫。按住期間錄音,鬆開後停止並把結果作爲草稿寫回輸入框。
- 鍵位可在插件設置頁裏選,保存後立即生效,重啓 DSH 後保留。
- 自動聚焦輸入框:當前視圖有輸入框時,按住鍵會自己聚焦再錄音,不用先把光標點進去。
- 按鍵判定用物理鍵位
KeyboardEvent.code,不受輸入法和大小寫影響。
安裝與啓用¶
前言裏提到它依賴官方棧,所以先確認兩件事:官方語音輸入插件已啓用,本地識別模型已就緒(點一次官方麥克風按鈕,按提示下載一次)。
接下來裝插件,兩條命令選一條:
# 從 npm 安裝
dsh plugin --profile desktop add dsh-push-to-talk
# 想跟倉庫主幹走
dsh plugin --profile desktop add github:wengyingjian/dsh-push-to-talk
裝完重啓 DSH,入口在 設置 → 插件 → 按鍵語音輸入。如果只是改了 client.js,按 ⌘R 刷新頁面即可,不必重啓。
升級同理:
dsh plugin --profile desktop add dsh-push-to-talk@latest
按鍵設置¶
插件頁那張卡片本身就是選擇器,點一下即保存。可選鍵如下:
| 平臺 | 可選鍵 |
|---|---|
| macOS | ⌥ Option · ⇧ Shift · ⌃ Ctrl · ⌘ Command · F2 |
| Windows / Linux | Alt · Shift · Ctrl · F2 |
細節上有幾處值得留意:
- 左右修飾鍵等效,存的是
Alt/Shift/Control/Meta,不是AltLeft/AltRight。 - 不放 Win / Super,會被系統截獲;Windows 上的 AltGr 會被過濾。
- 想跟倉庫主幹走就用上例第二條命令。
典型用法¶
姿勢就是「裝好、選鍵、按住說」:
- 在輸入框裏按住設定的鍵(默認 macOS 爲 Option ⌥,Windows 爲 Alt)。
- 開始說話,此時進入錄音狀態。
- 鬆開鍵,錄音停止,轉寫結果作爲草稿進入輸入框,可直接繼續改。
不需要把光標先點進輸入框:當前視圖有輸入框時,按住鍵會自動聚焦再錄音。
注意與邊界¶
- 設置頁、彈窗、菜單打開時插件會讓出按鍵;DSH 窗口在後臺時收不到按鍵,因爲它不做系統級全局熱鍵。
- Windows 上單獨按 Alt 可能先激活窗口菜單,不行就換成
F2或Ctrl。 - 錄音太短會提示「未識別到語音」,再按住一次即重錄;首次使用需授權麥克風。
- 國內鏡像同步有延遲:報
ERR_PNPM_TARBALL_EXTRACT或解析到0.0.0-stage時,加--registry=https://registry.npmjs.org重裝。0.0.0-stage是 npm 新包首發的佔位版本,不是latest,正常安裝拿不到。
適用場景¶
適合兩類人:一是用 DSH 做長時間、多輪對話的用戶,按住說話能明顯減少打斷;二是想自己改鍵位或照着源碼調整行爲再發布的開發者。插件只依賴宿主自帶的 @deepseek-ai/schemastery,@deepseek-ai/cordis 是 peer,不會分裂宿主實例。
兼容性方面,engines.dsh = ">=0.2.1-rc.5 <0.4.0",作者實際覈對於 dsh 0.2.1-rc.5;engines.node = ">=20"。
需要說明的是,插件以當前 DSH 進程的權限運行,讀取的是你在 DSH 裏的輸入內容。從第三方倉庫安裝前,建議先讀一遍源碼(尤其是 src/index.js 和 client.js)與許可證。該插件發佈在獨立社區目錄上,與 DeepSeek / 幻方無官方從屬關係,也不是官方應用商店條目。
開發¶
改了 Host 半側(src/index.js)需要重啓 DSH;只改 client.js 刷新頁面即可。按鍵狀態機、安全邊界、設置同步有配套測試:
node --test test/hotkey.test.mjs # 15 個用例
小結¶
push-to-talk 的價值不在新能力,而在把已有的語音輸入從「點兩次」變成「按住說」。它接的是官方語音輸入插件,錄音和識別能力沒有變化,鍵位和平臺適配由它負責。如果你已經在用官方語音輸入,這算是一個低成本的輸入流程改進。
目錄頁:https://www.skillhub.cn/plugins/wengyingjian/dsh-push-to-talk
源碼:https://github.com/wengyingjian/dsh-push-to-talk