前言¶
在 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。
- 輸入框 UI:在輸入框右下角提供麥克風按鈕(依賴
@deepseek-ai/dsh-client-ui-slots,客戶端平臺爲 web)。 - 瀏覽器側錄音:使用
getUserMedia採集音頻;插件在主進程通過 Electron 原生 API 重設各窗口 session 的 permission handler,放行media(DSH 桌面端默認主要放行剪貼板,不設 handler 時瀏覽器側會NotAllowedError),並保留原有剪貼板規則。 - 同源 ASR 路由:註冊
POST /voice-asr/transcribe(默認路徑,可配置),請求體爲{ audioBase64, mime };host 側讀取環境變量中的 key,以 OpenAI 兼容的 chat/completions 方式調用 ASR(input_audiobase64 Data URL),返回{ text }。路由僅接受迴環來源請求。 - 草稿再發送:識別文本先插入輸入框草稿,可手動修改後再發送。
默認 ASR 相關配置指向 OpenAI 兼容網關與模型名 qwen3-asr-flash(見下表),具體網關地址需自行填寫。
安裝與啓用¶
官方 README 未提供 dsh plugin add github:... 一類命令;安裝方式爲把倉庫放到固定目錄並在 desktop profile 裏 link 依賴。下面按 README 步驟說明。
- 將本插件倉庫放到固定位置,例如:
~/.dsh/profiles/desktop/voice-input
- 編輯
~/.dsh/profiles/desktop/package.json:
- 在
dependencies中增加(路徑改爲你機器上的絕對路徑,使用正斜槓):
"dsh-voice-input": "link:/home/you/.dsh/profiles/desktop/voice-input"
- 在
dsh.profile.bundles中增加 bundle 名"dsh-voice-input"。
-
將倉庫中的
cordis.patch.yml內容追加到~/.dsh/profiles/desktop/cordis.patch.yml,並把其中的baseURL改成你的 OpenAI 兼容 ASR 網關地址(必填項,默認可爲空字符串)。 -
在 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 環境變量。