GPT-SoVITS笔记

文章目录

讲解链接

源码地址:https://github.com/RVC-Boss/GPT-SoVITS
文档

一、GPT-SoVITS特色

1)GPT-SoVITS项目特点

1、Zero-shot TTS: Input a 5-second vocal sample and experience instant text-to-speech conversion.

5秒钟克隆tts集外银色(不包含说话方式和咬字上的口癖)一般能80%到95%像

2、Few-shot TTS: Fine-tune the model with just 1 minute of training data for improved voice similarity and realism.

1分钟素材tts微调可以逼近真人(训练时间成本5~10分钟)

3、Cross-lingual Support: Inference in languages different from the training dataset, currently supporting English, Japanese, Korean, Cantonese and Chinese.

tts跨语言推理(已支持英文、日语、中文、汉语、粤语)

4、WebUI Tools: Integrated tools include voice accompaniment separation, automatic training set segmentation, Chinese ASR, and text labeling, assisting beginners in creating training datasets and GPT/SoVITS models.

独立可调试用的webUI页面调试工具

2)TTS定义

TTS(Text-To-Speech)这是一种文字转语音的语音合成。类似的还有SVC(歌声转换)、SVS(歌声合成)等。目前GPT-SoVITS只有TTS功能,也就是不能唱歌。

  • 各版本特点
    ①GPT-SoVITS-V1实现了:
    ● 由参考音频的情感、音色、语速控制合成音频的情感、音色、语速
    ● 可以少量语音微调训练,也可不训练直接推理
    ● 可以跨语种生成,即参考音频(训练集)和推理文本的语种为不同语种
    ②GPT-SoVITS-V2新增特点:
    ● 对低音质参考音频合成出来音质更好
    ● 底模训练集增加到5k小时,zero shot性能更好音色更像,所需数据集更少
    ● 增加韩粤两种语言,中日英韩粤5个语种均可跨语种合成
    ● 更好的文本前端:持续迭代更新。V2中英文加入多音字优化。
    ③GPT-SoVITS-V3V4新增特点:
    ● 音色相似度更像,需要更少训练集来逼近本人(甚至不需要训练SoVITS)
    ● GPT合成更稳定,重复漏字更少,也更容易跑出丰富情感
    ● v4修复了v3非整数倍上采样可能导致的电音问题,原生输出48k音频防闷(而v3原生输出只有24k)。作者认为v4是v3的平替,更多还需测试。

二、克隆音色操作示例

  • 步骤
    ①先去除背景音乐杂音

1)去除背景音乐(数据集处理):UVR5模型

  • 用到的模型
    ①model_bs_roformer_ep_317_sdr_12.9755模型:提取人声
    ②onnx_dereverb最后用DeEcho-Aggressive:将输出的干声音频去混响
  • 备注
    model_bs_roformer_ep_317_sdr_12.9755(常简写为model_bs_roformer_ep_317_sdr_12)是UVR5中用于人声分离的关键模型之一‌13。该模型在UVR5中替换了原有的hp2模型,大幅提升了人声分离的效果‌3。用户需要将该模型文件(通常命名为Bs_Roformer.pth)放置在UVR5的指定模型目录下使用‌2。该模型属于MDX-Net架构系列,专门用于从音频中提取人声或伴奏,其性能指标SDR 12.9755代表了较高的音源分离质量‌1。安装后,用户可在UVR5的模型选择界面直接调用该模型进行人声分离操作‌2。
  • 步骤

打开文件来到根目录,双击go-webui.bat打开,不要以管理员身份运行!

这就是正常打开了,稍加等待就会弹出网页。如果没有弹出网页可以复制http://0.0.0.0:9874到浏览器打开

在开始使用前先提醒一下大家:打开的bat不可以关闭!这个黑色的bat框就是控制台,所有的日志都会在这上面呈现,所有的信息以控制台为准。如果要向别人提问请写清楚:哪一步骤+网页端(方便看你填没填对)+控制台截图!所有的报错都在控制台上!Error后面的一般是报错

打开伴奏音频分离工具填写音频地址:

点击开启UVR5-WebUI稍加等待就会自动弹出图二的网页,如果没有弹出复制http://0.0.0.0:9873到浏览器打开

先用model_bs_roformer_ep_317_sdr_12.9755模型(已经是目前最好的模型)处理一遍(提取人声),然后将输出的干声音频再用onnx_dereverb最后用DeEcho-Aggressive(去混响),输出格式选wav。输出的文件默认在GPT-SoVITS-beta\output\uvr5_opt这个文件夹下,建议不要改输出路径,到时候找不到文件谁也帮不了你。处理完的音频(vocal)的是人声,(instrument)是伴奏,(_vocal_main_vocal)的没混响的,(others)的是混响。(vocal)(_vocal_main_vocal)才是要用的文件,其他都可以删除。结束后记得到WebUI关闭UVR5节省显存。

