前言¶
在 DeepSeek Harness(DSH)裏做帶「聲音」的智能體,常見做法是各自接 TTS API、自己管參考音頻、翻唱再另起腳本,QQ 側還要再對接一層橋接。鏈路一多,配置分散,Agent 也很難用同一套設置去合成、翻唱和發語音。
下面介紹社區插件 語音工坊(倉庫 keduoli-lovely/dsh-plugin-voice-studio),維護者爲 keduoli-lovely,在 DSH 插件目錄中歸類爲 模型推理。它把多提供商語音合成、參考音色庫、RVC 歌曲翻唱、情緒控制,以及通過 qq-bridge 發送語音(含隨機語音回覆)收進一個插件;設置集中在 設置 → 語音工坊,Agent 通過 voice_generate、song_cover、voice_studio_info、voice_random_check 四個工具共用同一配置。
這是什麼¶
語音工坊 的定位可以概括爲:把「說話、唱歌、換音色、發到 QQ」做成一件事。插件本體僅依賴 Node.js ≥ 18 內置模塊(無額外 npm 依賴);可選能力依賴本機或局域網上的 IndexTTS、GPT-SoVITS、RVC、MSST、硅基流動 / MiniMax / 小米 MiMo / OpenAI 兼容 API,以及 qq-bridge。缺某服務時對應能力不可用,不會導致插件加載失敗。
運行環境要求 DeepSeek Harness ≥ 0.1.7(桌面版或 web profile)。插件通過 settings.section 出現在設置裏;當前 package.json 中版本爲 0.4.0,許可證 MIT。
核心功能¶
多提供商語音合成¶
內置 6 個 TTS 適配器,在線與本地配置字段統一爲 baseUrl / apiKey / model / voice;本地提供商使用 refAudioId。
| 提供商 id | 類型 | 說明摘要 |
|---|---|---|
indextts |
本地 | Gradio gen_single,支持 8 維情緒向量 |
gptsovits |
本地 | api_v2.py 的 /tts;9874 爲 WebUI,無 TTS API |
siliconflow |
在線 | /audio/speech,情緒用指令前綴 |
minimax |
在線 | /t2a_v2,返回 hex 音頻由插件解碼 |
mimo |
在線 | Chat Completions + audio |
openai |
在線 | OpenAI 兼容 /audio/speech |
配置持久化在 ~/.dsh-voice-studio/config.json。本地提供商需先有參考音色;未設默認音色時會用庫裏第一個可用條目。
參考音色庫¶
支持上傳、從路徑導入、整目錄遞歸導入(最多 200 個)。音頻複製到 ~/.dsh-voice-studio/refs/,不引用原路徑。同名導入返回 409 VOICE_CONFLICT,頁面可選擇替換或另存爲新音色。
情緒系統¶
來源鏈爲:調用方顯式參數 → 已安裝的 DSH 情緒插件(Service / get_mood / POST {DSH}/emotion/api/state)→ 內置詞典(開心、生氣、悲傷等)。缺情緒插件也不會失敗。GPT-SoVITS 與 RVC 無情緒參數,結果中會如實標註。
歌曲翻唱¶
流程:本機絕對路徑給歌 → 人聲分離 → RVC 換聲(HTTP)→ 本地 Node 混音母帶。換聲直接調用 RVC WebUI 的 Gradio /run/*;人聲分離需 MSST_WebUI(填 msstUrl 時優先)或插件自帶的 server/rvc-api.py 的 /separate(因 RVC WebUI 分離按鈕對應流式生成器且隊列路由不可用,HTTP 無法等分離跑完)。混音在本地按分離人聲 RMS 對齊伴奏,有 ffmpeg 時可 loudnorm 並輸出 MP3。
QQ 發送與隨機語音¶
生成音頻後複製進 qq-bridge 語音庫,調用其 qq_send_voice;插件不接管 QQ 連接。隨機語音由宿主端概率、冷卻與每小時上限控制;唱歌不走隨機。
可觀測與 API¶
狀態頁會展示 DSH 地址/端口、qq-bridge 與 DSH 地址是否一致,並按當前選擇探測服務。除 Agent 工具外,插件還提供 HTTP API(詳見倉庫 README)。
安裝與啓用¶
從 GitHub 安裝(web profile):
dsh plugin --profile web add github:keduoli-lovely/dsh-plugin-voice-studio
本地目錄安裝:
dsh plugin --profile web add /path/to/dsh-plugin-voice-studio
安裝後刷新設置頁,即可看到「語音工坊」。插件以當前 DSH 進程權限運行,安裝前請自行查看倉庫源碼與 MIT 許可證。
典型用法¶
快速開始(設置頁)¶
- 配置語音提供商:設置 → 語音工坊 → 語音合成,選擇提供商並填寫
baseUrl(本地)或apiKey(在線)。 - 導入參考音色:在語音合成或「參考音色」頁上傳/導入約 3~15 秒乾淨人聲。
- 試聽:語音合成頁底部輸入文字,點「生成」,確認音色與出聲正常。
- (可選)翻唱:在 RVC 機器啓動
server/rvc-api.py,歌曲翻唱頁填寫地址並「重新掃描模型」;輸入本機絕對路徑開始翻唱。 - (可選)QQ:QQ 發送頁啓用並確認
qq-bridge路徑;點「把當前 DSH 地址寫入 qq-bridge」,重啓 qq-bridge。
提供商配置示例¶
下面片段說明 config.json 中 tts.providers 的常見寫法(密鑰需替換爲自己的):
{
"tts": {
"provider": "indextts",
"providers": {
"indextts": {
"baseUrl": "http://127.0.0.1:7860",
"refAudioId": "v_xxx",
"lang": "ZH",
"emoWeight": 0.8
},
"siliconflow": {
"baseUrl": "https://api.siliconflow.cn/v1",
"apiKey": "sk-...",
"model": "FunAudioLLM/CosyVoice2-0.5B",
"voice": "FunAudioLLM/CosyVoice2-0.5B:alex"
}
}
}
}
可選 RVC 分離服務¶
需要自動分離且未配置 MSST 時,可在 RVC 根目錄啓動插件附帶腳本(默認端口 7866,示例來自 README):
runtime\python.exe <插件目錄>\server\rvc-api.py --host 0.0.0.0 --port 7866 --rvc-root D:\path\to\RVC
瀏覽器訪問 http://<RVC機器IP>:7866/ 應看到服務自述 JSON,而非 WebUI 頁面。
適用場景與注意¶
適合誰:希望在 DSH Agent 裏統一做 TTS、帶參考音色的角色聲線、情緒隨對話變化、偶爾 RVC 翻唱,並把結果發到 QQ 的開發者;已有 IndexTTS / GPT-SoVITS / RVC / qq-bridge 棧的用戶可以按需啓用子能力。
應注意:
- 歌曲翻唱
song只接受本機絕對路徑;音樂目錄匹配、鏈接下載、yt-dlp 等能力已移除。 - RVC 換聲與 WebUI 列表/轉換可共用一個
rvcUrl;分離必須 MSST 或rvc-api.py之一。 - 社區插件目錄 skillhub.cn 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;星標與版本以你安裝時的倉庫爲準。
結尾¶
經過上面的步驟,語音工坊把合成、音色庫、情緒、翻唱與 QQ 語音發送收斂到 DSH 一套配置與四個 Agent 工具裏,減少自建膠水代碼。進一步瞭解參數、HTTP API、故障排查與已知限制,請閱讀倉庫 README: