当前位置: 首页 > news >正文

GPT-Sovits-2-微调模型

1. 大致步骤

上一步整理完数据集后,此步输入数据, 微调2个模型VITS和GPT,位置在 <<1-GPT-SoVITS-tts>>下的<<1B-微调训练>>

页面的两个按钮分别执行两个文件:

  • <./GPT_SoVITS/s2_train.py>

这一步微调VITS的预训练模型,即微调SynthesizerTrn模型

  • <./GPT_SoVITS/s1_train.py>

这一步微调GPT的预训练模型,这里采用的是google的soundstorm复现

模型结构文件在:’ ./GPT_SoVITS/AR/models/t2s_model.py’

注意,两个模型微调是独立的, 可分别完成

界面如下:

在这里插入图片描述

2. 微调过程

2.1执行SoVITS训练

  • 这里webui.py中代码会用gradio框架将页面上的设置转换为python变量,并保存到‘。/TEMP’文件夹的‘tmp_s2.json’文件,用于送入s2_train.py作为训练参数

  • 另外,‘./logs’下会生成 train.log 和 config.json文件,记录微调的配置信息。以及eval和logs_s2文件夹,同样记录训练过程数据。

  • 微调后的模型保存到‘GPT_weights_v2’文件夹

  • 配置记录:

train.log

