低成本AI音色克隆软件【GPT-SoVITS】使用教程

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)
官方demo介绍:https://www.bilibili.com/video/BV12g4y1m7Uw

功能:

  1. 零样本文本到语音(TTS): 输入 5 秒的声音样本,即刻体验文本到语音转换。
  2. 少样本 TTS: 仅需 1 分钟的训练数据即可微调模型,提升声音相似度和真实感。
  3. 跨语言支持: 支持与训练数据集不同语言的推理,目前支持英语、日语和中文。
  4. WebUI 工具: 集成工具包括声音伴奏分离、自动训练集分割、中文自动语音识别(ASR)和文本标注,协助初学者创建训练数据集和 GPT/SoVITS 模型。

使用过程简介:

  1. 数据处理
  • UVR5 人声处理
  • 音频切割
  • 音频降噪
  • 音频打标
  • 校对标注
  1. 训练
  • 数据集准备
  • 微调训练
  1. 推理

教程

环境:Ubuntu 22.04,NVIDIA RTX A6000
采用docker形式部署
docker-compose.yaml文件:https://raw.githubusercontent.com/RVC-Boss/GPT-SoVITS/main/docker-compose.yaml

0. 准备工作

在主目录下创建GPT-SoVITS,并下载docker-compose.yaml,之后模型的镜像大小5G左右

cd ~
mkdir GPT-SoVITS
cd GPT-SoVITS
mkdir logs output reference SoVITS_weights GPT_weights
curl -o docker-compose.yaml https://raw.githubusercontent.com/RVC-Boss/GPT-SoVITS/main/docker-compose.yaml

默认docker-compose.yaml需要做一下调整,需要将 GPT_weights文件夹映射出来。
原始内容:

    volumes:
      - ./output:/workspace/output
      - ./logs:/workspace/logs
      - ./SoVITS_weights:/workspace/SoVITS_weights
      - ./reference:/workspace/reference

修改后的内容(增加GPT_weights一行映射):

    volumes:
      - ./output:/workspace/output
      - ./logs:/workspace/logs
      - ./SoVITS_weights:/workspace/SoVITS_weights
      - ./GPT_weights:/workspace/GPT_weights
      - ./reference:/workspace/reference

修改完成后,搞启

docker compose up -d

如果是服务器需要开放9874、9873、9872、9871、9880,如果端口有冲突需要修改docker-compose.yaml里的端口映射

用Chrome登陆GPT-SoVITS的WebUI(9874端口):http://0.0.0.0:9874/

1. 数据处理

1.1 UVR5 人声处理


点击Open UVR5-WebUI,看见右边显示UVR5 opened,就可以进入等UVR5处理界面了(端口9873)http://0.0.0.0:9873/

  1. 上传上面处理的音频文件
  2. 选择处理人声的模型,我选的是HP2,功能上面有介绍模型
  3. 修改输出人声目录(output/uvr5_luoyonghao_vocals),一定要在output下面,后续有用到此目录,别用默认,需要训练多个模型区分不开
  4. 修改输出伴奏目录,不要和人声目录一样
  5. 选择wav格式
  6. 开始处理,处理完成后在右侧会有提示
  7. 关闭界面,回到主界面,把Open UVR5-WebUI勾去掉,关掉UVR服务

1.2 音频切割

  1. 音频切割的输入目录(output/uvr5_luoyonghao_vocals)
  2. 音频切割的输出目录(output/slicer_luoyonghao),别用默认,需要训练多个模型区分不开,打标的输入目录
  3. 其他默认,点击开始分割

1.3 音频降噪


一般不需要

1.4 音频打标

  1. 输入目录(output/slicer_luoyonghao),切割的输出目录
  2. 输出目录,默认
  3. 选择达摩ASR(阿里出品),达摩ASR只能用于识别中文,效果也最好。fast whisper可以标注99种语言,是目前最好的英语和日语识别,模型尺寸选large V3,语种选auto自动就好了
  4. 开始批量处理

