前言¶
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。