前言¶
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