dsh-tts-web: Integrating MiniMax and Xiaomi MiMo Text-to-Speech for DSH Web

前言

在 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 凭据库或进程环境;面板只显示「已配置」。

前置要求

  1. 可运行的 DeepSeek Harness Web 界面,Node ≥ 20。
  2. 至少一路语音服务的 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

两种方式任选,推荐第一种:

  1. DSH 凭据(推荐)
    面板「环境变量名」填例如 MINIMAX_CN_API_KEY。合成时经 DSH credentials 服务解析(先凭据库,再进程环境),面板显示「已配置」。MiniMax 中国站 Key 常以该名已存好。

  2. 直接填写
    在面板 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 启动且导出该变量时

典型用法

  1. 打开左侧栏 语音朗读。
  2. 选服务商 → 填 Key 或环境变量名 → 选模型/音色/语速 → 保存。
  3. 面板下方文本框可试听(朗读 / 停止),或点「朗读最新回复」。
  4. 回到对话:工具行朗读按钮;需要连续播报则打开 自动朗读。

自动朗读与限制

开启后,插件在消息行监听会话:当最新一条回复写完(会话不再 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 仓库。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye