dsh-voice-mic:爲 DSH Web GUI 增加語音輸入

前言

在 DSH Web GUI 裏輸入長提示、代碼片段或中文描述時,鍵盤輸入有時不如說話快,但把外部語音轉寫結果再複製回輸入框,流程又會變得零碎。dsh-voice-mic 是一個 DeepSeek Harness Web GUI 語音輸入插件:在輸入框旁提供麥克風按鈕,錄音後即時轉寫並寫入輸入框,不自動發送。

下面介紹它的定位、核心能力、安裝方式、典型用法和需要注意的限制。

這是什麼

dsh-voice-mic 是面向 DSH Web GUI 的語音輸入插件,由 Zachary7456 維護,許可證爲 MIT。

它解決的是 Web GUI 輸入框的語音輸入問題:用戶在輸入框左側點擊麥克風按鈕或使用快捷鍵開始錄音,插件將識別結果寫入輸入框草稿;停止錄音後提交轉寫結果,但不會自動發送消息。

核心功能

  • 輸入框左側提供麥克風按鈕,默認快捷鍵是 Alt+V。
  • 錄音期間部分識別結果即時上屏,停止時進行全量轉寫並寫入輸入框。
  • 不自動發送消息,用戶仍需要在輸入框中確認內容。
  • 支持三種識別引擎:瀏覽器內置、本地離線後端、雲端 API。
  • 瀏覽器識別使用 Web Speech API。
  • 本地離線後端支持 SenseVoiceSmall int8 和 Paraformer,可在設置頁一鍵部署。
  • 本地後端默認綁定 127.0.0.1:7860,轉寫期間音頻不出本機。
  • 雲端 API 使用 OpenAI 兼容的 ASR 接口,可配置 base URL、API key 和模型名。
  • 即時寫入採用追尾替換,不覆蓋手動輸入;無結果或出錯時自動回滾。
  • 設置頁可修改識別引擎、快捷鍵、端口、autoStart 等配置。
  • 支持服務端 cordis.patch.yml 配置與環境變量覆蓋。

安裝與啓用

運行要求如下:

  • DSH:dsh >=0.1.0-rc.6
  • Node.js:>=18
  • 瀏覽器識別:需要 Chrome 或 Edge
  • 本地離線後端:額外需要 Python 3.9+

安裝命令如下:

dsh plugin --profile web add github:Zachary7456/dsh-voice-mic

安裝後重啓 dsh web。

可以用下面的命令檢查插件配置是否出現在 web profile 中:

dsh --profile web --dump-config | grep dsh-voice-mic

典型用法

1、在設置頁選擇識別引擎

打開 DSH Web GUI,進入:

設置 → 語音輸入 → 識別引擎

這裏提供三選一:

  1. 瀏覽器內置
  2. 本地離線後端
  3. 雲端 API

2、使用瀏覽器內置識別

瀏覽器內置識別使用 Web Speech API,適合快速試用。

使用方式:

  1. 點擊輸入框左側麥克風按鈕,或按默認快捷鍵 Alt+V。
  2. 開始說話,識別結果會即時寫入輸入框草稿。
  3. 再次點擊麥克風按鈕或停止錄音。
  4. 插件提交轉寫結果,但不會自動發送。

快捷鍵僅在頁面獲得焦點時生效。

3、部署本地離線後端

如果不想讓音頻離開本機,可以在設置頁使用本地離線後端一鍵部署。

設置頁會執行部署流程,包括檢測 Python、安裝依賴、下載模型、啓動本地服務並輪詢就緒。模型目錄默認爲:

~/.dsh/voice/models/<model>

本地服務默認端口爲:

7860

本地後端默認只綁定:

127.0.0.1:7860

也就是說,轉寫期間音頻不出本機。

本地後端進程由 DSH 託管。如果重啓 DSH,可能需要重新點部署,也可以在配置中啓用:

autoStart: true

4、配置雲端 API

雲端 API 使用 OpenAI 兼容的轉寫接口。需要在設置頁配置:

  • base URL
  • API key
  • 模型名

配置完成後,可以使用設置頁中的“測試 API 連接”檢查配置是否正確。

使用雲端 API 即時上屏時,錄音期間約每秒調用一次 API,會產生相應費用。

API key 存於瀏覽器 localStorage,由瀏覽器直連服務商,不經過 DSH。

5、服務端配置示例

除了設置頁,也可以在服務端 profile 中配置插件。示例位置:

~/.dsh/profiles/web/cordis.patch.yml

可以插入類似下面的配置:

- insert:
    - id: dsh-voice-mic
      name: dsh-voice-mic
      config:
        hotkey: alt+v
        port: 7860
        autoStart: false

配置優先級

插件配置優先級爲:

設置頁(localStorage) > 環境變量 > cordis 配置 > 默認值

因此,如果你在設置頁修改了快捷鍵、端口或引擎,設置頁的值會優先生效。

離線驗證

倉庫提供了 mock API,用於離線驗證完整鏈路:

python server/mock_api.py

適合在本地先跑通插件調用鏈,再切換到真實本地後端或雲端 API。

適用場景與注意

適合以下場景:

  • 在 DSH Web GUI 中快速輸入中文提示、代碼或長文本。
  • 希望語音轉寫結果進入輸入框,而不是直接發送。
  • 希望使用瀏覽器識別、本地離線後端或雲端 API 三種方式之一。
  • 希望本地轉寫時音頻不離開本機。

使用前需要注意:

  • 插件會以當前 DSH 進程權限運行,安裝前應檢查源碼和許可證。
  • 瀏覽器識別依賴 Chrome 或 Edge 的 Web Speech API。
  • 本地離線後端需要額外安裝 Python 3.9+ 依賴。
  • DSH 重啓後,本地後端可能需要重新部署,或配置 autoStart: true。
  • 雲端 API 即時轉寫會產生調用費用。
  • 快捷鍵僅在頁面獲得焦點時生效。

鏈接

GitHub:

https://github.com/Zachary7456/dsh-voice-mic
羽毛球分组比赛记分
小程序二维码

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

小夜