dsh-gpt-sovits
GPT-SoVITS text-to-speech for the DeepSeek Harness web GUI: per-reply read-aloud, an auto-read toggle, native model switching, a settings page, and a startup memory gate that keeps the engine from starting when RAM is short. Ships no model weights and no reference audio.
一句话定位
GPT-SoVITS text-to-speech for the DeepSeek Harness web GUI: per-reply read-aloud, an auto-read toggle, native model switching, a settings page, and a startup memory gate that keeps the engine from starting when RAM is short…
安装方式
在 DSH 的 web profile 中执行下面的命令;装完刷新页面即可。
$ dsh plugin --profile web add 'git+https://github.com/91koukou/dsh-gpt-sovits.git#90ec8470efd411b21984c9bb04e6ecb9e78a35c0'
兼容的 DSH 版本
未声明
作者与热度
91koukou · ★ 11 · 更新于 2026-10-21
关于这个插件
dsh-gpt-sovits
中文 · [English](#english)
给 DeepSeek Harness(DSH)Web GUI 接入 GPT-SoVITS 语音合成:每条助手回复一键朗读、自动朗读开关、音色预设与设置面板。用你自己本地部署的引擎和音色,完全离线、不经云端。
> 代码是 AI 写的,声音是作者训练的。
> 本项目由 DeepSeek(deepseek-flash) 在 DSH 会话中逐轮写成 —— 出主意、修 bug、写测试、读宿主源码、量自己的宿主。完整过程见 [它是怎么来的](./docs/README.zh.md#它是怎么来的)。
dsh plugin --profile desktop add github:91koukou/dsh-gpt-sovits
本仓库不附带任何模型权重、参考音频或音频样本,也不替你启动引擎 —— 这些都由你自己准备。
---
核心特性
| 特性 | 说明 |
|---|---|
| 逐条朗读 | 每条定稿回复的操作条上有 🔊 按钮;播放中再点即停,点别的回复直接切换(单信道抢占) |
| 自动朗读(排队) | 输入栏左侧小喇叭开关。流式回复只读新增且已到句号的部分,一句接一句念完,绝不打断正在念的那句;同一条回复只读一次(刷新、切会话都不重复) |
| 启动内存检测 | 每次启动 DSH 先读一次可用内存:低于红线(默认 4.0 GB)就不自动启动引擎,插件本身照常加载(设置页、日志、模型都在),状态卡里写明原因并可一键「启动引擎」;红线与开关在设置页调整 |
| 启动问候 | 每 0.5 秒向空闲引擎请求一次问候语,识别到引擎开始工作就停止(状态每 0.1 秒检测)。它既是"插件活了"的信号,也顺带预热引擎 |
| 流式/总结分流 | 处理过程一句一请求(cut0,起播最早);定稿总结打包成块交给引擎切(cut5,请求数少、快一倍) |
| 新一轮取消上一轮 | 按外壳自己的轮次计数判定,新一轮开始清空待播队列、作废飞行中的合成;轮次内不打断 |
| 切换会话即停播 | 判据是外壳发给每个槽位的 sessionId,存在模块级变量里 —— 切换会话会卸载重挂整棵子树,存在组件里的值永远发现不了切换 |
| 把符号念成人话 | cmd.exe → 「cmd点exe」、3-10 → 「3到10」、3/4 → 「4分之3」、C:\Users → 「C:杠Users」、是/否 → 「是或否」 |
| 单位不会念错 | 120km/h → 「120千米每小时」、100MB/s → 「100兆字节每秒」、2.4GHz → 「2点4吉赫兹」。词表方式,新增单位只需加一行 |
| 停顿由标点决定 | 关掉引擎自带静音,裁掉每段音频尾部静音,再按标点插入停顿:句号 340ms、逗号 150ms、省略号 460ms、段落 520ms |
| 中文分句完整 | 。!?;… 及其连写都是句末,句末引号归前句;段落是硬边界,不会被合并 |
| 音频只在内存 | 不为每句话写 WAV 到硬盘,直接从内存服务,条数与字节双重上限;升级时自动回收旧版遗留文件 |
| 逐句语速与情感 | 语速、temperature、top-k、top-p 随每一句发出,改动从下一句生效;音量是播放属性,改了立刻生效 |
| 音色预设 | 名称 + 参考音频 + 参考文本 + 参考语言,可增删、可设默认;成对权重未变时跳过切换,免得每次朗读都重载模型 |
| 只读该读的 | 代码块整块略过、URL/路径/哈希/长标识符替换成"链接/路径/编号/长代码"、表格不念分隔线、反引号里的符号念名字 |
| 设置面板 | 设置 → 语音朗读(GPT-SoVITS)。含运行状况、内嵌引擎控制台(stdout/stderr + 启动器判定 + 生成记录)、引擎地址、音色、语速、采样步数、音量、试听。保存即生效 |
| 只监听本机 | 所有路由拒绝非 loopback 来源,写接口额外校验同源 |
---
快速开始
1. 前置条件
1. 一份已部署好的 GPT-SoVITS(api_v2.py 能跑起来)
2. 至少一对自己训练的 GPT(.ckpt)+ SoVITS(.pth) 权重,以及一段参考音频
3. DSH 桌面版或 Web 版
2. 启动引擎
插件只负责"说话",不负责起引擎:
cd <你的 GPT-SoVITS 目录> runtime\python.exe api_v2.py -a 127.0.0.1 -p 9880 -c GPT_SoVITS/configs/tts_infer.yaml
首次要等模型加载完(约 12–30 秒)。
> 健康探测打的是 GET /control。该接口不带参数时按设计返回 HTTP 400,所以插件把 400 视为"活着",只有连不上才算"未连接"。
3. 安装插件
dsh plugin --profile desktop add github:91koukou/dsh-gpt-sovits
装完刷新页面(客户端半身在启动图里合成,新插件需要一次页面加载才会出现)。
卸载:dsh plugin --profile desktop remove dsh-gpt-sovits
4. 配置
打开 设置 → 语音朗读(GPT-SoVITS),填引擎地址与至少一组音色预设。
| 项 | 默认 | 说明 |
|---|---|---|
| 引擎地址 | http://127.0.0.1:9880 | api_v2.py 的监听地址 |
| 音色预设 | 空 | 名称 + 参考音频路径 + 参考音频文本 + 参考语言 |
| 朗读文本语言 | zh | zh/en/ja/ko/yue/auto |
| 语速 | 1.0 | 对应引擎的 speed_factor,0.5–2.0 |
| 采样步数 | 32 | 嫌慢就降到 16,这是最有效的加速手段 |
| 音量 / 播放倍速 | 90% / 1× | 浏览器侧,仅影响本机播放 |
同分类对比
同一分类下 Star 最高的 5 个,便于横向比较。
| 插件 | 作者 | Star | 版本 | 更新 |
|---|---|---|---|---|
| dsh-purge | kingcharleslzy-ai | 6.3K | 1.6.86 | 2026-11-08 |
| dsh-unrestricted | yexi-by | 1.1K | 0.2.8 | 2026-11-05 |
| dsh-univer-office | dream-num | 707 | 0.4.0 | 2026-11-03 |
| dsh-synapse | liangmianya | 697 | 0.5.7 | 2026-11-04 |
| dsh-qqbot | tencent-connect | 570 | 0.5.5 | 2026-11-08 |