Skip to content

基于 GPT-SoVITS 的 MoFox-Bot 智能语音合成插件,支持多风格切换、自动语种识别与空间音效增强。

License

Notifications You must be signed in to change notification settings

tt-P607/tts_voice_plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TTS Voice 插件 (重构版)

一、插件简介

tts_voice_plugin 是一个基于 GPT-SoVITS 的文本转语音 (TTS) 插件。它允许机器人通过语音与用户交流,支持多种语音风格、智能文本处理、多语种自动识别以及空间音效增强。

核心特性:

  • 🎙️ GPT-SoVITS 集成 - 支持高质量的语音克隆与合成。
  • 🎭 多风格切换 - 支持在配置文件中定义多个参考音频(风格),并可动态切换。
  • 🧠 智能文本清洗 - 自动移除不适合合成的符号(如表情、动作描述),优化口语表达。
  • 🌐 多语种支持 - 支持中、日、英、粤等多种语言模式及自动识别。
  • 🔊 空间音效 - 内置混响 (Reverb) 和卷积混响 (Convolution) 效果,让声音更具空间感。
  • 🤖 双重触发 - 支持用户手动命令触发和机器人规划器 (Planner) 自动触发。

二、功能说明

1. 语音合成命令

用户可以通过命令手动让机器人说话:

  • 格式/tts <文本内容> [风格名称]
  • 别名/语音合成/说
  • 示例/tts 你好呀,今天天气真不错 default

2. 自动化语音动作 (Action)

机器人规划器在认为适合发送语音时(如撒娇、讲故事、安慰用户等),会自动调用 tts_voice_action

  • 智能激活:包含随机激活、关键词匹配(如“想听你声音”)以及 LLM 场景判断。
  • 口语优化:强制要求 LLM 提供纯净的口语文本,严禁包含特殊符号。

3. 语言识别策略

支持多种语言模式:

  • zh: 中英混合 (默认)
  • ja: 日英混合
  • yue: 粤英混合
  • auto: 自动识别语种
  • auto_yue: 自动识别(包含粤语检测)

三、配置指南

配置文件位于:config/plugins/tts_voice_plugin/config.toml

1. 基础配置

[tts]
server = "http://127.0.0.1:9880"  # GPT-SoVITS API 地址
timeout = 180                     # 请求超时时间
max_text_length = 1000            # 最大文本长度

2. 风格配置 (tts_styles)

你可以定义多个风格,每个风格对应不同的参考音频和模型权重:

[[tts_styles]]
style_name = "default"            # 风格标识符(必须有一个名为 default)
name = "默认"                     # 显示名称
refer_wav_path = "C:/path/to/ref.wav" # 参考音频路径
prompt_text = "参考音频的文字内容"
prompt_language = "zh"            # 参考音频语言
gpt_weights = "..."               # GPT 模型路径
sovits_weights = "..."            # SoVITS 模型路径
speed_factor = 1.0                # 语速 (0.6 - 2.0)

3. 空间音效 (spatial_effects)

让机器人的声音听起来像在房间里:

[spatial_effects]
enabled = false                   # 是否启用音效
reverb_enabled = true             # 启用标准混响
room_size = 0.2                   # 房间大小 (0.0-1.0)
wet_level = 0.3                   # 效果声比例
convolution_enabled = false       # 启用卷积混响(需要 IR 文件)

四、技术细节

文本预处理流程

为了保证合成效果,插件会对文本进行以下处理:

  1. 移除括号内容:如 (笑)[歪头] 等动作描述。
  2. 符号简化:将连续的 wwwhhh 替换为“哈哈”,移除无法发音的特殊符号。
  3. 智能截断:超过长度限制时,在最近的标点符号处截断,保证句子完整。
  4. 末尾补全:确保每个句子都以标点符号结尾,避免合成音戛然而止。

空间音效实现

基于 pedalboard 库实现:

  • Reverb:模拟物理空间的声波反射。
  • Convolution:通过冲激响应 (Impulse Response) 文件模拟特定环境(如小房间、大厅)的精确音场。

五、常见问题

Q: 为什么机器人发出的语音没有声音? A: 请检查 GPT-SoVITS 后端服务是否正常运行,且 server 地址配置正确。

Q: 为什么合成速度很慢? A: 语音合成受限于服务器性能。如果文本过长,建议调大 timeout 或检查后端是否开启了 GPU 加速。

Q: 如何添加新的语音风格? A: 在配置文件中增加一个新的 [[tts_styles]] 块,并重启插件或机器人。


六、开发信息

  • 版本:3.1.2
  • 作者:言柒 & 靚仔

About

基于 GPT-SoVITS 的 MoFox-Bot 智能语音合成插件,支持多风格切换、自动语种识别与空间音效增强。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages