语音合成(本地引擎)
直接在你的计算机上生成自然的语音消息和人格语音,无需按字符付费,也无需将音频传输到第三方语音 API。
TomoriBot 将语音视为自定义端点功能。本地引擎作为 HTTP 服务器在 bot 外部运行并实现 POST /synthesize;克隆引擎接收文本及配置的参考音频样本,支持 VoiceDesign 的引擎还可以接收自然语言指令。
可用引擎
配置流程
- 从上方卡片中选择一个引擎,并配置其位于
servers/tts/下的包装脚本。 - 在
/providers中选择+ 添加新自定义端点,API 兼容性选择tts-clone。 - 选中已保存的端点,使用其模型下拉菜单添加语音模型、语音源模式以及脚本标记。
- 打开
/config> 模型 > 切换模型,在TTS(语音设计)或TTS(语音克隆)下选择该端点。自动端点会同时激活这两项选择;清除其中一项会保留另一项。
关于云端托管语音提供方与个人覆盖选择,请参见语音:TTS 与 STT。
网络访问
所有 TTS 本地服务器默认绑定到 127.0.0.1,因此只有同一台机器上的 bot 能访问它们。当 TomoriBot 运行在 Docker 中或另一台机器上时,请为服务器设置 TOMORI_TTS_HOST=0.0.0.0,并使用宿主机的地址注册端点,例如 http://host.docker.internal:8015。
这些服务器均没有身份验证:任何能访问该端口的人都可以使用你的 GPU 进行语音合成。仅在受信任的网络中绑定到回环地址以外的网络;若要将服务器暴露到该网络之外,请在前面配置具备身份验证的反向代理。
每个服务器读取其专属的端口变量(CHATTERBOX_PORT、QWEN3TTS_PORT、IRODORI_TTS_PORT、FISH_S2_PORT、VOXCPM2_PORT、COSYVOICE3_PORT、MOSS_TTS_PORT),因此可以在一个 .env 中同时运行多个服务器。bun run launch 会将 .env 传递给其启动的服务器;手动启动的服务器仅读取其当前的 shell 环境变量。
人格语音
对于克隆引擎,在 /config > 模型 > TTS 参数与语音下上传清晰的单人语音样本,然后在人格 > 语音下分配该样本。推荐的音频片段时长与转写要求请查阅对应引擎的指南。
TomoriBot 支持最长 130 秒的样本,并会自动将其转换为单声道 WAV。上传大小限制默认为 10 MB;可通过 SPEECH_SAMPLE_MAX_MB 调整。使用 FLAC 等压缩格式有助于较长的音频满足大小限制。
对于支持语音设计的引擎,在人格 > 语音下保存自然语言语音描述。一个人格可以同时拥有描述和语音样本;语音源优先级决定优先尝试哪种可用源。支持的模式和脚本标记请参见具体引擎的指南。
在 /config > 权限下启用语音消息,然后直接请求人格发送语音消息,或使用 /generate voice-message 进行体验。