2024-10-21 23:48:33,030	XXX INFO	{'train': {'log_interval': 100, 'eval_interval': 500, 'seed': 1234, 'epochs': 2, 'learning_rate': 0.0001, 'betas': [0.8, 0.99], 'eps': 1e-09, 'batch_size': 6, 'fp16_run': False, 'lr_decay': 0.999875, 'segment_size': 20480, 'init_lr_ratio': 1, 'warmup_epochs': 0, 'c_mel': 45, 'c_kl': 1.0, 'text_low_lr_rate': 0.4, 'pretrained_s2G': 'GPT_SoVITS/pretrained_models/gsv-v2final-pretrained/s2G2333k.pth', 'pretrained_s2D': 'GPT_SoVITS/pretrained_models/gsv-v2final-pretrained/s2D2333k.pth', 'if_save_latest': True, 'if_save_every_weights': True, 'save_every_epoch': 4, 'gpu_numbers': '0'}, 'data': {'max_wav_value': 32768.0, 'sampling_rate': 32000, 'filter_length': 2048, 'hop_length': 640, 'win_length': 2048, 'n_mel_channels': 128, 'mel_fmin': 0.0, 'mel_fmax': None, 'add_blank': True, 'n_speakers': 300, 'cleaned_text': True, 'exp_dir': 'logs/xxx'}, 'model': {'inter_channels': 192, 'hidden_channels': 192, 'filter_channels': 768, 'n_heads': 2, 'n_layers': 6, 'kernel_size': 3, 'p_dropout': 0.1, 'resblock': '1', 'resblock_kernel_sizes': [3, 7, 11], 'resblock_dilation_sizes': [[1, 3, 5], [1, 3, 5], [1, 3, 5]], 'upsample_rates': [10, 8, 2, 2, 2], 'upsample_initial_channel': 512, 'upsample_kernel_sizes': [16, 16, 8, 2, 2], 'n_layers_q': 3, 'use_spectral_norm': False, 'gin_channels': 512, 'semantic_frame_rate': '25hz', 'freeze_quantizer': True, 'version': 'v2'}, 's2_ckpt_dir': 'logs/xxx', 'content_module': 'cnhubert', 'save_weight_dir': 'SoVITS_weights_v2', 'name': 'xxx', 'version': 'v2', 'pretrain': None, 'resume_step': None}
2024-10-04 17:02:30,480	xxx01	INFO	loaded pretrained GPT_SoVITS/pretrained_models/gsv-v2final-pretrained/s2G2333k.pth
2024-10-04 17:02:30,697	xxx01	INFO	loaded pretrained GPT_SoVITS/pretrained_models/gsv-v2final-pretrained/s2D2333k.pth
2024-10-04 17:03:03,571	xxx01	INFO	Train Epoch: 1 [0%]
2024-10-04 17:03:03,571	xxx01	INFO	[2.700843572616577, 2.197847366333008, 5.394582748413086, 18.876893997192383, 0.0, 2.0498788356781006, 0, 9.99875e-05]
2024-10-04 17:03:08,853	xxx01	INFO	====> Epoch: 1
2024-10-04 17:03:14,537	xxx01	INFO	====> Epoch: 2
2024-10-04 17:03:19,520	xxx01	INFO	====> Epoch: 3
2024-10-04 17:03:24,553	xxx01	INFO	Saving model and optimizer state at iteration 4 to logs/yc01/logs_s2\G_233333333333.pth
2024-10-04 17:03:26,369	xxx01	INFO	Saving model and optimizer state at iteration 4 to logs/yc01/logs_s2\D_233333333333.pth
2024-10-04 17:03:32,288	xxx01	INFO	saving ckpt xxx01_e4:Success.
  • config.json
{"train": {"log_interval": 100, "eval_interval": 500, "seed": 1234, "epochs": 2, "learning_rate": 0.0001, "betas": [0.8, 0.99], "eps": 1e-09, "batch_size": 6, "fp16_run": false, "lr_decay": 0.999875, "segment_size": 20480, "init_lr_ratio": 1, "warmup_epochs": 0, "c_mel": 45, "c_kl": 1.0, "text_low_lr_rate": 0.4, "pretrained_s2G": "GPT_SoVITS/pretrained_models/gsv-v2final-pretrained/s2G2333k.pth", "pretrained_s2D": "GPT_SoVITS/pretrained_models/gsv-v2final-pretrained/s2D2333k.pth", "if_save_latest": true, "if_save_every_weights": true, "save_every_epoch": 4, "gpu_numbers": "0"}, "data": {"max_wav_value": 32768.0, "sampling_rate": 32000, "filter_length": 2048, "hop_length": 640, "win_length": 2048, "n_mel_channels": 128, "mel_fmin": 0.0, "mel_fmax": null, "add_blank": true, "n_speakers": 300, "cleaned_text": true, "exp_dir": "logs/xxx"}, "model": {"inter_channels": 192, "hidden_channels": 192, "filter_channels": 768, "n_heads": 2, "n_layers": 6, "kernel_size": 3, "p_dropout": 0.1, "resblock": "1", "resblock_kernel_sizes": [3, 7, 11], "resblock_dilation_sizes": [[1, 3, 5], [1, 3, 5], [1, 3, 5]], "upsample_rates": [10, 8, 2, 2, 2], "upsample_initial_channel": 512, "upsample_kernel_sizes": [16, 16, 8, 2, 2], "n_layers_q": 3, "use_spectral_norm": false, "gin_channels": 512, "semantic_frame_rate": "25hz", "freeze_quantizer": true, "version": "v2"}, "s2_ckpt_dir": "logs/xxx", "content_module": "cnhubert", "save_weight_dir": "SoVITS_weights_v2", "name": "xxx", "version": "v2"}
  • tmp_s2.json
{"train": {"log_interval": 100, "eval_interval": 500, "seed": 1234, "epochs": 2, "learning_rate": 0.0001, "betas": [0.8, 0.99], "eps": 1e-09, "batch_size": 6, "fp16_run": false, "lr_decay": 0.999875, "segment_size": 20480, "init_lr_ratio": 1, "warmup_epochs": 0, "c_mel": 45, "c_kl": 1.0, "text_low_lr_rate": 0.4, "pretrained_s2G": "GPT_SoVITS/pretrained_models/gsv-v2final-pretrained/s2G2333k.pth", "pretrained_s2D": "GPT_SoVITS/pretrained_models/gsv-v2final-pretrained/s2D2333k.pth", "if_save_latest": false, "if_save_every_weights": true, "save_every_epoch": 2, "gpu_numbers": "0"}, "data": {"max_wav_value": 32768.0, "sampling_rate": 32000, "filter_length": 2048, "hop_length": 640, "win_length": 2048, "n_mel_channels": 128, "mel_fmin": 0.0, "mel_fmax": null, "add_blank": true, "n_speakers": 300, "cleaned_text": true, "exp_dir": "logs/wmd"}, "model": {"inter_channels": 192, "hidden_channels": 192, "filter_channels": 768, "n_heads": 2, "n_layers": 6, "kernel_size": 3, "p_dropout": 0.1, "resblock": "1", "resblock_kernel_sizes": [3, 7, 11], "resblock_dilation_sizes": [[1, 3, 5], [1, 3, 5], [1, 3, 5]], "upsample_rates": [10, 8, 2, 2, 2], "upsample_initial_channel": 512, "upsample_kernel_sizes": [16, 16, 8, 2, 2], "n_layers_q": 3, "use_spectral_norm": false, "gin_channels": 512, "semantic_frame_rate": "25hz", "freeze_quantizer": true, "version": "v2"}, "s2_ckpt_dir": "logs/xxx", "content_module": "cnhubert", "save_weight_dir": "SoVITS_weights_v2", "name": “xxx”, "version": "v2"}

