【超详细教程】GPT-SoVITs从零开始训练声音克隆教程(主要以云端AutoDL部署为例)

目录

一、前言

二、GPT-SoVITs使用教程

2.1、Windows一键启动

2.2、AutoDL云端部署

2.3、人声伴奏分离

2.4、语音切割

2.5、打标训练数据

2.6、数据集预处理

2.7、训练音频数据

2.8、推理模型

三、总结


一、前言


近日,RVC变声器的创始人(GitHub昵称为RVC-Boss)与AI音色转换技术专家Rcell合作,共同开发并开源了一款创新的跨语言音色克隆工具——GPT-SoVITS。这个项目在互联网上迅速获得了广泛关注和好评,众多业界大佬和知名博主都对其给予了推荐。自项目上线以来,短短两天内,它在GitHub上的Star数就达到了1.4k,而现在这个数字已经飙升至6.5k。

GPT-SoVITS的开发历时半年,期间RVC-Boss和Rcell面临了诸多挑战。这款工具不仅具有低成本和易用性的特点,而且在音色克隆领域展现出了新颖的技术创新。

项目地址:https://github.com/RVC-Boss/GPT-SoVITS

二、GPT-SoVITs使用教程

2.1、Windows一键启动

首先下载软件包,解压后双击打开“go-webui.bat”即可。

GPT-SoVITs安装包下载

2.2、AutoDL云端部署

首先打开AutoDL网页,注册登录后进入到“算力市场”,选择一个性价比高的显卡,CUDA版本需要大于11.8,这里我选择RTX3090显卡为示例。

接着来到创建实例界面,点击“社区镜像”,输入“GPT-SoVITs”,选择最新的镜像文件,比如我这里的v2.1版本,然后点击“立即创建”即可。

来到容器实例界面,点击刚刚创建好的容器,点击“JupyterLab”进入终端操作界面。

点击第二个选项框,进入使用界面,拉到最下面,运行前两个命令,选择命令框点击运行即可。

最后打开下方图片链接即可打开GPT-SoVITs界面啦~

2.3、人声伴奏分离

首先准备一段1分钟以上的音频文件,必须是同一个人说话的声音喔,点击开启UVR5-WebUI,回到AutoDL的终端操作界面,查看命令行中的链接,点击进入WebUI界面。

来到人声分离WebUI界面,上传1分钟以上的音频文件进行声音分离,选择好模型,选择好导出的文件格式,点击“转换”即可,转换好的文件位于output/uvr5_opt。

转换好后,记得关闭UVR5-WebUI,这样可释放一些内存。

2.4、语音切割

第一步,上传刚刚分离好的音频文件,填写好音频输入文件路径,这里跟着我填写input就可以了,点击开启语音切割。

接着进行开启离线批量ASR,填写好输出文件夹的路径,然后点击左边的“开启离线批量ASR”按钮。

然后填写好打标数据文件路径,点击开启打标WebUI,返回到AutoDL终端操作界面,查看命令行输出,点击下方链接即可进入到打标数据界面。

2.5、打标训练数据

点击播放▶️按钮,试听一下对应文本是否正确,如果不正确进行文本的修改,这一页整理好数据后,点击“Save File”和“Submit Text”这两个按钮,接着点击“Next Index”下一页,重复以上的步骤进行校对。

全部校对完毕后,返回WebUI界面,关闭打标WebUI

2.6、数据集预处理

点击“1-GPT-SoVITS-TTS”,来到训练操作界面,更改实验名字,可随意命名,然后填写好文本标注文件和训练集音频文件路径,这里跟我的一模一样就可以了。

接着分别点击这四个按钮即可。

2.7、训练音频数据

然后来到了微调训练数据这个界面,保持默认参数不变,也可以自行调整参数的,点击开启SOVITS训练和开启GPT训练。

2.8、推理模型

来到1C-推理,首先点击刷新模型路径,才能出现刚刚训练好的模型。

接下来选择刚刚训练好的模型文件,然后开启TTS推理WebUI

查看AutoDL的终端界面,找到最后一行的网页链接,点击这个链接即可到TTS推理的界面。

首先上传一段几秒的参考音频,填写参考音频的所输出的语音文本,然后再填写需要合成的文本,点击合成语音,一会儿就会出现了输出的语音音频文件了,点击试听,效果确实很惊艳!!!

三、总结

GPT-SoVITS是一款支持多语言的先进技术,融合了声音伴奏分离、自动训练集分割、中文自动语音识别(ASR)以及文本标注等多种辅助工具。令人印象深刻的是,它仅需一分钟的训练数据,就能对模型进行微调,显著提升语音的相似度和真实感。整体而言,GPT-SoVITS提供了一种极为出色的体验。期待其在未来的应用范围能不断扩大,而且在更新迭代过程中能实现更加完善和优化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/656044.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux——Ubuntu安装MySQL并设置远程登录

1、安装mysql8.0.35 1.更新包列表,首先,确保您的系统已更新到最新状态。运行以下命令来更新包列表和安装最新的软件包: sudo apt update sudo apt upgrade2.安装MySQL服务器:运行以下命令来安装MySQL服务器: sudo a…

【C++】this指针

this指针! 目录 this指针的引出:从C语言中理解this指针: this指针的特性:练习: this指针的引出: 我们知道,类中的成员函数是有专门的存放区:公共代码区,这也就意味着我…

方案:将vue项目放在SpringMVC中,并用tomcat访问

需要先将项目生成一次war包才能访问项目的webapp文件夹下的资源,否则tomcat的webapp文件夹下面不会生成对应资源文件夹就无法访问。 问题:目录如下: 今天我测试了一下将vue打包后,放入webapp下面访问,却发现vue项目无…

