前言¶
在 DSH 裏用 Go 客戶端輸入框旁的麥克風做語音轉寫,App 只認兩條 Remote:speech/catalog(識別器列表與當前選擇)和 speech/transcribe(整段 WAV 轉文本)。官方「語音輸入」bundle 走的是 SenseVoice 本地模型,int8 約 228 MB,還要在 proot 裏跑 sherpa-onnx-node,對手機端體積和部署都不友好。若你更希望零本地下載、走雲端識別,可以換成社區插件 dsh-mimo-asr:在同一套 speech/* 接口上註冊 location:'cloud' 的 provider,調用 Xiaomi MiMo(mimo-v2.5-asr)。
下面介紹它是什麼、怎麼裝、怎麼配 Key,以及和官方 bundle 並存時要注意什麼。
這是什麼¶
dsh-mimo-asr 由維護者 Easyhoov 發佈,在 SkillHub 插件目錄 中歸類爲聯網工具。一句話:把 DSH Go 輸入框麥克風所需的 speech/* Remote 換成小米 MiMo 雲端語音識別實現,手機端無需下載 ASR 模型。
插件通過 cordis.patch.yml 一次性 insert 三個相關條目:本包(MiMo provider)、@deepseek-ai/dsh-experimental-speech-to-text(識別器註冊表)、@deepseek-ai/dsh-experimental-api-speech-to-text(Remote 控制器)。裝完後一般不必再手工改 profile 裏的 speech 棧。
核心功能¶
已覈實能力如下:
- 對接 DSH 標準語音 Remote:實現
speech/catalog與speech/transcribe,與 DSH Go composer 麥克風協議一致。 - 雲端 MiMo ASR:默認模型
mimo-v2.5-asr,經 HTTPS 訪問api.xiaomimimo.com(或 Token Plan 對應集羣域名)。 - 依賴自帶官方 speech 實驗包:安裝時會連帶裝上上述兩個
@deepseek-ai/dsh-experimental-*依賴,不必再單獨裝官方「語音輸入」bundle(且不應與後者同時啓用,見後文)。 - 多種 API Key 來源:App 設置頁、
MIMO_API_KEY環境變量、~/.dsh/mimo-asr.key文件,優先級爲設置頁apiKey> 環境變量 > key 文件。 - 可配置項:除 Key 外,可在設置頁或配置中調整
access、cluster、model、language、timeoutMs等(詳見安裝後配置一節)。
安裝與啓用¶
環境要求(來自 package.json):Node ^22.19.0 || >=24.0.0,DSH >=0.2.0-rc.1。
從 npm 安裝到指定 profile:
dsh plugin --profile <profile> add dsh-mimo-asr
若使用本地打好的包:
dsh plugin --profile <profile> add /path/to/dsh-mimo-asr-1.0.1.tgz
安裝完成後重啓引擎:App 路徑爲「設置 › 本機引擎 › 重啓」;桌面端重啓 dsh web。
插件以當前 DSH 進程權限運行;安裝前建議自行查看 GitHub 倉庫 源碼與 MIT 許可證,確認符合你的安全與合規要求。
配置 API Key¶
推薦在 App 內配置:設置 › 插件 › dsh-mimo-asr › 設置,或設置 › 引擎參數 中的 API key 密碼框;同一頁可改 access、cluster、model、language。保存後下一次錄音即生效,無需重啓。
設置頁會把值寫入 profile 的 cordis.patch.yml(明文,依賴文件權限 600)。若不想讓 Key 落在配置文件裏,可用文件或環境變量:
- Key 文件(權限 600):
echo 'sk-...' > ~/.dsh/mimo-asr.key && chmod 600 ~/.dsh/mimo-asr.key
- 環境變量:
MIMO_API_KEY=sk-...
常用字段(帶 ★ 的可於設置頁修改):
| 字段 | 默認 | 說明 |
|---|---|---|
providerId |
mimo-cloud |
須與 registry 的 defaultProvider 一致 |
apiKey ★ |
空 | 空則回落環境變量與 key 文件 |
access ★ |
api |
api 或 token-plan |
cluster ★ |
cn |
Token Plan:cn / sgp / ams |
model ★ |
mimo-v2.5-asr |
模型 id |
language ★ |
auto |
auto / zh / en |
timeoutMs |
120000 |
單次轉寫超時 |
典型用法¶
- 在 App 中:設置 › 語音輸入 › 引擎(選「自動」時可能先嚐試系統識別器,部分國產 ROM 會多等一次失敗;可顯式選雲端 provider)。
- 點輸入框右側麥克風,說話後鬆手或點停止,轉寫文本應落入輸入框。
驗證:
- 設置 › 語音輸入 中應能看到 provider(來自
speech/catalog),phase 爲ready。 - 麥克風錄一句 → 文本進輸入框即表示鏈路正常。
卸載:
dsh plugin --profile <profile> remove dsh-mimo-asr
然後重啓引擎。
適用場景與注意¶
適合誰:已在用 DSH Go 麥克風、希望免本地 ASR 模型、能使用小米 MiMo API 的開發者或用戶。
務必注意:
- 不要與官方「語音輸入」bundle 同時啓用:兩者都會註冊
speechToText與speech/*,條目 id 會衝突。 - 識別流量走公網 HTTPS;需自行保管 API Key 並瞭解 MiMo 服務條款。
- 社區目錄 SkillHub 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;DSH 生態理念是「一切皆插件」,本介紹僅基於公開 README 與包元數據。
常見排錯(摘自 README):
| 現象 | 可能原因 |
|---|---|
日誌 pending (waiting for service: speechToText) |
registry 未起來;檢查 cordis.patch.yml 中 required 的 defaultProvider |
| App 提示請在引擎中啓用並配置語音轉寫 | speech/catalog 爲 null,或 selection.providerId 無對應 provider |
MiMo ASR HTTP 401 |
Key 錯誤或 access/cluster 不匹配 |
MiMo ASR: no API key |
設置頁、環境變量、key 文件均未配置 |
| 返回空文本 | 無人聲,或嘗試 language: zh 等明確語言 |
結尾¶
dsh-mimo-asr 把 DSH Go 麥克風熟悉的 speech/* 接口接到小米 MiMo 雲端 ASR,省去本地 SenseVoice 體積與 proot 運行時,適合「聯網工具」場景下的輕量語音輸入。