以上3个文件的内容是冗余的,配置信息的参数一致, 只是‘train.log’会记录微调时命令行的输出。

生成文件后,s2_train.py首先加载VITS预训练模型,之后训练设置的epoch数。

2.2执行GPT训练

这一步和上一步时类似,执行s2_train.py文件,微调后的模型保存到‘SoVITS_weights_v2’

3.语音合成

这一步位置在 位置在 <<1-GPT-SoVITS-tts>>下的<<1C-推理>>,界面如下:

在这里插入图片描述

  • 选择预训练

    • GPT模型列表选择

    • SoVITS模型列表选择

  • 开启推理界面

点击开启TTS推理WebUi选项,就会弹出推理节目

这里执行的是’inference_webui.py’ 或 ‘inference_webui_fast.py’文件

4.推理界面(需要打开)

这里可以传一个参考音频,并填入对应语意文本,模型训练够好的话(数据+epoch够多),也可以不传。

界面如下:

在这里插入图片描述

输出的语音就是克隆的声音了,由于版本还在更新,项目组可能后去还会更新改动页面和功能,因此这里只是大致流程。

Reference

  • https://github.com/yangdongchao/SoundStorm/blob/master/soundstorm/s1/AR/models/t2s_model.py
  • https://google-research.github.io/seanet/soundstorm/examples/

相关文章:

GPT-Sovits-2-微调模型

1. 大致步骤 上一步整理完数据集后&#xff0c;此步输入数据, 微调2个模型VITS和GPT&#xff0c;位置在 <<1-GPT-SoVITS-tts>>下的<<1B-微调训练>> 页面的两个按钮分别执行两个文件: <./GPT_SoVITS/s2_train.py> 这一步微调VITS的预训练模型…...

【数据结构 | PTA】懂蛇语

懂蛇语 在《一年一度喜剧大赛》第二季中有一部作品叫《警察和我之蛇我其谁》&#xff0c;其中“毒蛇帮”内部用了一种加密语言&#xff0c;称为“蛇语”。蛇语的规则是&#xff0c;在说一句话 A 时&#xff0c;首先提取 A 的每个字的首字母&#xff0c;然后把整句话替换为另一…...

Python——自动化发送邮件

在数字化时代&#xff0c;电子邮件是商务沟通和个人联络的重要工具。自动化邮件发送可以节省时间&#xff0c;提高效率。Python&#xff0c;作为一种强大且灵活的编程语言&#xff0c;提供了多种库来支持邮件的自动化发送。本文将详细介绍如何使用Python的smtplib和email库来编…...

MTKLauncher_布局页面分析

文章目录 前言遇到的困难点针对性解决困难 需求相关资料Launcher3 源码 目录简单介绍Launcher3 简介及页面布局分析UI整体架构数据加载布局加载布局加载核心思想device_profiles.xml 加载InvariantDeviceProfileinitGrid(context, gridName)getPredefinedDeviceProfilesinvDist…...

