Skip to content

9. 语音功能(TTS)

为了避免和其它项目深度绑定,本项目使用的基于 OpenAI 的协议的 TTS 接口,理论上只要 TTS 项目支持这一接口(或者不支持的话也可以让 AI 自己进行改造/写一个接口转换脚本)即可使用。

  1. 首先,在 设置 -> API 设置 中打开“启用 TTS API”开关,填入 Base URLModel NameAPI Key 选填)

  2. 在需要使用语音功能的人格的编辑界面,在“角色语音”处填入配置好的角色语音voice名称

  3. 在聊天气泡旁/Galgame历史记录旁,就能找到语音播放按钮;同时在 设置 -> 通用设置 -> 语音 部分也可以配置是否自动播放语音、语音缓存数量上限等等参数

示例:GPT-SoVITS 项目接入人格馆

为了避免大家完全不会用,这里演示一下基于 GPT-SoVITS 的接入教程。

首先打开上方链接进入项目,看不懂英文可以点击 简体中文,然后找到 Windows 整合包链接(中国地区的用户可以在此处下载整合包),点击链接下载整合包,解压后双击 go-webui.bat 即可启动 GPT-SoVITS-WebUI.

然后具体使用教程可以自己搜索相关教程视频,需要自己收集素材训练(从视频中截取)/找别人分享的素材或训练好的模型(B站搜),这里不赘述。

总之当我们拿到一个/一些效果不错的模型之后,下载 这三个文件 放到整合包根目录下。

这个脚本是我让 AI 专门针对多角色多模型、并发推理、流式输出、模型加载速度等进行了深度性能优化,并且使用 OpenAI 协议接口的版本。

原本的 api.py, api_v2.py 需要手动切换模型,并且一次只能加载一个模型,模型切换速度非常慢,并且无法同时推理多个模型(可能导致输出串模型)。

改进后可以手动配置 performance.vram_reserve_mb 控制显存占用上限和 performance.max_cpu_voices 内存中存储的模型数上限,常用的模型会被保留在显存里加快调用速度,并且即使为了显存卸载模型时也会保留一部分模型常驻在内存中,避免从硬盘加载的缓慢。同时也可以设置启动时就预加载的模型 performance.preload_voices 避免实际请求时才来加载模型,加快响应速度。

打开编辑 api_v3_config.yaml 这个文件,可以看到有很多配置,我们重点看到 voices 部分,这里已经配置了一个 anon 的语音模型。

yaml
voices:
  anon:
    gpt: F:/Projects/Python/GPT-SoVITS-v2pro-20250604-nvidia50/GPT_weights_v2Pro/anon-e15.ckpt
    sovits: F:/Projects/Python/GPT-SoVITS-v2pro-20250604-nvidia50/SoVITS_weights_v2Pro/anon_e8_s1648.pth
    ref_audio: F:/Projects/Python/GPT-SoVITS-v2pro-20250604-nvidia50/素材_MyGO/Anon干声素材/参考音频/うーん、ダメだったか。明日から練習時間増やそうかな。.wav
    prompt_text: "うーん、ダメだったか。明日から練習時間増やそうかな。"
    prompt_lang: ja
    text_lang: auto          # zh / en / ja / ko / yue / auto / auto_yue / all_zh / all_ja / all_yue / all_ko
    # 以下参数可覆盖 defaults
    speed_factor: 1.0
    temperature: 0.45
    top_k: 15
    top_p: 1.0

我们可以照着样子进行配置的修改,例如:

  • anon 这是你应该填在人格馆角色 voice 名称处的值
  • gpt 填 GPT 模型的路径
  • sovits 填 SoVITS 模型的路径
  • ref_audio 填参考音频的路径
  • prompt_text 填参考音频的文本
  • prompt_lang 填参考音频的语言(zh 汉语,en 英语,jp 日语……)
  • text_lang 填你希望生成的音频的语音(保持 auto 即可)

我们也可以增加更多语音模型,照样子修改参数即可:

yaml
voices:
  anon:
    gpt: F:/Projects/Python/GPT-SoVITS-v2pro-20250604-nvidia50/GPT_weights_v2Pro/anon-e15.ckpt
    sovits: F:/Projects/Python/GPT-SoVITS-v2pro-20250604-nvidia50/SoVITS_weights_v2Pro/anon_e8_s1648.pth
    ref_audio: F:/Projects/Python/GPT-SoVITS-v2pro-20250604-nvidia50/素材_MyGO/Anon干声素材/参考音频/うーん、ダメだったか。明日から練習時間増やそうかな。.wav
    prompt_text: "うーん、ダメだったか。明日から練習時間増やそうかな。"
    prompt_lang: ja
    text_lang: auto          # zh / en / ja / ko / yue / auto / auto_yue / all_zh / all_ja / all_yue / all_ko
    # 以下参数可覆盖 defaults
    speed_factor: 1.0
    temperature: 0.45
    top_k: 15
    top_p: 1.0

  soyo:
    gpt: F:/.../soyo_gpt.ckpt
    sovits: F:/.../soyo_sovits.pth
    ref_audio: F:/.../soyo_ref.wav
    prompt_text: "参考文本"
    prompt_lang: zh
    text_lang: auto
    speed_factor: 1.0
    temperature: 0.6

最后运行 go-api-v3.bat (或者手动在命令行执行 python api_v3.py -c api_v3_config.yaml)即可启动推理服务

保持这个黑窗口在后台运行,在人格馆设置里填入 Base URL: http://127.0.0.1:9880/v1,在爱音人格处填入voice名称:anon(或者你自己配置的其它名称)即可使用语音功能了。