Skip to content

文本转语音系统(TTS v2) ​

文字看多了是不是有点无聊?其实我也可以用好听的嗓音把话念给你听哦~

TTS v2 模块对接了 GPT-SoVITS 声音克隆推理引擎,能够将文本精准切片、带入情感韵律并合成出高质量语音条。

核心代码位于:run/tts_v2/main.py
配置文件位于:run/tts_v2/config.yaml

源码里真正支持的群聊指令 ​

代码在 run/tts_v2/main.py 中监听群消息事件,识别以 /达妮娅说 开头的文本指令:

  • /达妮娅说<要朗读的文本>
    • 示例:/达妮娅说今天窗外的阳光好舒服,突然有点想喝奶茶呢~
    • 示例:/达妮娅说下午好呀,赖哥,今天工作还顺利吗?
    • 源码逻辑:严格按指令中的“说”字进行内容分割,提取后面的完整句子送入语音合成引擎,生成 .wav/.silk 语音消息发送至当前群聊。

(注:请认准 /达妮娅说 触发格式,源码中未注册通用的 /tts 或 /朗读 命令哦)

核心配置片段一览(run/tts_v2/config.yaml) ​

Eridanus项目群的api站,同样提供了免费的tts接口。

yaml
gpt_sovits:
  api_base: ""                 # GPT-SoVITS 服务端地址(例如 http://127.0.0.1:9880)
  api_key: ""                  # API 网关鉴权密钥(直接连接本地后端时留空即可)
  ref_audio_path: "output/slicer_opt/output.wav_0009342720_0009558400.wav" # 参考音频切片
  ref_text: "怎么啊?如果有你在也不放心,那就干脆给我也装个限制器或者炸弹喽。" # 参考音频文本
  speakers:
    - "达妮娅"
  top_k: 15                    # 采样参数
  top_p: 1.0
  temperature: 1.0             # 采样温度
  text_split_method: "cut1"    # 文本切分算法(推荐 cut1 或 cut5)
  batch_size: 1
  speed_factor: 0.91           # 语速控制(小于 1.0 偏慢,大于 1.0 偏快)
  repetition_penalty: 1.35     # 重复惩罚系数

如果你想修改,应该改哪里? ​

  • 语音合成连接不上、控制台报错连接拒绝?
    • 检查 gpt_sovits.api_base 是否正确指向了你的 GPT-SoVITS 推理 API 接口(通常是 http://IP:端口),并且服务本身已经正常运行。
  • 说话语速太快或者太慢?
    • 调整 gpt_sovits.speed_factor!数值调大说话会更轻快利落,调小会显得更悠闲慵懒哦。
  • 句子太长合成失败或者中途断气?
    • 检查 text_split_method,默认的 "cut1" 会根据中文标点符号智能切分分段,能够避免长文本一次性爆显存。