C#实现隐藏和显示任务栏

实现步骤 为了能够控制Windows任务栏&#xff0c;我们需要利用Windows API提供的功能。具体来说&#xff0c;我们会使用到user32.dll中的两个函数&#xff1a;FindWindow和ShowWindow。这两个函数可以帮助我们找到任务栏窗口&#xff0c;并对其执行显示或隐藏的操作 引入命名空…...

基于springboot+vue实现的公司财务管理系统(源码+L文+ppt)4-102

基于springbootvue实现的公司财务管理系统&#xff08;源码L文ppt&#xff09;4-102 摘要 本系统是基于SpringBoot框架开发的公司财务管理系统,该系统包含固定资产管理、资产申领管理、资产采购管理、员工工资管理等功能。公司财务管理系统是一种帮助公司进行有效资金管理、会…...

rnn/lstm

tip&#xff1a;本人比较小白&#xff0c;看到july大佬的文章受益匪浅&#xff0c;现在其文章基础上加上自己的归纳、理解&#xff0c;以及gpt的答疑&#xff0c;如果有侵权会删。 july大佬文章来源&#xff1a;如何从RNN起步&#xff0c;一步一步通俗理解LSTM_rnn lstm-CSDN博…...

袋鼠云产品功能更新报告12期|让数据资产管理更高效

本期&#xff0c;我们更新和优化了数据资产平台相关功能&#xff0c;为您提供更高效的产品能力。以下为第12期袋鼠云产品功能更新报告&#xff0c;请继续阅读。 一、【元数据】重点更新 &#xff5c;01 元数据管理优化&#xff0c;支持配置表生命周期 之前系统中缺少一个可以…...

MATLAB——入门知识

内容源于b站清风数学建模 目录 1.帮助文档 2.注释 3.特殊字符 4.设置MATLAB数值显示格式 4.1.临时更改 4.2.永久改 5.常用函数 6.易错点 1.帮助文档 doc sum help sum edit sum 2.注释 ctrl R/T 3.特殊字符 4.设置MATLAB数值显示格式 4.1.临时更改 format lon…...

C#从零开始学习(用户界面)(unity Lab4)