第九节HarmonyOS 常用基础组件13-TimePicker

1、描述 时间选择组件,根据指定参数创建选择器,支持选择小时以及分钟。默认以24小时的时间区间创建滑动选择器。 2、接口 TimePicker(options?: {selected?: Date}) 3、参数 selected - Date - 设置选中项的时间。默认是系统当前的时间。 4、属性…

软件工程学科的本质

软件工程学科的本质是分析与设计,是画图,是进行软件架构设计,进行进行软件项目管理。而非写代码。 分析有结构化分析,面向对象分析法,都用图来描述表达。 设计有结构化设计,面向对象设计法,都…

云计算运维 · 第三阶段 · git

学习b记 第三阶段 三、持续集成 1、git #安装 yum -y install git[rootgit-git ~]# git config –-global user.name "qxl" # 配置git使用用户 [rootgit-git ~]# git config –-global user.email "qxlmail.com" # 配置git使用邮箱 [rootgit-git ~]# g…

面试题 02.07. 链表相交(力扣LeetCode)

文章目录 面试题 02.07. 链表相交题目描述解题思路c代码优化后c代码 面试题 02.07. 链表相交 题目描述 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 图示两个链表在节点 c1 …

java代码中直接调用存储过程

开启数据库语句批处理 url: jdbc:mysql://192.168.0.xxx:3306/xxx?useSSLfalse&useUnicodetrue&characterEncodingutf-8&zeroDateTimeBehaviorCONVERT_TO_NULL&serverTimezoneUTC&allowMultiQueriestrue 重点: allowMultiQueriestrue mysql…

医疗保健和生命科学组织的远程访问解决方案

医疗保健和生命科学组织的远程访问解决方案——随时随地为医疗保健和生命科学人员提供相关信息 引领生命科学远程工作的IT新高度 生命科学组织一直承受着改进工作流程、降低成本和比以往更快地交付产品的压力。 使用远程访问和集中式 IT 基础架构,企业可以在加快上…

Linux CPU 负载说明

一、背景 工作中我们经常遇到CPU 负载高,CPU负载高意味着什么? CPU的负载是怎么计算的? top指令中的各个指标代表什么含义? 二、CPU 负载计算方法 在系统出现负载问题,通常会使用uptime和top确认负载,这两…

基于C#制作一个连连看小游戏

基于C#制作一个连连看小游戏,实现:难易度选择、关卡选择、倒计时进度条、得分计算、音效播放等功能。 目录 引言游戏规则开发环境准备游戏界面设计游戏逻辑实现图片加载与显示鼠标事件处理游戏优化与扩展添加关卡与难度选择说明</

备战蓝桥杯--数据结构及STL应用(基础)

今天轻松一点&#xff0c;讲一讲stl的基本操作吧&#xff01; 首先&#xff0c;让我们一起创建一个vector容器吧&#xff01; #include<bits/stdc.h> using namespace std; struct cocoack{ int coco,ck; } void solve(){vector<cocoack> x;for(int i0;i<5;i){…

Java链表(2)

&#x1f435;本篇文章将对双向链表进行讲解&#xff0c;模拟实现双向链表的常用方法 一、什么是双向链表 双向链表在指针域上相较于单链表&#xff0c;每一个节点多了一个指向前驱节点的引用prev以及多了指向最后一个节点的引用last&#xff1a; 二、双向链表的模拟实现 首先…

C++不能直接返回数组

文章目录 前言一、缘由二、示例&#xff1a;函数返回后&#xff0c;指针指向无效内存三、解决方案3.1、动态分配数组3.2、使用 std::vector&#xff1a;&#xff08;最为推荐&#xff09;3.3、使用静态数组&#xff1a; 前言 在 C 中&#xff0c;不能直接返回一个数组。因为数组…

STL:list实现

list是和vector类似的顺序型容器&#xff0c;也是是比vector更为复杂的容器。list是双向带头链表&#xff0c;初始有一个不存数据的头节点&#xff0c;并通过节点内指针将后续节点依次连接起来 。 相较于vector&#xff0c;list特点如下&#xff1a; (1)list可以按需申请&…

使用Docker安装Jenkins,并能够在该Jenkins中使用Docker

1. 构建Dockerfile 试错1 参考https://medium.com/manav503/how-to-build-docker-images-inside-a-jenkins-container-d59944102f30 按照文章里所介绍的&#xff0c;实现在Jenkins容器环境中依然能够调用Docker&#xff0c;需要做到以下几步 下载Jenkins镜像将环境中的docke…

CGAL 网格剖分算法

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 CGAL为我们提供了一种网格剖分算法,它与之前的网格平面分割算法有些类似,只不过它输出的是平面与网格的相交线段,CGAL也为我们提供了一种加速策略(AABB树)。 二、实现代码 #include <iostream> #includ…

java面试算法要刷吗?学算法只是为了面试吗?

在Java的世界里&#xff0c;算法往往被看作是面试的一个重要组成部分。有些人可能会问&#xff0c;学Java不是应该更多关注框架、数据库、微服务之类的吗&#xff1f;为什么还要费那么大劲去研究算法呢&#xff1f;好吧&#xff0c;让我来给你讲讲这背后的逻辑。 1、算法在Jav…

ES6 Reflect详解

文章目录 概述静态方法Reflect.get(target, name, receiver)Reflect.set(target, name, value, receiver)Reflect.has(obj, name)Reflect.deleteProperty(obj, name)Reflect.construct(target, args)Reflect.getPrototypeOf(obj)Reflect.setPrototypeOf(obj, newProto)Reflect.…