如果没有成功输出,报错了(现在版本应该不会报错了)。

那么推荐使用下面一种方法------UVR5客户端。

创建输入目录audio和输出目录vocal

关闭分离工具的打钩节省显存

填写输入音频目录和切分输出目录、填写要语音识别(音频转文本)的音频输入目录,分别作语音切分和语音识别=》将原来语音切分后进行语音识别成文本

语音识别结果在output/asr_opt这个目录下能找到

把语音识别的结果文件,也就是list文件作为标准工具的数据,用作文本校对,并打钩webUI

有杂音的或样本太少的文本建议删除

2)生成特征文件

得到文件后来到下一个目录

填写三个打*的地方

点击一键三连开始生成

生成特征文件

3)分别进行两个子模型微调

顺序随意

显存需求

4)推理界面试用

勾选点击按钮开始推理

推理前需要上传目标音色的参考视频,并填写对应的文本和语种

合成速度:3090每秒合成三秒长度

三、原理讲解

1)Sovits原理讲解

  • 原理步骤

    ①首先通过softVC编码器去除音色

    ②然后通过VITS解码器重建音频

    ③在重建的过程中模型将训练集音色学习进它的参数中,因此输入其他音色的语音进过编码后,VITS模型也能重建出学习过的音色语音

  • 最大的问题:

    编码器encoder去除音色这一步,事实上目前没有完全去除音色的特征,只有去音色相对强的特征,这也是为什么sovit编码器最后选用ContentVec作为编码器的原因

  • 露音色备注

    转换音色失败,不是自己想要的

  • CN_Hubert音色引导作用(原始Hubert使用wenet中文数据训练)

    保留丰富的音色信息反而成他的特色,结合RVQ将音频转化为包含音色的语义token,然后用类GPT模型将他补全

  • 库目录

四、服务构建

1)环境安装(自动安装)

  • 步骤
    ①安装conda并初始化conda环境
    ②开始安装其他环境

①安装conda并初始化conda环境

下载conda安装包

shell 复制代码
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

安装miniconda

shell 复制代码
bash Miniconda3-latest-Linux-x86_64.sh

重新加载环境变量:

shell 复制代码
source ~/.bashrc

验证 conda 是否可用

shell 复制代码
conda --version

conda环境

shell 复制代码
export PATH=~/miniconda3/bin:$PATH

conda init 
conda activate GPTSoVits

②开始安装其他环境

这里我选择用install.sh脚本来安装依赖

shell 复制代码
bash install.sh --device CU128 --source HF  --download-uvr5

2)环境安装(手动安装)

①安装fast-whisper

shell 复制代码
pip install -r extra-req.txt --no-deps -i https://mirrors.aliyun.com/pypi/simple/

②安装一堆其他库

shell 复制代码
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

③安装 FFmpeg

1)conda安装

shell 复制代码
conda install ffmpeg

2)Ubuntu/Debian Users

shell 复制代码
sudo apt install ffmpeg
sudo apt install libsox-dev

④模型下载

1)UVR5模型:

shell 复制代码
UVR5模型
huggingface:
https://huggingface.co/lj1995/VoiceConversionWebUI/tree/main/uvr5_weights
iCloud(解压后替换tools/uvr5/uvr5_weights):
https://www.icloud.com/iclouddrive/04ai9bBzJJclEFpbrbd_plmtA#uvr5_weights

2)pretrain_model预训练模型:

shell 复制代码
huggingface:
https://huggingface.co/lj1995/GPT-SoVITS/tree/main
iCloud(解压后放到GPT_SoVITS/pretrained_models下):
https://www.icloud.com/iclouddrive/0cb2YLuaLd4xBMslvMRnWcX0g#pretrained_models
相关推荐
忘川w2 小时前
NISP-PTE基础实操——代码审计
android·笔记·安全·网络安全
秋也凉2 小时前
有关Maven的个人笔记总结
java·笔记·maven
91刘仁德3 小时前
c语言 进阶 动态内存管理
c语言·经验分享·笔记
揉揉1025 小时前
【软件基础学习配置那些事 4-2】3ds Max2026 基础操作“视图基本操作”“视图的切换”“模型基础操作”“显示、隐藏栅格 ”
经验分享·笔记·3dsmax
丁满与彭彭9 小时前
嵌入式学习笔记--MCU阶段--DAY08总结
笔记·单片机·学习
上官鹿离9 小时前
C++学习笔记(六:数组)
c++·笔记·学习
巴伦是只猫9 小时前
【深度学习笔记 Ⅱ】8 mini-batch 梯度下降法
笔记·深度学习·batch
白云偷星子10 小时前
MySQL笔记4
笔记
特种加菲猫10 小时前
Linux进程核心机制:状态、优先级与上下文切换详解
linux·笔记