前言¶
在使用 DeepSeek Harness(DSH)进行开发或交互时,给助手回复添加语音输出能提升体验。现有的方案往往依赖云端 API,存在隐私泄露或网络延迟风险。dsh-gpt-sovits 插件解决了这个问题,它将本地部署的 GPT-SoVITS 引擎接入 DSH Web GUI,实现完全离线的语音合成。
插件概览¶
该插件由 91koukou 维护,属于模型推理类插件。它利用 DeepSeek 的插件化架构,在 DSH Web GUI 中集成了 GPT-SoVITS 的语音合成能力。插件不附带任何模型权重、参考音频或音频样本,也不替你启动引擎,使用者需自行准备 GPT-SoVITS 引擎和音色权重。
核心功能¶
插件提供了以下核心能力:
-
播放控制
- 逐条朗读(单信道抢占):播放中再点即停,点别的回复直接切换。
- 自动朗读(排队,不中断):流式回复只读新增且到句号的部分,一句接一句念完。
- 启动问候(预热引擎):向空闲引擎请求问候语,识别到引擎工作即停止。
- 新一轮取消上一轮:新一轮开始清空待播队列、作废飞行中的合成。
- 切换会话即停播:切换会话时立即停止当前播放。
-
文本处理
- 符号念成人话:将
cmd.exe变「cmd点exe」,3-10变「3到10」,3/4变「4分之3」。 - 单位不会念错:
120km/h变「120千米每小时」,100MB/s变「100兆字节每秒」。 - 停顿由标点决定:句号 340ms、逗号 150ms、省略号 460ms、段落 520ms。
- 中文分句完整:
。!?;…及其连写为句末,段落为硬边界。 - 只读该读的:过滤代码块、URL、哈希等,表格不念分隔线。
- 符号念成人话:将
-
引擎与安全
- 流式/总结分流:一句一请求(
cut0)和打包切(cut5)。 - 音频只在内存:不为每句话写 WAV 到硬盘,条数与字节双重上限。
- 逐句语速与情感:语速、temperature、top-k、top-p 随每一句发出。
- 音色预设:名称 + 参考音频 + 参考文本 + 参考语言,支持跳过模型重载。
- 设置面板:含运行状况、内嵌引擎控制台、引擎地址、音色、语速等。
- 只监听本机:所有路由拒绝非 loopback 来源。
- 流式/总结分流:一句一请求(
安装与启用¶
-
前置条件
- 已部署好的 GPT-SoVITS(
api_v2.py能跑起来)。 - 至少一对自己训练的 GPT(
.ckpt)+ SoVITS(.pth)权重,以及一段参考音频。 - DSH 桌面版或 Web 版。
- 已部署好的 GPT-SoVITS(
-
启动引擎
插件只负责”说话”,不负责起引擎。在 GPT-SoVITS 目录下运行:
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 秒。
- 安装插件
dsh plugin --profile desktop add github:91koukou/dsh-gpt-sovits
安装完成后刷新页面。
- 配置
打开 设置 → 语音朗读(GPT-SoVITS)。- 引擎地址:填
http://127.0.0.1:9880。 - 音色预设:包含名称、参考音频路径、参考音频文本、参考语言。
- 其他设置:语速、采样步数、音量等。
- 引擎地址:填
典型用法¶
- 安装指定版本:
dsh plugin --profile desktop add github:91koukou/dsh-gpt-sovits#v0.3.0 - 卸载插件:
dsh plugin --profile desktop remove dsh-gpt-sovits - 离线自检:
node scripts/selfcheck.mjs - 集成测试:
node scripts/integration.mjs
注意事项¶
- 无权重分发:本仓库不附带任何模型权重、参考音频或音频样本,也不替你启动引擎。
- 许可证范围:代码以 MIT 许可发布,但模型权重不在 MIT 许可覆盖范围内。
- 合规性:合成音频可能被误认为真人发声,建议对外分发时主动披露。仅可使用有权使用的声音,不得克隆公众人物声音。
- 独立性:与 DeepSeek、GPT-SoVITS 维护者无隶属关系,为第三方社区插件。
结语¶
dsh-gpt-sovits 为 DeepSeek Harness 提供了一套完整的本地化语音合成解决方案,适合需要高隐私性或离线运行场景的用户。相关文档与下载详见仓库链接。