前言¶
在 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 运行时,适合「联网工具」场景下的轻量语音输入。