赞
踩
作者b站演示视频:
目录
GPT-SoVITS项目地址:GitHub - RVC-Boss/GPT-SoVITS: 1 min voice data can also be used to train a good TTS model! (few shot voice cloning)
GPT-SoVITS安装方法,可参考原项目readme文档:
GPT-SoVITS/docs/cn/README.md at main · RVC-Boss/GPT-SoVITS · GitHub
双击 go-webui.bat,或完成环境配置和依赖安装后,在终端中输入 python webui.py 即可启动项目。(Windows系统)
WebUI界面如图所示(版本为beta0217fix2):
GPT-SoVITS集成UVR5工具,点击 方框1 中的 是否开启UVR5-WebUI 即可进入UVR5-WebUI界面(可能需要稍微等待一会)。若你的数据集非常干净,无BGM无混响无延迟,则可以略过本步骤,否则必须先预处理数据集。UVR5-WebUI界面如下:
在左边输入音频文件夹(不是音频文件本身)路径 或 拖拽音频文件,根据上方的描述选择合适的模型,补全两个输出文件夹路径,导出文件格式选择 wav 效果更好,点击转换后等待输出信息中出现success即可。若有任何报错,请返回终端中处理,所有的报错以终端中显示的内容为准。文件或文件夹路径直接复制Windows系统给出的路径即可。
完成输出后,关闭网页,返回WebUI界面中,取消勾选是否开启UVR5-WebUI,可释放部分内存。
只需要补全两个路径,其它参数保持默认,点击 开启语音切割 即可。正常情况下速度会非常快。
同样,只需将语音切分的输出路径作为语音降噪的输入,再新建一个输出路径即可。补全两个路径后点击 开启语音降噪 ,通常GPU设备只需稍等片刻,CPU设备则需等待较长时间,降噪进度可以在终端中查看。
将语音降噪输出路径作为此处的输入路径,补全输出路径,其它保持默认,点击开启离线批量ASR即可,整体速度较快。这一步的目的是为每段音频自动添加字幕,并将所有音频的字幕和地址保存在一个.list文件中。
先将刚刚生成的.list文件路径填入,点击 是否开启打标WebUI 后稍等片刻。
打开后界面如下:
在此界面下,你可以收听每一段音频并修改对应的文本。ASR自动生成字幕的文字通常都是正确的,但标点和断句可能与音频不符,可以手动修改一下。修改后需要点击左上角的 Submit Text 更新 .list 文件。右上角的 Previous Index 和 Next Index 可以实现向前和向后翻页的功能。若某个音频质量不佳,可勾选 Choose Audio 中的 Yes ,随后点击最上方的 Delete Audio 进行删除,则后续该音频不会出现在 .list 文件中,也不会参与训练。
完成校对后关闭本网页,同样返回WebUI界面取消勾选 是否开启打标WebUI,释放内存。
构建好前置数据集后,下面开始训练部分。
首先返回 WebUI 页面最上方,点击 1-GPT-SoVITS-TTS,进入训练部分。
打开后界面如下:
修改 实验/模型名(一定要改,每次训练都要改一次!),再把 .list 文件路径填入,直接点击最下方的 一键三连 即可自动完成所有格式化任务。
首先选择 1B-微调训练,其次根据自己设备情况修改 batch_size 和 总训练轮数,通常保持默认即可。若修改了训练轮数,则还需额外调整一下 保存频率 为训练轮数的因数,点击 开启SoVITS训练,耐心等待较长时间,可在终端中实时查看训练进度。
完成SoVITS训练后,以同样的方式调整GPT训练参数,点击 开启GPT训练 即可,且本训练速度较快。
进入 1C-推理界面,点击 刷新模型路径后,选择刚刚训练好的GPT模型和SoVITS模型,再勾选 是否开启TTS推理WebUI,稍等片刻后进入推理界面。
首先需要设置参考音频,直接拖入参考音频并填入参考音频的文本,选择参考音频的语种即可。 GPT-SoVITS 也提供 无参考文本模式(虚线框中勾选),但效果并不好,还是建议花几秒钟自己填上参考文本。参考文本的语速和情感将会影响需要合成的文本的语速和情感,因此也需要认真选择,而音色还是由选定的模型决定。
填入合成文本时,还需要选择合成的语种,其它参数可以默认,点击 合成语音 即可。若一次合成的文字过长,则 GPT-SoVITS 会出现吞字、重复、胡言乱语的情况,因此需要对文本进行切分。推理页面最下方提供切分工具,若还是觉得效果不好,可自行通过回车键进行切分,GPT-SoVITS会自动把每一段切分后的语音合并成一个完整的语言输出。
b站教程地址:
- """
- # api.py usage
- ` python api.py -dr "123.wav" -dt "一二三。" -dl "zh" `
- ## 执行参数:
- `-s` - `SoVITS模型路径, 可在 config.py 中指定`
- `-g` - `GPT模型路径, 可在 config.py 中指定`
- 调用请求缺少参考音频时使用
- `-dr` - `默认参考音频路径`
- `-dt` - `默认参考音频文本`
- `-dl` - `默认参考音频语种, "中文","英文","日文","zh","en","ja"`
- `-d` - `推理设备, "cuda","cpu"`
- `-a` - `绑定地址, 默认"127.0.0.1"`
- `-p` - `绑定端口, 默认9880, 可在 config.py 中指定`
- `-fp` - `覆盖 config.py 使用全精度`
- `-hp` - `覆盖 config.py 使用半精度`
- `-sm` - `流式返回模式, 默认不启用, "close","c", "normal","n", "keepalive","k"`
- ·-mt` - `返回的音频编码格式, 流式默认ogg, 非流式默认wav, "wav", "ogg", "aac"`
- ·-cp` - `文本切分符号设定, 默认为空, 以",.,。"字符串的方式传入`
- `-hb` - `cnhubert路径`
- `-b` - `bert路径`
- """

- """
- 使用执行参数指定的参考音频:
- GET:
- `http://127.0.0.1:9880?text=先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。&text_language=zh`
- POST:
- ```json
- {
- "text": "先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。",
- "text_language": "zh"
- }
- ```
- 使用执行参数指定的参考音频并设定分割符号:
- GET:
- `http://127.0.0.1:9880?text=先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。&text_language=zh&cut_punc=,。`
- POST:
- ```json
- {
- "text": "先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。",
- "text_language": "zh",
- "cut_punc": ",。",
- }
- ```
- 手动指定当次推理所使用的参考音频:
- GET:
- `http://127.0.0.1:9880?refer_wav_path=123.wav&prompt_text=一二三。&prompt_language=zh&text=先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。&text_language=zh`
- POST:
- ```json
- {
- "refer_wav_path": "123.wav",
- "prompt_text": "一二三。",
- "prompt_language": "zh",
- "text": "先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。",
- "text_language": "zh"
- }
- ```
- RESP:
- 成功: 直接返回 wav 音频流, http code 200
- 失败: 返回包含错误信息的 json, http code 400
- ### 更换默认参考音频
- endpoint: `/change_refer`
- key与推理端一样
- GET:
- `http://127.0.0.1:9880/change_refer?refer_wav_path=123.wav&prompt_text=一二三。&prompt_language=zh`
- POST:
- ```json
- {
- "refer_wav_path": "123.wav",
- "prompt_text": "一二三。",
- "prompt_language": "zh"
- }
- ```
- RESP:
- 成功: json, http code 200
- 失败: json, 400
- """

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。