前言¶
用 DSH Web 跑智能体时,输出默认是纯文字。想让它开口说话,常见做法是自己接一层 TTS:申请 API、在 Host 侧做代理、在浏览器侧处理音频流、朗读前还要把代码块和 URL 清洗掉。每一步都不复杂,但串起来要花不少时间。
dsh-xiaomi-tts 把这条链路做成了一个可以直接安装的 DSH Web 插件,装上后对话旁多一个「朗读」按钮,点击即可播放。
这是什么¶
dsh-xiaomi-tts 由 ppy-web 维护,定位一句话:为 DSH Web 添加 Xiaomi MiMo TTS 语音朗读。它基于 Xiaomi MiMo TTS 将文字转为流畅、清晰的自然语音,许可证为 MIT。
核心功能¶
- 一键播报:在对话操作栏中显示「朗读」按钮,默认开启。
- 内置音色:使用
mimo-v2.5-tts输出音频,支持 PCM 流式播放。 - 自定义音色:使用
mimo-v2.5-tts-voicedesign,通过文字描述创造声音。 - 浏览器本地音色:使用浏览器宿主提供的离线或在线音色,作为兜底。
- 自动清洗文本:朗读前移除网址、文件路径、代码块、表情符号、图标和控制字符等。
- 三方插件联动:对外暴露 PCM 流式播放能力(play/stop),新播放会自动打断当前朗读。
安装与启用¶
环境要求:
@deepseek-ai/dsh0.1.1-rc.2或0.1.2-rc.1- Node.js 22+
- Xiaomi MiMo API Key
从 npm 安装(推荐):
dsh plugin --profile web add dsh-xiaomi-tts
也可以从 GitHub 安装:
dsh plugin --profile web add github:ppy-web/dsh-plugin-xiaomi-mimo-tts
或者打开 DSH Web 的 设置 → 插件市场,搜索 xiaomi-mimo-tts 并点击安装。
安装后按以下步骤启用:
- 重启
dsh web。 - 打开 设置 → 插件 → 插件配置 → 语音朗读(Xiaomi MiMo)。
- 填写 Xiaomi MiMo API Key,支持标准 API Key 和 Token Plan 专属 API Key。
- 修改任意设置后点击 保存 才会生效。
典型用法¶
预置音色与输出格式¶
官方内置音色共 8 个:
- 中文女声:
冰糖、茉莉 - 中文男声:
苏打、白桦 - 英文女声:
Mia、Chloe - 英文男声:
Milo、Dean
预置模型默认选择 PCM(流式播放),音频分片到达时立即开始播放,等待时间更短。也可以选 MP3(完整音频) 或 WAV(完整音频),这两种会等待完整文件生成后播放:MP3 体积更小,WAV 保留无损音频但体积更大。
自定义音色¶
切换到 mimo-v2.5-tts-voicedesign 后,可以用文字描述想要的声音。插件提供了常用描述模板,直接修改并保存即可:
青年女性,声线清亮、亲切自然,吐字清楚,语速适中,情绪温柔克制。
注意:自定义音色暂不支持 PCM,待官方上线后可适配。
浏览器本地兜底¶
本地兜底语音有三种策略:
- MiMo 优先:MiMo 失败时改用浏览器语音。
- 本地优先:优先使用浏览器语音。
- 关闭本地语音:仅使用 MiMo。
可选音色来自浏览器 Web Speech API,是否离线以及实际可用范围取决于浏览器、操作系统和网络。
三方插件联动¶
插件对外暴露了 PCM 流式播放能力,其他 Web 插件可以直接调用。在需要播放的位置写一行:
ctx.get('xiaomiMimoTts')?.play('欢迎回来')
建议通过 ctx.get() 动态获取这项能力,不必声明为必需的 inject 服务。插件未安装或未就绪时调用会安全跳过;play() 使用用户已保存的 MiMo 设置播放 PCM 流,stop() 可主动停止,新播放会自动打断当前朗读。
需要 TypeScript 类型提示时,可仅导入类型:
import type { XiaomiMimoTtsService } from 'dsh-xiaomi-tts/client-api'
const tts = ctx.get('xiaomiMimoTts') as XiaomiMimoTtsService | undefined
tts?.play('欢迎回来')
隐私¶
- API Key 保存在 DSH Host,不会发送给浏览器。
- 生成语音时,正文会被发送给 Xiaomi MiMo 服务。
- 音频在浏览器内存中通过 Web Audio 或临时 Blob URL 播放,不会持久化到磁盘。
适用场景与注意¶
适合两类人:一是日常使用 DSH Web、希望对话能被朗读出来的用户;二是在做 DSH Web 插件、需要现成语音播报能力的开发者,可以直接复用它的 play/stop 服务,不必再接一遍 TTS。
使用前注意:
- MiMo TTS 当前为限时免费服务,具体政策请关注官方平台。
- 插件以当前 dsh 进程权限运行,安装前建议检查源码与许可证。
- Windows 用户从本地开发版切换到 npm 版时,需先停止 DSH Web,避免 Windows Junction 被运行中的 Node 进程占用:
.\start\dsh-plugin-reinstall.bat 3.0.1
结尾¶
dsh-xiaomi-tts 把 TTS 接入中最繁琐的部分——API 代理、流式播放、文本清洗、兜底策略——封装进了一个插件,装上即可用。如果你想给 DSH Web 加上语音朗读,或者在自己的插件里复用播报能力,可以从它开始。
- 社区插件目录页:https://www.skillhub.cn/plugins/ppy-web/dsh-plugin-xiaomi-mimo-tts
- GitHub 仓库:https://github.com/ppy-web/dsh-plugin-xiaomi-mimo-tts