前言¶
在 DeepSeek Harness(DSH)Web 裏做智能體對話,助手回覆往往很長,純看屏幕容易疲勞;若要把內容「說出來」,通常得複製到外部 TTS 工具,再單獨配 Key 和音色,和會話上下文脫節。社區維護者 liqiangai 的 dsh-tts-web 把文本轉語音直接嵌進 Web:左側欄有「語音朗讀」面板,每條助手消息旁有小喇叭,可選 MiniMax Speech 或小米 MiMo TTS 合成,並支持自動朗讀最新回覆與朗讀歷史。插件歸類爲「模型推理」,當前 GitHub 星標爲 0,版本 0.2.0,許可 MIT。
這是什麼¶
dsh-tts-web 是爲 DSH Web 增加的 TTS 插件:Host 側提供同源合成路由與設置存儲,瀏覽器半註冊側欄入口、設置面板與逐條朗讀按鈕,無構建步驟。維護倉庫:liqiangai/dsh-tts-web;目錄頁:skillhub.cn 插件頁。SkillHub 等社區目錄與 DeepSeek / 幻方無官方從屬關係,安裝前仍建議自行閱讀源碼與許可證。
支持的語音服務¶
面板裏可一鍵切換服務商:
| 服務商 | 接口 | 能力(據 README) |
|---|---|---|
| MiniMax Speech | POST {origin}/v1/t2a_v2 |
官方 300+ 系統音色、MP3/WAV、語速/音量/音高、language_boost |
| 小米 MiMo TTS | POST {base}/chat/completions |
預置音色(冰糖、茉莉、蘇打、白樺、Mia、Chloe、Milo、Dean)與音色設計模型 |
MiMo 請求方式參照社區插件 ppy-web/dsh-plugin-xiaomi-mimo-tts;本倉庫獨立實現並新增 MiniMax 合成、左側欄面板、逐條朗讀與自動朗讀。
核心功能¶
- 左側欄入口:
sidebar.panellist增加圖標,點開可配置服務商、Key、模型、音色、語速、格式與開關。 - 逐條朗讀:助手消息工具行上的小喇叭,再點一次停止。
- 自動朗讀:開啓「自動朗讀新回覆」後,每條助手回覆完成且播放器空閒時自動播報——只播最新一條、每條只播一次,不打斷你手動點的朗讀。
- 朗讀最新回覆:面板內一鍵朗讀當前會話最後一條助手消息。
- 長文本:按句子切分爲 ≤1800 字(
maxCharsPerRequest)的片段順序播放,一次停止可中斷整段。 - 朗讀歷史:最近 30 條可重播、可清空(只存文本與元數據,不存音頻)。
- Key 不落明文:優先 DSH 憑據庫或進程環境;面板只顯示「已配置」。
前置要求¶
- 可運行的 DeepSeek Harness Web 界面,Node ≥ 20。
- 至少一路語音服務的 API Key:MiniMax 或小米 MiMo(可只配其一,也可兩個都配)。
安裝與啓用¶
官方 README 的安裝方式爲:先取得倉庫到本機,再在 DSH 會話裏讓 Agent 安裝本地 bundle(勿自行拼接 dsh plugin add github:owner/repo)。
克隆倉庫:
git clone https://github.com/liqiangai/dsh-tts-web.git
在 DSH 會話中執行(target 爲克隆目錄的絕對路徑):
plugin_manager action: install_bundle target: <克隆目錄的絕對路徑>
返回 application: applied 後,左側欄會出現語音朗讀圖標。bundle 以 link: 方式接入,改代碼後重新加載即生效。卸載:plugin_manager 的 remove_bundle,target 傳 dsh-tts-web。
配置 API Key¶
兩種方式任選,推薦第一種:
-
DSH 憑據(推薦)
面板「環境變量名」填例如MINIMAX_CN_API_KEY。合成時經 DSHcredentials服務解析(先憑據庫,再進程環境),面板顯示「已配置」。MiniMax 中國站 Key 常以該名已存好。 -
直接填寫
在面板 API Key 輸入框寫入,保存在插件設置文件(本機 600 權限)。
小米 MiMo 默認讀 XIAOMI_MIMO_API_KEY;tp- 開頭的 Token Plan Key 會自動切換到 https://token-plan-cn.xiaomimimo.com/v1。
設置文件默認位置:
%USERPROFILE%\.dsh\plugin-data\dsh-tts-web\settings.json
%DSH_PROFILE_DIR%\plugin-data\dsh-tts-web\settings.json # 以 profile 啓動且導出該變量時
典型用法¶
- 打開左側欄 語音朗讀。
- 選服務商 → 填 Key 或環境變量名 → 選模型/音色/語速 → 保存。
- 面板下方文本框可試聽(朗讀 / 停止),或點「朗讀最新回覆」。
- 回到對話:工具行朗讀按鈕;需要連續播報則打開 自動朗讀。
自動朗讀與限制¶
開啓後,插件在消息行監聽會話:當最新一條回覆寫完(會話不再 running)且播放器空閒,延遲 400ms 自動合成播放;同一條只播一次,手動點過喇叭的不會再自動播。
兩點限制(README 如實說明):
- 需停留在對話頁:切到「語音朗讀」或其他面板時對話卸載,不會觸發自動朗讀。
- 瀏覽器自動播放策略:無用戶手勢時可能
NotAllowedError;消息行會提示「瀏覽器攔截了自動播放,點一下喇叭即可」,頁面上任意一次點擊後後續自動朗讀通常放行。
工作原理概要¶
一行 patch 同時激活 Host 與 Web Client:
| 半邊 | 職責 |
|---|---|
index.js、lib/*.js |
/plugins/dsh-tts-web/* 同源路由、服務商調用、設置、憑據解析 |
client.js |
側欄、面板、逐條朗讀、播放(window.__ModuleLoader__ 懶加載,無構建) |
瀏覽器半註冊 slot:sidebar.panellist、main、conversation.chat.assistant-actions。本機 HTTP 前綴 /plugins/dsh-tts-web,常用路徑包括 GET/POST /config、POST /speak、GET /voices?provider=minimax、GET/DELETE /history。帶 Origin 的跨站請求會被拒絕。內部協議見倉庫 docs/CONTRACT.md。
維護者在開發機上驗證過 MiniMax 網關合成與 303 個系統音色等;小米 MiMo 一路在開發機上無 Key,README 標明未做聯網實測。
適用場景與注意¶
適合:長期在 DSH Web 裏讀助手長回覆、需要 MiniMax 多音色或 MiMo 預置音色、希望 Key 走 DSH 憑據而非明文落盤的用戶。
注意:
- 插件以當前 dsh 進程權限運行,安裝前應檢查源碼與 MIT 許可證及第三方服務條款。
- 開發期可跑
node scripts/verify.mjs、node scripts/test-client.mjs(不隨包安裝);改瀏覽器半需刷新頁面或重啓dsh web。
結尾¶
dsh-tts-web 把 TTS 收進 DSH Web 側欄與消息行,雙服務商可切換,併兼顧憑據解析、長文分段與朗讀歷史。進一步瞭解可打開 目錄頁 與 GitHub 倉庫。