dsh-voice-input:DeepSeek Harness Web UI 的語音輸入插件

前言

DeepSeek Harness Web UI 裏,輸入框仍然是主要工作區。dsh-voice-input 針對這個位置補充一個語音入口:在 composer 的發送按鈕前加入麥克風按鈕,使用瀏覽器 Web Speech API 做語音轉文字,並把識別結果流式寫入當前草稿。它不負責發送消息,最終是否發送仍由操作者決定。

這是什麼

forrestahha/dsh-voice-input 是一個面向 DeepSeek Harness Web UI 的語音轉文字插件,由 forrestahha 維護,許可證爲 MIT。它添加到官方 conversation.input.right 擴展槽,給 Web UI 輸入框增加語音輸入能力,同時不改變 agent-loop、model、session-log 或 Host API 行爲。

核心功能

  • 在 composer 的發送按鈕前添加麥克風按鈕。
  • 添加到官方 conversation.input.right 擴展槽。
  • 使用瀏覽器 Web Speech API,將識別結果流式寫入當前草稿。
  • 不會自動提交消息。
  • 支持標準 SpeechRecognition 和 WebKit 前綴實現。
  • 使用瀏覽器語言,回退語言爲 zh-CN。
  • 對中文、日文、韓文和拉丁文本保留自然空格。
  • 再次點擊麥克風按鈕可停止錄音;組件卸載時會中止識別。
  • 不需要額外 API key 或 host-side service。

安裝與啓用

先安裝到 Web profile:

dsh plugin --profile web add github:forrestahha/dsh-voice-input

然後啓動 Web UI:

dsh web

如果需要固定版本:

dsh plugin --profile web add github:forrestahha/dsh-voice-input#v0.1.1

典型用法

1、打開 Web UI,選擇一個 workspace。

2、點擊 composer 右側、發送按鈕前的麥克風按鈕。首次使用時,瀏覽器會詢問麥克風訪問權限。

3、開始說話後,識別結果會寫入當前草稿。再次點擊麥克風按鈕可以停止錄音。

4、確認草稿內容後,手動執行發送。插件不會替你提交消息。

瀏覽器支持

插件需要 SpeechRecognition 或 webkitSpeechRecognition。Chromium-based browsers 提供支持較廣。

不支持的瀏覽器不會導致啓動失敗,而是顯示一個禁用的麥克風按鈕。

localhost 會被現代瀏覽器視爲 secure context。如果 Harness 從另一臺機器訪問,使用 HTTPS 可能更安全;否則瀏覽器可能拒絕麥克風訪問。

隱私與權限

插件不保存音頻,也不額外發起網絡請求。Web Speech API 的具體實現由瀏覽器控制,瀏覽器廠商可能將音頻發送到其語音服務。處理敏感內容前,建議先查看瀏覽器的隱私政策。

插件以當前 dsh 進程權限運行,安裝前應檢查源碼與 MIT 許可證。

適用場景

  • 需要在 Web UI 中先把想法口述成草稿,再手動整理和發送。
  • 使用 Chromium-based browsers 或支持 Web Speech API 的瀏覽器。
  • 不想引入額外語音服務 API key 或 host-side service。
  • 接受瀏覽器自身語音識別策略和隱私政策的團隊或個人。

如果瀏覽器不支持相應 API,插件只會顯示禁用按鈕,不會提供語音輸入能力。

本地開發與集成測試

本地開發需要 Node.js ^22.19.0 || >=24.0.0 和 pnpm 11。若已有本地 checkout,可以安裝到 Web profile 做集成測試:

dsh plugin --profile web add /absolute/path/to/dsh-voice-input
dsh web

結尾

dsh-voice-input 的價值很明確:給 DeepSeek Harness Web UI 增加一個可控的語音草稿入口,不改變消息發送流程,也不引入額外語音服務。GitHub 倉庫:https://github.com/forrestahha/dsh-voice-input

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

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

小夜