dsh-plugin-tts:在 DeepSeek Harness 裏做 TTS 並直髮 QQ 語音

前言

在 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:設置裏從本地安裝(推薦)

  1. DSH → 設置 → 插件管理 → 從本地安裝,選中解壓後的 dsh-plugin-tts 目錄。
  2. 刷新頁面,打開 設置 → 語音合成,看狀態點:灰 = 關;黃 = 開但未填 Key;綠 = 可合成。
  3. 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