dsh-plugin-tts
by 1624318455
用免费 Edge TTS 或你自己的 RVC 音色朗读 AI 回复:消息朗读与自动朗读、长文自适应分块渐进播放(无缝衔接)、音色包仓库一键安装、便携 RVC 运行时。
Reads assistant replies aloud via free Edge TTS or your own RVC voice models: read-aloud buttons + auto-read, adaptive chunked progressive playback (gapless long reads), one-click voice-pack installs from a registry, and a portable RVC runtime.
安装
dsh plugin --profile web add github:1624318455/dsh-plugin-ttsGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
目录
跳转
- English README(English)
- RVC 自定义音色指南(自定义音色 · 分块渐进播放 · 紧凑索引 · 音色包 · 便携运行时)
- 使用手册(执行手册)(第一次用,逐步骤上手)
- 自适应分块设计文档(长文无缝朗读的设计与实测)
dsh-plugin-tts — Edge TTS + RVC 语音大集成
DeepSeek Harness 语音插件:给 AI 回复加朗读——开箱即用微软免费在线音色(Edge TTS), 也能用你自己训练的 RVC 音色朗读;长回复自适应分块渐进播放、段间无缝; 音色可从音色包仓库一键安装;还提供免装 RVC WebUI 的便携运行时。
📖 第一次用?看《使用手册(执行手册)》——每一步都有 "做什么 / 怎么做 / 怎么算成功",从朗读、RVC 音色到音色包下载全覆盖。
单条朗读和自动朗读

RVC配置

RVC高级参数

RVC音色包

