dsh-voice-input:DSH 桌面端輸入框語音轉文字

前言

在 DSH 裏和智能體對話,多數時候仍靠鍵盤輸入。若希望「說幾句就進輸入框、改一改再發」,常見做法是切到系統聽寫或第三方工具,再複製粘貼回 DSH,步驟多且容易打斷上下文。DeepSeek Harness 採用「一切皆插件」的擴展方式;社區目錄 SkillHub 上的 dsh-voice-input(維護者 yfy12306)面向 DSH 桌面端:在輸入框右下角增加麥克風按鈕,瀏覽器側錄音,經 DSH 內置 webserver 的同源路由把音頻交給 host 側 ASR,識別結果先寫入草稿,可編輯後再發送。

下面介紹它的定位、能力與安裝配置要點。

這是什麼

dsh-voice-input 是 DSH 的客戶端類插件(分類:客戶端)。一句話:輸入框麥克風按鈕 → 錄音 → 同源路由轉發 ASR → 文本插入草稿,可編輯後發送。

與「整段音頻在外部工具裏轉寫再粘貼」相比,錄音在頁面內完成(getUserMedia),API key 只在 host 側解析,不進入瀏覽器進程;識別文本直接進入當前輸入框草稿,而不是立刻發送。

核心功能

以下能力均來自倉庫 README 與 package.json 說明,版本 0.1.0,許可證 MIT。

  1. 輸入框 UI:在輸入框右下角提供麥克風按鈕(依賴 @deepseek-ai/dsh-client-ui-slots,客戶端平臺爲 web)。
  2. 瀏覽器側錄音:使用 getUserMedia 採集音頻;插件在主進程通過 Electron 原生 API 重設各窗口 session 的 permission handler,放行 media(DSH 桌面端默認主要放行剪貼板,不設 handler 時瀏覽器側會 NotAllowedError),並保留原有剪貼板規則。
  3. 同源 ASR 路由:註冊 POST /voice-asr/transcribe(默認路徑,可配置),請求體爲 { audioBase64, mime };host 側讀取環境變量中的 key,以 OpenAI 兼容的 chat/completions 方式調用 ASR(input_audio base64 Data URL),返回 { text }。路由僅接受迴環來源請求。
  4. 草稿再發送:識別文本先插入輸入框草稿,可手動修改後再發送。

默認 ASR 相關配置指向 OpenAI 兼容網關與模型名 qwen3-asr-flash(見下表),具體網關地址需自行填寫。

安裝與啓用

官方 README 未提供 dsh plugin add github:... 一類命令;安裝方式爲把倉庫放到固定目錄並在 desktop profile 裏 link 依賴。下面按 README 步驟說明。

  1. 將本插件倉庫放到固定位置,例如:
~/.dsh/profiles/desktop/voice-input
  1. 編輯 ~/.dsh/profiles/desktop/package.json:
  • 在 dependencies 中增加(路徑改爲你機器上的絕對路徑,使用正斜槓):
"dsh-voice-input": "link:/home/you/.dsh/profiles/desktop/voice-input"
  • 在 dsh.profile.bundles 中增加 bundle 名 "dsh-voice-input"。
  1. 將倉庫中的 cordis.patch.yml 內容追加到 ~/.dsh/profiles/desktop/cordis.patch.yml,並把其中的 baseURL 改成你的 OpenAI 兼容 ASR 網關地址(必填項,默認可爲空字符串)。

  2. 在 profile 目錄執行安裝並重啓 DSH:

cd ~/.dsh/profiles/desktop
pnpm install

然後重啓 DSH 桌面端,使 bundle 與 patch 生效。

配置(cordis.patch.yml)

插件通過 bundle patch 注入配置項,常用字段如下(摘自 README):

鍵 默認 說明
baseURL "" OpenAI 兼容 ASR 網關地址(必填)
model qwen3-asr-flash ASR 模型名
apiKeyEnv ALIYUNBAILIAN_API_KEY API key 對應的環境變量名(僅在 host 側解析)
language zh 識別語言
routePath /voice-asr/transcribe 同源路由路徑
maxBodyBytes 15728640 音頻 body 大小上限(15 MB)

安裝前應在 host 環境中設置 apiKeyEnv 所指向的變量;key 不會下發到瀏覽器。

典型用法與自測

日常使用:在 DSH 桌面端打開帶輸入框的對話界面,點擊輸入框右下角麥克風,完成錄音後等待識別;文本出現在輸入框草稿中,編輯滿意後再發送。

ASR 連通性自測(README 提供腳本,需替換網關地址):

ASR_BASE_URL=<你的網關> node scripts/test-asr.mjs

腳本位於插件倉庫內,用於在 host 側驗證網關與模型是否可用,不替代 DSH 內的完整 UI 流程。

適用場景與注意

適合:已在 DSH 桌面端日常對話、希望少切換窗口、用語音快速起草消息再精修的用戶;已有或可部署 OpenAI 兼容 ASR 網關(默認文檔示例爲百鍊相關環境變量名 ALIYUNBAILIAN_API_KEY)。

注意:

  • 插件以當前 DSH 進程權限運行,並修改 Electron 窗口的媒體權限與 host 路由;安裝前應閱讀 GitHub 源碼 與 MIT 許可證,確認網關與 key 管理方式符合你的安全策略。
  • 僅適用於 README 描述的 desktop profile + link 安裝方式;peer 依賴 @deepseek-ai/cordis ^4.0.1、@deepseek-ai/dsh-client-ui-slots ^0.2.0-rc.1,需與當前 DSH 版本匹配。
  • SkillHub 目錄頁與 GitHub 由社區維護,與 DeepSeek / 幻方無官方從屬關係;星標等元數據以目錄頁爲準(當前爲 0)。

結尾

dsh-voice-input 把「點麥克風 → 同源 ASR → 草稿編輯 → 發送」收攏在 DSH 桌面輸入框內,並保證 API key 留在 host。若你需要在 Harness 裏少打字、多口述再改稿,可按上文 link 安裝並配置 baseURL 與 key 環境變量。

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

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

小夜