前言¶
在 DSH 裏跑智能體時,文本回復很容易,語音往往要另接腳本:自己調 TTS API、落盤音頻,再想辦法塞進 QQ 或 OneBot。鏈路一多,Key、音色、參考音頻和發送網關分散在不同地方,調試也費事。
下面介紹社區插件 dsh-plugin-tts(維護者 LotusPrimeUmbra):把小米 MiMo 與 Breeze(BreezeBlue)兩套合成協議、試聽與克隆、以及本機 OneBot HTTP 發 QQ 語音收進 DSH 的設置頁、AI 工具與 HTTP 路由。插件歸類爲「模型推理」,當前 Release 包版本 0.4.2,許可證 MIT;上游 API Key 需自行到對應官網註冊,插件不自帶密鑰。
這是什麼¶
dsh-plugin-tts 是 profile 級 DeepSeek Harness 插件:裝進哪個 profile,對該 profile 下全部會話生效。裝好後通常有三塊能力:
| 面 | 內容 |
|---|---|
| UI | 設置 →「語音合成」:開關、調用優先級、小米 / Breeze 雙協議面板、參考音頻、請求模板、試聽、發 QQ 語音、通道探活、日誌 |
| AI 工具 | tts_speak(合成 / 合成併發 QQ 語音)、tts_voices(音色與通道狀態) |
| HTTP | /dsh-tts/*:配置、探活、試聽、克隆參考音頻、發語音、日誌等 |
README 寫明:小米 MiMo 與 Breeze 模型只測試過這兩個;理論上小米模板兼容 OpenAI 協議的其他音色克隆模型。Breeze 在官網克隆音色後可在插件裏直接拉取,因此 Breeze 模板沒有「上傳參考文件克隆」那一套。語音發送走本機(或雲服務器)上的 OneBot HTTP 網關(文檔示例默認 http://127.0.0.1:3000)。若通過 qqbridge 等橋接讓 QQ 側 AI 調用工具,可能需在橋接白名單中加入 tts_speak、tts_voices。
核心功能¶
雙協議合成與路由¶
- 小米 MiMo:預置音色(文檔示例提到 9 個內置音色)、音色設計、克隆音色、自定義模式;說話 / 唱歌風格、請求頭與請求體模板可配。
- Breeze:baseUrl、Key、model_id / voice_id(可拉取列表);格式 mp3/wav;引導強度、語速、音量等。
- 調用優先級:只走 MiMo、只走 Breeze,或 smart。smart 下:字數或估算時長超過分界則走小米,否則按最近成功合成的平均耗時選更快一側;分界可在設置裏調整。
克隆與參考音頻¶
克隆參考音頻放在 $DSH_HOME/dsh-tts/state/tts-clone/。上傳時可前端剪成 24kHz WAV;文檔提醒參考音頻有效語音不宜過短(過短會導致克隆音色不穩定,建議 10~30 秒連續說話)。可選 ffmpeg 做音量歸一與參考音頻轉碼;未安裝會跳過相關步驟,合成與克隆仍可用。
OneBot 與 QQ 語音¶
設置裏可填 OneBot HTTP 地址與 Access Token(SnowLuma 的 HTTP token,非 WS token)。「發語音」區塊支持目標 group:羣號 / private:QQ號,合成後直接經網關發送。
數據落盤¶
配置與運行數據在 $DSH_HOME/dsh-tts/(可用環境變量 DSH_HOME 改根目錄,默認 ~/.dsh):
$DSH_HOME/dsh-tts/
├── config.json
├── dsh-tts.log
└── state/
├── tts-clone/
├── tts-cache/
└── tts-latency.json
API Key 以明文保存在 config.json,文檔要求勿提交倉庫或外傳。插件聲明不聯網收集數據,請求只發往用戶配置的上游 TTS 接口。
安裝與啓用¶
前提:DeepSeek Harness 已能正常打開設置;Node.js ≥ 22.19.0;插件零 npm 依賴,解壓即用。官方 README 未提供 dsh plugin add github:... 一類命令;推薦從 GitHub Releases 下載 dsh-plugin-tts-0.4.2.zip,校驗 Release 頁公佈的 SHA256 後解壓,選中與 package.json 同級的 dsh-plugin-tts 目錄(常見失敗原因是多套一層目錄)。
方式 A:設置裏從本地安裝(推薦)¶
- DSH → 設置 → 插件管理 → 從本地安裝,選中解壓後的
dsh-plugin-tts目錄。 - 刷新頁面,打開 設置 → 語音合成,看狀態點:灰 = 關;黃 = 開但未填 Key;綠 = 可合成。
- Host 自檢(端口換成你的 DSH 端口):
curl http://127.0.0.1:6831/dsh-tts/state
返回含 "ok":true 表示 Host 側已起來;其餘爲填 Key 與上游配置。
裝前可在解壓目錄執行:
node bin/install.mjs --check
看到「校驗通過:文件齊全、元數據完整、所有 JS 通過 node –check。」再裝更穩妥。
方式 B:讓 DSH 安裝本地包路徑¶
若目錄已在本地,在 DSH 對話中給出絕對路徑,由 DSH 調用 plugin_manager install_bundle,例如:
安裝本地插件包 /home/you/dsh-plugin-tts
Windows 示例路徑形式:D:\path\to\dsh-plugin-tts。
首次填 Key¶
在 設置 → 語音合成 至少配置一套:
- 小米 MiMo:小米模板裏填 API Key(接口文檔指向
https://api.xiaomimimo.com)。 - Breeze:Breeze 面板填 API Key。
兩套可同時啓用;routeMode=smart 時按上述規則選路。
典型用法¶
設置頁¶
- 填 Key 後點「測試連接」或各面板底部「保存配置並檢查」。
- 各協議面板自帶試聽;可勾選唱歌模式就地播放。
- 「發語音」填文案與
group:/private:目標,一鍵合成併發送。 - 「測試 OneBot」會調用
get_login_info,失敗時文檔說明會帶端口提示。
AI 工具¶
對 DSH 說「有哪些 TTS 音色」時,可觸發 tts_voices,返回內置音色與通道狀態(文檔示例爲 9 個內置音色)。合成或合成併發 QQ 語音走 tts_speak;插件關閉或禁止 AI 調用時,tts_speak 會直接拒絕。
HTTP¶
除 state 外,README 將 /dsh-tts/* 作爲配置、試聽、克隆、發語音、日誌等入口;具體路徑以實現爲準,裝好後用 state 做連通性檢查即可。
適用場景與注意¶
適合:已在 DSH 裏跑智能體、需要 MiMo 或 Breeze 合成、並希望通過 OneBot 把結果當 QQ 語音發到羣或好友的開發者;也希望在設置頁統一管理 Key、音色、克隆參考與路由,而不是散落腳本。
注意:
- 插件以當前 DSH profile 進程權限運行,能讀寫
$DSH_HOME/dsh-tts/;安裝前應閱讀倉庫源碼與 MIT 許可證,自行評估信任邊界。 voicePolicy.allowAbsolutePath默認 false,禁止任意絕對路徑讀音頻。- OneBot 網關需自行部署與保活;Key 與參考音頻都在本機數據目錄,移除插件不會自動刪除
$DSH_HOME/dsh-tts/,需手動清理纔不可恢復。 - README 註明插件由 AI 製作,遇問題需自行排查或修復;社區目錄 skillhub.cn 插件頁 與 GitHub 倉庫爲獨立信息源,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
dsh-plugin-tts 把 TTS 合成、雙協議路由、克隆與 OneBot 發語音收進 DSH 的統一界面與工具面,適合要把「能說話的 agent」和 QQ 通道接在同一條 profile 裏的場景。
- 目錄頁:https://www.skillhub.cn/plugins/LotusPrimeUmbra/dsh-plugin-tts
- 源碼與 README:https://github.com/LotusPrimeUmbra/dsh-plugin-tts