功能
- 消息朗读按钮:每条 AI 回复左下角操作行新增「朗读」按钮,点击朗读该条消息 (按钮显示音柱跳动动画),再次点击停止。
- 自动朗读开关:输入框左下角的喇叭按钮;开启后每条新完成的 AI 回复自动朗读 (按钮带圆形高亮),关闭则不自动朗读。
- 语音设置面板:侧边栏「设置 → 插件」新增「语音」标签页:
- TTS提供者:Edge TTS(免费在线)/ 自定义音色(RVC)
- 朗读音色:22 个经实测可用的 Edge TTS 音色(默认 晓萱 zh-CN-XiaoxuanNeural)
- 声音调节:语速 / 音调 / 音量(0 = 默认)
- 音色包:从音色包仓库一键下载安装音色
- 试听测试:输入文本 + 播放按钮(播放中显示旋转 loading,可点击停止;失败时红字提示)
- RVC 自定义音色:用你自己训练的 RVC 模型朗读,全程本机计算,支持上传原声、 免索引模式、高级参数(详见《RVC 指南》)。
- 长文本无缝朗读:自适应分块渐进播放——探测校准块大小、边播边合成、Web Audio 采样级拼接、段间无停顿(详见设计文档)。
- 朗读时 mini 播放器:暂停/继续 + 倍速(1x / 1.25x / 1.5x),分块长读显示可见的 「第 x/y 段」计数。
- 主题化 tooltip + RVC 首次引导:悬浮提示用主题 token(
--dsw-*)渲染;RVC 面板顶部 内嵌首次使用三步引导(分 OS 启动命令 + 一键诊断)。 - 音频下载:每条消息操作行新增下载按钮,把合成音频(Edge 原声或 RVC 变声)保存为 MP3—— 复用进程内缓存,刚读过的消息一点即下。
- 朗读选中文本:在消息里选中文本会在选区上方出现「朗读选中」悬浮按钮,点按只朗读该选中片段。
- 长读流式(Edge 同样支持):纯 Edge 长文本也走自适应分块渐进播放——第一块先响、其余边播边合成, 不再干等整段合成完成。
要求
- DeepSeek Harness
webprofile(dsh web) - Node.js ≥ 22(worker 使用原生
WebSocket) - 仅使用 RVC 自定义音色 时:还需要本机 RVC 推理环境(RVC WebUI 或便携运行时,
并在使用前启动
rvc-server.py)。macOS 用户请看 《RVC 指南》 的「启动本地 RVC 服务」和 《使用手册》 §4.2。
安装
# 已发布到 GitHub 后:
dsh plugin --profile web add "github:1624318455/dsh-plugin-tts#main"
# 或本地开发:
dsh plugin --profile web add "file:/path/to/dsh-plugin-tts"
重启 dsh web 后作为 profile bundle 自动加载,无需手动启用。
可用音色(经实测,Edge TTS)
| 区域 | 音色 |
|---|---|
| 简体中文 | 晓萱 Xiaoxuan · 晓伊 Xiaoyi · 云希 Yunxi · 云扬 Yunyang · 晓晓 Xiaoxiao · 云健 Yunjian · 云夏 Yunxia · 晓北(辽宁) liaoning-Xiaobei · 晓妮(陕西) shaanxi-Xiaoni |
| 台湾 | 曉臻 HsiaoChen · 曉雨 HsiaoYu · 雲哲 YunJhe |
| 香港 | 曉佳 HiuGaai · 曉曼 HiuMaan · 雲龍 WanLung |
| 英文 | Aria · Jenny · Guy · Sonia(英) |
| 日/韩/法 | 七海 Nanami · SunHi · Denise |
注:Xiaohan / Xiaomeng / Xiaorui / Xiaoshuang 等旧音色已被 Edge 端点移除(返回
1007 Unsupported voice),未列入。
架构
| 层 | 位置 | 职责 |
|---|---|---|
| Host | lib/index.mjs |
注册 /dsh-tts-api/speak(合成/分块队列)、/dsh-tts-audio/<id>(音频)、/dsh-tts-api/rvc-*(RVC 推理/文件/紧凑索引/音色包)等 webServer 路由;用 node -e 运行零依赖 worker |
| Client | lib/client.js |
shell.overlay 隐藏 <audio> 宿主 + UI(朗读按钮 / 自动朗读开关 / 语音设置面板),通过 fetch 调 Host 路由 |
TTS 引擎:worker 协议镜像 node-edge-tts@1.2.10:
Sec-MS-GEC 查询参数(ticks 向下取整到 5 分钟边界)、
Sec-MS-GEC-Version=1-143.0.3650.75、二进制帧 Path:audio 前缀、
xml:lang 由音色 locale 推导、1006 异常关闭自动重试一次。音频输出
audio-24khz-48kbitrate-mono-mp3。
边界行为
- 自动朗读中点击同一消息朗读按钮 → 停止;点击另一消息 → 打断自动、改手动朗读。
- 手动朗读中关闭自动开关 → 不打断手动;自动朗读中关闭 → 停止自动朗读。
- 新消息完成(自动开启)→ 打断当前、朗读最新;无文本消息跳过;切换会话只停自动来源。
- 停止 / 换消息时立即取消当前 RVC 分块 job,本地转换服务停止调度后续块、及时释放 GPU/内存 (不必等惰性回收)。
- 同一段文本+音色重复朗读 → 复用进程内音频缓存(不重复合成);若缓存底层文件已被系统清理, 会自动重新合成而非返回失效的 404 URL。
- Edge 音色被端点移除(
1007 Unsupported voice)→ 从选择列表剔除并自动回退默认音色。 - 首次用户手势即解锁自动播放(resume Web Audio 上下文 + 播放静音片段),朗读不会因浏览器自动 播放策略被静默拦截。
Esc/S(非输入框内)停止当前朗读。- 合成/播放失败 → 静默清理状态并恢复图标(试听面板内会显示红字提示)。
设置持久化
音色、自动朗读开关、TTS 提供者与 RVC 配置会持久化到 localStorage(dsh-tts-settings),
刷新 / 重开面板不丢。设置面板提供「恢复默认设置」按钮,一键复位并清除已存设置。
RVC 自定义音色
用你本地训练的 RVC 模型做音色转换:设置面板把 TTS提供者切到「自定义音色(RVC)」 即可。第一次用 RVC 先做两件事:①准备模型文件(.pth);②启动本地 RVC 服务—— macOS/Windows/Linux 的启动命令见 《RVC 指南》 或 《使用手册》 §4.2。涵盖服务启动、面板配置、长文无缝播放、紧凑索引、 音色包一键安装、便携运行时、设置项详解与排查——完整内容见 《RVC 自定义音色指南》。
公开音色仓库示例:rvc-for-tts (设置 → 语音 → 音色包 → 仓库地址填
https://raw.githubusercontent.com/1624318455/rvc-for-tts/main)。
疑难排查(Edge TTS)
- 403 /
Sec-MS-GEC被拒:Edge 端点协议或版本校验变更,更新lib/index.mjs内 worker 的CHROMIUM_FULL_VERSION/TRUSTED_CLIENT_TOKEN。 1007 Unsupported voice:所选音色已被端点移除,换用上表列出的音色。- 无声音:确认系统音量、浏览器自动播放策略(先与页面交互一次)或合成日志
(
dsh web控制台[tts]前缀错误)。
RVC 相关排查见 《RVC 指南》疑难排查。
界面语言(i18n)
插件设置面板顶部有「界面语言」选择:自动(跟随浏览器)/ 中文 / English。
- 默认「自动」:按浏览器/系统语言显示(简体中文及其他 → 中文,其余 → English)。
- 切换后立即生效,并持久化到 localStorage(
dsh-tts-lang),刷新/重开面板不丢。 - 覆盖范围:整个设置面板 + 气泡/朗读按钮 + 诊断 + 音色包面板,以及 RVC 服务的报错/进度提示。
开发
node tests/smoke.mjs # 冒烟测试:fake ctx 注册路由 + 真实 Edge TTS 合成 + 音频回放断言
npm run test:all # 全量:smoke + live + patch + i18n + client-load
改 lib/ 后的热更新(Windows 下 file: 安装是复制而非符号链接,
运行中的 dsh 读的是 profile 副本):
Copy-Item lib/* $env:USERPROFILE\.dsh\profiles\web\node_modules\@dsh-external\dsh-plugin-tts\lib\ -Recurse -Force
# 然后刷新浏览器即可(bundle 每次请求重新读盘;勿用 pnpm install --force 覆盖)
已知限制
- 音色 / 自动朗读开关 / TTS 提供者 / RVC 配置已持久化到 localStorage 并跨刷新保留 (见上文「设置持久化」);但音频缓存本身仅进程内(音频写在 OS 临时目录,由系统清理), 完全重启后每段文本第一次朗读会重新合成。
- 合成音频写入 OS 临时目录,由系统清理。
- 中英文布局/视觉(英文文本较长可能换行/溢出,主题变量
--dsw-*适配)需在装有所插件的真实 dsh 界面里人工确认—— 本插件无独立 HTML,UI 由 dsh web 宿主注入 slots 渲染,无法脱离宿主做 headless 截图对比(tests/client-load.mjs只做内存渲染断言,不生成真实 DOM/CSS)。
License
MIT
原始 README: https://github.com/1624318455/dsh-plugin-tts/blob/main/README.zh.md ↗
同类插件
查看全部 →
dsh-web-ui-all
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。

dsh-web-ui
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。

dsh-TUI
Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。

DSH-better-sidebar
侧边栏完整工作台:内置文件渲染编辑、终端、Git 与子代理,支持三方插件注册新 Tab。

working-activity
让 agent 的"工作状态行"活过来——实时工具动态与进度、俏皮文案、模型自述、上下文预警。同一套想法,适配两个平台: pi CLI 与 DeepSeek Harness(DSH) 。

deepseek-idesign
可视化设计工作室,支持网站、App 原型、海报、信息卡、报告和杂志的模板创建、元素编辑、选区级 AI 草稿衔接与导出。