这里如果模型没有会有一个下载过程,等待完成即可

1.5 校对标注

  1. 打标list文件路径(output/asr_opt/slicer_luoyonghao.list),不是目录,目录为打标的输出目录,文件名为音频切割的输出目录+list(slicer_luoyonghao.list)
  2. 启动校对服务(端口9871)http://0.0.0.0:9871/


这个步骤比较耗时,主要戴上耳机听音频质量,对照文本校对,如果要求不高,可以跳过。

  1. 播放音频,听质量,有杂音在后选择
  2. 文本内容,主要核对文本内容,还有停顿点是否正确
  3. 选择需要删除音频
  4. 提交文本修改,在第2步修改了文本,需要先提交,再保存文件
  5. 删除音频,删音频前有修改文本的,要先提交,再删除
  6. 保存文件,删除后一定要记得先保存,要不重新搞一遍
  7. 下一组音频,一定要记得先保存,要不重新搞一遍
  8. 上一组音频,一定要记得先保存,要不重新搞一遍
    校对完成之后,再次确认保存,回到主界面,关闭校对服务。

到这里数据步骤完成。

2. 训练

2.1 数据集准备

  1. 切换到训练标签
  2. 模型名称(luoyonghao)
  3. 打标list文件路径(output/asr_opt/slicer_luoyonghao.list)
  4. 切割音频目录(output/slicer_luoyonghao)
  5. 一键三连进行数据准备

2.1 模型微调

  1. 切换到微调训练标签
  2. 开始SoVITS训练,通常默认参数,显卡跑崩了,可以吧Batch size调小一下,训练轮数根据质量再调整训练
  3. 开始** GPT**训练,如开启DPO训练,Batch size要调整

别两个训练一起执行,一个一个执行
到这里模型的训练就结束了,下面就是期待已久的推理啦 :grinning:

3. 推理

  1. 切换到推理标签
  2. 刷新模型
  3. 选择训练好的GPT模型
  4. 选择训练好的SoVITS模型,与GPT模型要配对使用
  5. 启动推理服务(端口9872)http://0.0.0.0:9872/

  1. 这个界面还可以更换模型
  2. 可以从校对标注服务里找一个音频上传到这里
  3. 对应的音频文本
  4. 上面传的音频的语言,训练的基本是中文
  5. 需要推理的文本填到这里
  6. 推理的语言,如果文本中包含中文、英文,可以选择中英混合
  7. 内置的断句方法,可以都试试效果
  8. 运行推理大法
  9. 推理后的语音,可以右键下载,推理的结果和上传的音频也有关系

模型分享

分享需要的模型都在SoVITS_weightsGPT_weights 这两个文件夹,看需要取。

看成果

测试1
原音原音

AI推理AI推理

测试2:
原音原音

AI推理AI推理

没有找到好的音频托管,不知道听的效果这么样,相似度还需要再调,尤其中英混合的内容不是很理想,也有可能应用的时候参数等没有微调 :innocent:,欢迎交流。

本帖内容仅为研究分享,如对您的权利造成了影响,请私信联系,我会在第一时间将内容进行删除。

30 个赞

赞!学习一波!

1 个赞

:+1: :+1:

1 个赞

mark

1 个赞

这个好玩 :star_struck:

2 个赞

太硬核了 :+1:

1 个赞

好玩 marked

1 个赞

6啊

1 个赞

好像是挺好玩的,默默问一句核显能跑不 :upside_down_face:

3 个赞

核显跑不了,显存最少需要6-8G

3 个赞

那我就只能看看了 :face_holding_back_tears:

3 个赞

用这个也可以的 :grin:

4 个赞

马克

1 个赞

感谢分享

1 个赞

欢迎加入

3 个赞

mark

1 个赞

:rofl:学校说想弄个数字人,我来搜搜看

这个只是声音的部分,数字人还需要比较多的其他的技术

mark

太详细了 :clap: