文本转语音系统(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"会根据中文标点符号智能切分分段,能够避免长文本一次性爆显存。
- 检查