前言¶
DeepSeek Harness (DSH) 采用“一切皆插件”的架构。开发者常需要在助手回复中增加语音合成能力。dsh-mimotts 是一个基于小米 MiMo TTS (mimo-v2.5-tts) 的插件,提供配置卡片、消息动作行音量按钮及带进度条的内联播放器。该插件严格遵循官方插件规范,API Key 仅存储在宿主侧,浏览器只发送文本、接收 WAV。
安装与启用¶
本地安装插件:
dsh plugin --profile demo add ./dsh-mimotts
安装前需执行构建命令:
npm install
npm run build
安装完成后,在「插件」页找到 dsh-mimotts,填入 API Key 并试听即可使用。
核心功能¶
1. 插件页配置卡片¶
在「插件」页添加插件后,配置卡片包含以下参数:
* API Key:仅输入框,粘贴后经官方通道存入宿主凭据存储,显示”已配置/未配置”状态,清空保存不改动已存密钥。
* 接口与模型:接口地址(默认 https://api.xiaomimimo.com/v1)、模型(默认 mimo-v2.5-tts)。
* 音色与克隆:官方 9 音色下拉选择(mimo_default、冰糖、茉莉等);音色克隆样本需提供本地 WAV 路径(24kHz/16bit/单声道)。
* 风格与限制:默认风格、单次最大字符数、请求超时。
* 试听:使用当前配置合成示例音频并内联播放。
2. 消息动作行与播放器¶
每条已定稿助手回复底部的动作行提供音量按钮及可拖动进度条的内联播放器:
* 合成:点击按钮,宿主合成音频(Markdown 归一化,不朗读代码块、URL 或标记符号)。
* 播放控制:播放/暂停、可拖动进度条(支持指针拖拽、单击定位、键盘 ← → Home End 操作)。
* 状态:同时仅有一条在播,播放中动作行不再淡出。
* 错误处理:未配置、超时或上游拒绝等错误会就地提示。
3. 设置页语音历史¶
在「设置 → 语音历史」中管理朗读记录:
* 自动保存:每次朗读自动保存。
* 分组与回放:按文本分组、多版本并列显示,支持逐版本回放。
* 管理操作:支持「重新合成」(用当前配置重读并保留旧版本对比)及删除。
技术细节与适配¶
- 版本要求:适配
deepseek-harness >=0.2.0-rc.2 <0.3.0。 - 架构分工:Host 侧负责配置表单、Web 路由(
/api/mimotts/status、/api/mimotts/synthesize)及信任栅栏;Client 侧通过plugins.bundle.config、conversation.chat.assistant-actions、settings.section三个 slot 注册组件。 - 安全边界:
/api/mimotts/*路由先过 Connection 信任栅栏;请求体 1MiB 上限;文本超预算在句末截断朗读开头。
注意事项¶
- 文本处理:朗读时跳过代码块、URL 和标记符号。
- 平台差异:Desktop (Electron) 走 IPC 桥接 fetch;语音输入(麦克风)由官方
voice-input组合包负责,与本插件互补不冲突。 - 构建依赖:该插件无
prepare钩子,需手动运行npm run build。