技术分享

珂朵莉为你读小说!?GPT-SoVITS从部署到应用!

GPT-SoVITS是一个少样本TTS工具,仅需要极少的数据即可训练出性能不错的模型。不仅有着易用的WebUI,让AI领域小白也能轻松训练,还有这方便的api,可以与许多软件搭配使用TTS功能。

在此,我们使用开源阅读app,搭配GPT-SoVITS的api,实现让你喜欢的二次元角色为你朗读轻小说!你需要的,仅仅是一个性能还可以英伟达的显卡,实测弱如RTX 3050 4g也能跑。

早期准备

想要准备模型训练,首先,我们需要的是在本地部署GPT-SoVITS。有了github上打包的整合包,这使得配置python环境变得极为简单。如果你不懂python,只需要跟随官网写好的教程完成即可https://www.yuque.com/baicaigongchang1145haoyuangong/ib3g1e/xyyqrfwiu3e2bgyk

如果你是有自信,下载解压包后,可以直接运行go-webui.bat。一键式启动大大简化了环境部署的复杂程度。

程序启动后,访问本地端口的gradio页面(http://localhost:9874/),首先映入眼帘的是数据集处理。比起从零开始收集数据集,我更建议没有经验的初次使用者去huggingface寻找现有的数据集。我们使用Chtholly-dev/Chtholly-vocal-refined这个数据集。

训练

至于模型的训练,程序设计的已经很简单了。直接导入训练集,完成文本获取、SSL提取以及token提取后,即可进行SoVITS训练以及GPT训练。考虑到炼丹的玄学成分,可以直接使用默认参数训练,这里笔者使用的400条平均两秒多的数据集,SoVITS模型训练八轮,GPT模型训练15轮即有不错的表现。

当然,开源社区已经有不少人分享了自己训练的模型。如果你希望使用的角色是热门角色的话,大概率可以找到别人分享的。请注意区分,v2模型和早期版本的模型不通用,需要放到不同的目录下。

如图,v2版本的GPT模型和SoVITS模型应放到选中路径中。早期版本放到没有_v2后缀的目录中。

推理

程序的推理有两种,一种是通过gradio,也就是浏览器界面进行文本输入、而后进行推理。l另一种则是通过api进行。简单来说,api就是一个接口,让你实现通过一串链接向程序传递你的需求,程序则会返回你需求的文件。

在使用api前,我们需要一些前期的设置。

首先,我们需要设置默认模型。打开目录中的config.py,找到sovits_path和gpt_path,填写你的模型路径。比如:

sovits_path = "SoVITS_weights_v2/chtholly_e8_s264.pth"
gpt_path = "GPT_weights_v2/chtholly-e15.ckpt"

保存后,我们可以新建一个批处理文件,来启动api.py

在程序根目录新建文件api.bat,右键编辑,输入如下:

runtime\python.exe api.py 
pause

而后双击启动bat文件,打开api程序。不出意外,此时你可以观察到如下输出:

这就证明api已经在监听本地端口9880了。

api的使用

如果你根据教程尝试过直接在webui推理,你就会知道需要输入的几个关键参数:参考音频及其语言、文本,想要推理的文本及其语言,断句方式以及语速等。同样,我们需要构建链接来通过api传递这些信息。

http://127.0.0.1:9881/?refer_wav_path=C:\refer\wav\01.wav&prompt_text=通の人と同じような夢を求めることが許されるなら&prompt_language=日文&text={speakText}}&text_language=中英混合&cut_punc=。?」!top_k=15&top_p=1&temperature=1&speed={{String(speakSpeed / 10)}}

这段这是是我利用开源阅读app的内置TTS功能编写的。注意其中几个重要的参数,refer_wav_path是参考音频的路径,prompt_text是参考音频的内容。

Leave a Reply

Your email address will not be published.Required fields are marked *