GPT-SoVITS icon indicating copy to clipboard operation
GPT-SoVITS copied to clipboard

modified api.py: Runtime Model Switch based on Speaker Names and SillyTavern Silero Support

Open CMDHL opened this issue 1 year ago • 5 comments

1.28.2024 在原api.py基础上做出的一些改动

简介

  • 原接口不变,仿照silero-api-server格式添加了一些endpoint,可接入傻酒馆sillytavern。

    • 运行api.py直至显示http://127.0.0.1:9880
    • 在staging版本的sillytavern>Extensions>TTS>Select TTS Provider选择silero
    • 将http://127.0.0.1:9880填入Provider Endpoint后点击reload
    • Select TTS Provider上方显示TTS Provider Loaded则连接成功,之后照常设置即可。
  • 支持运行中根据讲话人名称自动更换声音模型或参考音频。

    • 如果运行api.py时使用-vd提供了声音模型根目录,可以根据讲话人名称(子文件夹名称或"default")自动更换模型和参考音频。例如:

      python api.py -vd "D:/Voices"
      
    • 原有方式导入的声音被命名为“default”,可以使用原有方式更改其参考音频。也可以通过POST至 /set_default_models 更改default声音的模型,例如使用powershell新窗口运行:

      Invoke-RestMethod -Uri "http://127.0.0.1:9880/set_default_models" -Method Post -ContentType "application/json" -Body (@{gpt_path="D:\Voices\ZB\ZB.ckpt"; sovits_path="D:\Voices\ZB\ZB.pth"} | ConvertTo-Json)
      
  • 默认输出语言是中文。可以在运行api.py时使用-ol指定其他输出语言,或后续POST至 /language 进行更改。

    • 例如要将输出语言改为英文,可以在新的powershell窗口运行:

      Invoke-RestMethod -Uri "http://127.0.0.1:9880/language" -Method Post -Body '{"language": "en"}' -ContentType "application/json"
      

声音模型根目录格式

Voices
├─XXX
├   ├───XXX.ckpt
├   ├───XXX.pth
├   ├───XXX.wav
├   └───XXX.txt
├─YYY
├   ├───YYY.wav
├   └───YYY.txt
├─...
├
└─ZZZ
    ├───ZZZ.ckpt
    ├───ZZZ.pth
    ├───ZZZ.wav
    └───ZZZ.txt
  • 没有提供GPT和SoVITS模型文件的声音(例如上图的YYY)将使用原有方式指定的default声音模型。

  • 每个文件夹中的txt文件是参考音频文本,目前仅支持单语言,内容格式为{语言}|{参考音频文本},例如:

    zh|这是一段参考文本
    

新增的执行参数

-vd- 声音模型根目录,子文件夹以讲话人名称命名 -ol - 输出音频语言, "中文","英文","日文","zh","en","ja"

CMDHL avatar Jan 28 '24 13:01 CMDHL

大佬,现在酒馆可以调用这个生成AI语音吗?

wwjCMP avatar Feb 06 '24 01:02 wwjCMP

大佬主分支的酒馆不能用么

ailfreedom avatar Feb 20 '24 03:02 ailfreedom

大佬酒馆回复都太长了怎么自动才能像阅读小说里面自动一段段切分呢

ailfreedom avatar Feb 20 '24 04:02 ailfreedom

@ailfreedom 不好意思才看到... 我后来是在texts = text.split("\n")之前加了一行text = text.replace("。", "\n") 来通过句号进一步切分的...

CMDHL avatar Mar 15 '24 13:03 CMDHL