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