基于GPT-SoVITS的文本转语音 (TTS) 适配器,支持流式和非流式语音合成。
本仓库在原上游 maimbot_tts_adapter 基础上,已针对 NachoBot 核心改动 做了深度的本地化和一键启动化改造。适配器依赖工作区根目录下的 launchbot.bat 进行环境的自动管理和拉起。
由于本系统将 TTS 的隔离环境、依赖库安装和启动交给了项目最外层的 launchbot.bat 统一接管,请按照本指南配置物理路径与参数。
本适配器本质上是一个中继网关,负责将 NachoBot 的文本发送给对应的 TTS 引擎生成语音流。
- 你必须在你的电脑上拥有独立安装好的 GPT-SoVITS 环境(推荐 v2pro 版本)。
- 请确保你拥有训练好/微调好的 GPT 权重文件(
.ckpt)和 SoVITS 权重文件(.pth),以及一段用于音色的参考音频(.wav)。
虽然最外层的 launchbot.bat 会尽可能帮你自动创建 .venv 虚拟环境并安装依赖,但为了确保环境一致性,你也可以在启动前手动确认组件依赖安装成功:
进入 NachoBot-TTS-Adapter 目录,安装该适配器专属依赖包(推荐使用项目统一的 uv):
uv pip install -r requirements.txt回到 NachoBot 根目录,使用文本编辑器打开 launchbot.bat:
找到大约第 36 行左右的 SOVITS_DIR 变量,将其修改为你电脑上实际存放 GPT-SoVITS 整合包的绝对硬盘路径:
REM ===== 基本路径(如你改过目录,只需改这里)=====
set "SOVITS_DIR=C:\Users\BigSh0t\GPT-SoVITS\GPT-SoVITS-v2pro-20250604" 进入本目录的 configs/ 文件夹下。
你可以把你的声音模型直接放到这里。
打开 configs/base.toml,找到最下方的 [plugins.GPT_Sovits] 模块,将其中的 gpt_weights 和 sovits_weights 的文件路径修改为你实际存放权重的绝对路径:
[plugins.GPT_Sovits]
api_base = "http://127.0.0.1:9874"
gpt_weights = "C:/Users/.../NachoBot-TTS-Adapter/configs/EXAMPLE.ckpt"
sovits_weights = "C:/Users/.../NachoBot-TTS-Adapter/configs/EXAMPLE.pth"
speaker = "NachoChan"为了能让 NachoBot 发出的文本传到这里,你必须配置连接通道。同样在 configs/base.toml 里,确认 [routes] 块下的端口与主控台一致(NachoBot 默认跑在 8000 端口):
[routes]
qq = "http://127.0.0.1:8000/ws" # 对应你在主干代码里的监听地址
discord = "http://127.0.0.1:8000/ws"同样在 configs/ 文件夹下,打开 gpt-sovits.toml,找到最下方的预设管理 [tts.models.presets.default](以及你自定义的角色如 custom1):
你需要重点填写控制音色感情的特征绑定:
[tts.models.presets.default]
name = "DEFAULT"
gpt_model = "EXAMPLE.ckpt"
sovits_model = "EXAMPLE.pth"
ref_audio_path = "EXAMPLE.wav" # 参考音频的文件名或相对路径
prompt_text = "填入你参考音频里正在说的那句话" # 参考音频对应的精确文本
prompt_language = "ja" # 参考文本的语种 (ja/zh/en/auto)
speed_factor = 1.0 # 生成语速请勿单独在此适配器目录内运行 python 启动接口。
配置完成后,只需回到根目录双击运行的 launchbot.bat。
脚本将按照以下时序全自动并线拉起所有组件(你会看到多个黑色命令台窗口同时工作):
- SoVITS API (监听 9880 端口):调用你的 GPT-SoVITS 目录环境,启动底层语音引擎 API。
- TTS Adapter (监听 8070 端口):待 SoVITS API 存活后,拉起本适配器并建立与 NachoBot 核心(默认 8000 端口)的双向 WebSocket 隧道。
- Control API (监听 9872 端口):承载高级配置控制的额外端口。
- NachoBot 主服务 + NapCat 适配器:启动主脑逻辑处理区,随后连入 QQ/Bilibili。
如遇 TTS 模块报错或静音,请检查是否是 .ckpt 或 .pth 文件路径缺失,或是端口 9880/8070 被系统中其他程序意外占用。