ppy-web/dsh-plugin-xiaomi-mimo-tts
ppy-web/dsh-plugin-xiaomi-mimo-tts为 DSH 提供小米 MiMo、豆包和浏览器本地语音朗读,支持自动播报、自定义音色与可选 UI 音效。
基于 GPT-SoVITS 的本地语音合成:朗读 DSH 回复、在右侧边栏换音色,拖一段声音就能训练新音色。首次使用需下载约 11.4 GB 引擎,并要求 NVIDIA CUDA 显卡。
让你的 DSH 用自己的声音说话。 这个插件本身不含任何模型代码,语音合成的能力全部来自开源项目 GPT-SoVITS(作者 花儿不哭 / RVC-Boss),用的是它的 V2ProPlus 版本。推理全部在本机 GPU 完成,不联网、不上传任何音频。
这个插件能说话,99% 的功劳不是我的:
觉得这个插件的音色好听、训练顺手的话,请去给 GPT-SoVITS 点个 Star —— 那才是这份能力的来源。
# 从 GitHub 安装(无需 npm)
dsh plugin --profile web add github:Nuoyi207/dsh-gptsovits-tts
# 已发布到 npm 时也可以按包名装
dsh plugin --profile web add <包名>装好重启 DSH,右侧边栏会出现「语音模型」标签页。
第一次打开面板会看到「语音引擎 未就绪」:
runtime/ 与 GPT_SoVITS/)。引擎默认放在 %LOCALAPPDATA%\dsh-gptsovits-tts\engine,与 DSH 升级无关;想换位置改配置项 engineDir。
场景 · 操作 自动朗读 · 默认开启;每条消息底部也有「▶ 朗读」按钮 换朗读音色 · 面板卡片上的 设为朗读 试听 · 卡片上的 试听(播完自动切回默认音色) 语速 · 配置项 speed(1.0 为原速) 导入已有权重 · 新增音色 → 选 GPT / SoVITS 权重 → 选或拖 3–10 秒参考音频 → 自动识别台词 → 保存 训练新音色 · 切到 训练 分段 → 填名字 → 拖入素材 → 选轮数(默认 SoVITS 8 / GPT 15)→ 开始
训练至少需要约 1 分钟有效人声(切片 + 识别之后);训练期间合成暂停,结束后自动恢复并把新音色加入列表。
安装器的磁盘策略:边下载边解压(下完一片 → 校验 → 解压 → 删片),
峰值占用约「最大分片 + 解压后总量」≈ 12 GB,而不是「全部分片 + 解压后」≈ 23 GB。
开始前会用 statfs 检查可用空间,不够就直接报中文错误(需要多少 / 可用多少)。为什么第一次要下 11 GB? 引擎包含 Python、PyTorch(CUDA)、GPT-SoVITS 底模与声码器,塞不进 npm 包。只下一次,之后所有音色共用。
显存不够 / 没有 NVIDIA 显卡? 需要 CUDA 11.8 兼容驱动。8 GB 显存(如 RTX 2080)可跑 V2ProPlus;更小的卡建议开「空闲释放显存」。
下载很慢或中断? 分片下载,中断后重新点「下载并安装」会从断点继续;也可以手动解压到任意目录后用「用已有目录…」。
杀毒软件报警? 包内含 python 与 torch 二进制,流程是「下载后解压执行」,容易被误判。每片下载完都校验 sha256,不过会自动删除重下。
声音版权? 内置诺艾尔 / 爱莉希雅音色仅用于功能演示,版权归原权利人;正式使用请导入或训练你有权使用的音色。
键 · 默认 · 说明 enabled · true · 总开关 voice · auto · auto 跟随面板里的默认音色,也可写死音色 id speed · 1 · 语速倍数 autoSpeak · true · 回复自动朗读 debounceMs · 350 · 回复停顿多久后开始朗读 engineDir · 空(默认) · 引擎目录 autoDownload · true · 引擎缺失时自动下载 downloadBase · 空(内置地址) · 引擎分片下载根,可自建镜像
音色配置(voices.json)、导入的参考音频、训练产物都在 %LOCALAPPDATA%\dsh-gptsovits-tts\data, 与引擎目录分开:重装或升级引擎不会丢音色。
DSH Host 插件 (lib/index.js)
├─ 监听 session/event → 抽正文 → 防抖 → POST /speak
├─ /gptsovits/* 反代到本地服务
└─ lib/engine.js:下载 / 校验 / 解压 / 定位引擎
本地合成服务 (lib/server/server.py,FastAPI :9866)
├─ 载入 GPT-SoVITS 权重,缓存每个音色的参考特征
├─ 合成:分句 → GPT(语义) → SoVITS(声码) → wav
└─ 播放:winsound 队列,支持暂停 / 继续 / 空闲卸载
客户端 (lib/client.js)
├─ 右侧边栏「语音模型」:音色卡片 / 训练页 / 引擎向导
└─ 消息操作栏:朗读、暂停、继续node test/plugin_unit.mjs
node test/plugin_client.test.mjs
node test/plugin_routes.test.mjs用本机已有引擎调试:写一份 %LOCALAPPDATA%\dsh-gptsovits-tts\paths.json 指向你的整合包(字段 pythonPath / repoPath / serverScript / logPath)。
引擎打包与发布流程见 docs/发布指南.md。
代码 MIT。GPT-SoVITS 及其预训练权重遵循上游协议;内置音色仅供演示。
node test/run_all.mjs # 7 个套件