这是书本中第四个unity Lab 在这次实验中,将学习如何搭建一个开始界面 分数系统 点击球,会增加分数 public void ClickOnBall(){Score;}在OneBallBehaviour类添加下列方法 void OnMouseDown(){GameController controller Camera.main.GetComponent<GameController>();…...

Axure PR 9 多级下拉清除选择器 设计交互

大家好&#xff0c;我是大明同学。 Axure选择器是一种在交互设计中常用的组件&#xff0c;这期内容&#xff0c;我们来探讨Axure中选择器设计与交互技巧。 OK&#xff0c;这期内容正式开始 下拉列表选择输入框元件 创建选择输入框所需的元件 1.在元件库中拖出一个矩形元件。…...

分布式项目pom配置

1. 父项目打包方式为 pom <packaging>pom</packaging> 2. 父项目版本配置 <properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncod…...

2. Flink快速上手

文章目录 1. 环境准备1.1 系统环境1.2 安装配置Java 8和Scala 2.121.3 使用集成开发环境IntelliJ IDEA1.4 安装插件2. 创建项目2.1 创建工程2.1.1 创建Maven项目2.1.2 设置项目基本信息2.1.3 生成项目基本框架2.2 添加项目依赖2.2.1 添加Flink相关依赖2.2.2 添加slf4j-nop依赖2…...

Java-I/O框架06:常见字符编码、字符流抽象类

视频链接&#xff1a;16.16 字符流抽象类_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Tz4y1X7H7?spm_id_from333.788.videopod.episodes&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5&p16 1.常见字符编码 IOS-8859-1收录了除ASCII外&#xff0c;还包括西欧…...

计算机网络-MSTP的基础概念

前面我们大致了解了MSTP的由来&#xff0c;是为了解决STP/RSTP只有一根生成树导致的VLAN流量负载分担与次优路径问题&#xff0c;了解MSTP采用实例映射VLAN的方式实现多实例生成树&#xff0c;MSTP有很多的理论概念需要知道&#xff0c;其实与其它的知识一样理论复杂配置还好的…...

P1037 [NOIP2002 普及组] 产生数

[NOIP2002 普及组] 产生数 题目描述 给出一个整数 n n n 和 k k k 个变换规则。 规则&#xff1a; 一位数可变换成另一个一位数。规则的右部不能为零。 例如&#xff1a; n 234 , k 2 n234,k2 n234,k2。有以下两个规则&#xff1a; 2 ⟶ 5 2\longrightarrow 5 2⟶5。 …...

【分布式知识】分布式对象存储组件-Minio

文章目录 什么是minio核心特点&#xff1a;使用场景&#xff1a;开发者工具&#xff1a;社区和支持&#xff1a; 核心概念什么是对象存储&#xff1f;MinIO 如何确定对对象的访问权限&#xff1f;我可以在存储桶内按文件夹结构组织对象吗&#xff1f;如何备份和恢复 MinIO 上的…...

跨平台开发支付组件,实现支付宝支付

效果图&#xff1a; custom-payment &#xff1a; 在生成预付订单之后页面中需要弹出一个弹层&#xff0c;弹层中展示的内容为支付方式&#xff08;渠道&#xff09;&#xff0c;由用户选择一种支付方式进行支付。 该弹层组件是以扩展组件 uni-popup 为核心的&#xff0c;关于…...

API 接口:为电商行业高效发展注入强劲动力

一、动力之源&#xff1a;API 接口在电商中的角色剖析 在电商行业的广袤版图中&#xff0c;API 接口宛如一台强劲的发动机&#xff0c;是推动其高效发展的核心动力来源。它不再仅仅是一个技术工具&#xff0c;而是成为了连接电商各个环节的 “神经系统”&#xff0c;使得信息、…...

Golang的跨平台开发

Golang的跨平台开发 一、Golang跨平台开发概述 语言是一种开源的编程语言&#xff0c;由Google开发&#xff0c;广泛应用于云计算和网络编程领域。Golang具有并发性好、性能优异、内存管理自动化等特点&#xff0c;因此备受开发者青睐。其中&#xff0c;Golang的跨平台特性使得…...

txt数据转为pdf格式并使用base64解密输出

使用该方法请注意&#xff1a;因为此方法使用了base64解密&#xff0c;需要保证txt中的数据首先用了base64加密&#xff0c;如果只是普通的二进制数据&#xff0c;该方法并不适用 第一步 <dependency><groupId>org.apache.pdfbox</groupId><artifactId&…...

鸿蒙开发-状态+判断+循环

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;鸿蒙开发篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来鸿蒙开发篇专栏内容:鸿蒙开发-状态判断循环 目录 1.状态1原始类型 2.引用类型 2.判断 3.循环 1.基本使用…...

基于SSM网上招投标管理系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;招标者管理&#xff0c;专家管理&#xff0c;项目分类管理&#xff0c;招标项目管理&#xff0c;系统管理 前台账号功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0…...

「C/C++」C++ 设计模式 之 单例模式(Singleton)

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「C/C」C/C程序设计&#x1f4da;全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasoli…...

WPF的行为(Behavior)

WPF&#xff08;Windows Presentation Foundation&#xff09;是微软.NET框架中用于构建Windows客户端应用程序的UI框架。它提供了一种声明性的方式来定义用户界面&#xff0c;并且支持MVVM&#xff08;Model-View-ViewModel&#xff09;设计模式。 在WPF中&#xff0c;“行为…...

SpringBoot框架:闲一品交易平台的新突破

摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;闲一品交易平台当然也不能排除在外。闲一品交易平台是以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&…...

关于AI绘画 | Stable Diffusion 技术专栏推荐文章

AI绘画 | Stable Diffusion 技术专栏推荐文章 引言 随着人工智能技术的发展&#xff0c;AI绘画逐渐成为艺术创作的新潮流。在众多的AI绘画工具中&#xff0c;Stable Diffusion因其强大的功能和易用性受到了广泛的关注。本文将详细介绍由“泰山AI”创建的技术专栏“AI绘画 | S…...

Oracle 第13章:事务处理

在数据库管理系统&#xff08;DBMS&#xff09;中&#xff0c;事务处理是一个非常重要的概念&#xff0c;它确保了数据的一致性和可靠性。下面我将解释事务的概念与特性&#xff0c;并讨论如何进行事务管理。 事务的概念与特性 事务是指作为一个工作单元的一组有序的SQL操作。…...

String的长度有限,而我对你的思念却无限延伸

公主请阅 1. 为什么学习string类&#xff1f;2. string类的常用接口2.1 string类对象的常见构造2.1.1 string 2.2 operator[]2.3 迭代器2.4 auto自动推导数据类型2.5 范围for2.6 迭代器第二层2.7 size和length获取字符串的长度2.8 max_size 获取这个字符串能设置的最大长度2.9 …...

二叉树的后序遍历

给你一棵二叉树的根节点 root &#xff0c;返回其节点值的 后序遍历 。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[3,2,1] 解释&#xff1a; 示例 2&#xff1a; 输入&#xff1a;root [1,2,3,4,5,null,8,null,null,6,7,9] 输出&#xf…...

上传文档到网站上怎么做/用广州seo推广获精准访问量

前言 多态&#xff1a;指的是一类事物有多种形态&#xff0c;也就是一个对象的类型&#xff0c;动物有多种形态&#xff1a;人&#xff0c;狗&#xff0c;猪。 多态性&#xff1a;是指在不考虑实例类型的情况下都可以使用实例。 封装&#xff1a;面向对象的思想本身就是一种封装…...

保定手机网站制作/病毒式营销的案例

HQChart使用教程74-使用快速创建数字币深度图深度图效果图demo例子demo地址代码Option项说明TypeSymbolIsAutoUpdateAutoUpdateFrequencyBorderMaxVolRateCorssCursorInfoHPenTypeVPenTypeIsShowTooltipFrameSplitCountXSplitCountIsShowLeftTextIsShowRightTextXLineTypeYLine…...

dede网站地图位置/关键词排名代发

2019独角兽企业重金招聘Python工程师标准>>> 其实微博是个好东西&#xff0c;关注一些技术博主之后&#xff0c;你不用再逛好多论坛了&#xff0c;因为一些很好的文章微博会告诉你&#xff0c;最近看到酷勤网推荐的一篇文章《30个提 高Web程序执行效率的好经验》&am…...

flashfxp怎么做网站/sem是什么方法

本文主要介绍一下struct转json后键名首字母大小写的问题 &#xff11;、结构体里的字段首字母必须大写&#xff0c;否则无法正常解析 例&#xff1a; type Person struct { Name string      //Name字段首字母大写 age int       //age字段首字母…...

网站备案 论坛/百度云服务器官网

root-tools 项目地址&#xff1a;root-toolsRootToolsNeo 正式发布啦~ RootTools 是一款专注于给 root 后的用户提供方便的软件。主要提供&#xff1a; 应用冻结 不删除系统内的应用&#xff0c;而是将其冻结&#xff0c;在需要时可以解冻&#xff0c;但是别乱来哦&#xff0c;…...

做建筑钢材的b2b网站有哪些/游戏代理300元一天

目录 负载均衡配置:修改Nginx配置文件 Nginx负载均衡策略优化: 1.轮询(默认方式) 2.权重:通过weight参数在轮询策略的基础上设置被访问的几率. (各节点机器硬件配置不一致时可使用) 3.ip_hash(适合有状态的服务):指定负载均衡按照客户端ip进行分配,此策略确 保用一个ip客户端…...