【GPT-SOVITS-03】SOVITS 模块-生成模型解析
说明:该系列文章从本人知乎账号迁入,主要原因是知乎图片附件过于模糊。
知乎专栏地址:
语音生成专栏
系列文章地址:
【GPT-SOVITS-01】源码梳理
【GPT-SOVITS-02】GPT模块解析
【GPT-SOVITS-03】SOVITS 模块-生成模型解析
【GPT-SOVITS-04】SOVITS 模块-鉴别模型解析
【GPT-SOVITS-05】SOVITS 模块-残差量化解析
【GPT-SOVITS-06】特征工程-HuBert原理
1.概述
SOVIT 模块的主要功能是生成最终的音频文件。
GPT-SOVITS的核心与SOVITS差别不大,仍然是分了两个部分:
- 基于 VAE + FLOW 的生成器,源代码为 SynthesizerTrn
- 基于多尺度分类器的鉴别器,源代码为 SynthesizerTrn
针对鉴别器相较于SOVITS5做了一些简化,主要的差异是在在生成模型处引入了残差量化层。
在训练时进入先验编码器的是经过残差量化层的 quatized 数据。
在推理时,用的是AR模块推理出的 code,然后用code直接生成 quatized 数据,再进入先验编码器。
训练所涉及特征包括:
2.训练流程
- 如概述所注,在训练时SSL特征经过残差量化层中会产生量化编码 code 和数据 quatized。
- 这个 code 也会作为 AR,即GPT模块训练的特征
- 在推理时,这个code 就由 GPT 模块生成
- 损失函数如下:
y_d_hat_r, y_d_hat_g, fmap_r, fmap_g = net_d(y, y_hat)
with autocast(enabled=False):loss_mel = F.l1_loss(y_mel, y_hat_mel) * hps.train.c_melloss_kl = kl_loss(z_p, logs_q, m_p, logs_p, z_mask) * hps.train.c_klloss_fm = feature_loss(fmap_r, fmap_g)loss_gen, losses_gen = generator_loss(y_d_hat_g)loss_gen_all = loss_gen + loss_fm + loss_mel + kl_ssl * 1 + loss_kl
3.推理流程
推理时直接通过先验编码器,通过FLOW的逆,进入解码器后输出推理音频
4.调试代码参考
import os,sys
import json
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from torch.utils.data import DataLoaderfrom vof.vits.data_utils import (TextAudioSpeakerLoader,TextAudioSpeakerCollate,DistributedBucketSampler,
)
from vof.vits.models import SynthesizerTrn
from vof.script.utils import HParamsnow_dir = os.getcwd()
root_dir = os.path.dirname(now_dir)
prj_name = 'project01' # 项目名称
prj_dir = root_dir + '/res/' + prj_name + '/'with open(root_dir + '/res/configs/s2.json') as f:data = f.read()data = json.loads(data)# 新增其他参数
s2_dir = prj_dir + 'logs' # gpt 训练用目录
os.makedirs("%s/logs_s2" % (s2_dir), exist_ok=True)data["train"]["batch_size"] = 3
data["train"]["epochs"] = 15
data["train"]["text_low_lr_rate"] = 0.4
data["train"]["pretrained_s2G"] = root_dir + '/res/pretrained_models/s2G488k.pth'
data["train"]["pretrained_s2D"] = root_dir + '/res/pretrained_models/s2D488k.pth'
data["train"]["if_save_latest"] = True
data["train"]["if_save_every_weights"] = True
data["train"]["save_every_epoch"] = 5
data["train"]["gpu_numbers"] = 0
data["data"]["exp_dir"] = data["s2_ckpt_dir"] = s2_dir
data["save_weight_dir"] = root_dir + '/res/weight/sovits'
data["name"] = prj_name
data['exp_dir'] = s2_dirhps = HParams(**data)
print(hps)
"""
self.path2 = "%s/2-name2text-0.txt" % exp_dir
self.path4 = "%s/4-cnhubert" % exp_dir
self.path5 = "%s/5-wav32k" % exp_dir
"""
train_dataset = TextAudioSpeakerLoader(hps.data)
"""
ssl hubert 特征 [1,768,195]
spec [1025,195]
wav [1,124800]
text [14,]
"""
train_sampler = DistributedBucketSampler(train_dataset,hps.train.batch_size,[32,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,],num_replicas=1,rank=0,shuffle=True,
)
collate_fn = TextAudioSpeakerCollate()
train_loader = DataLoader(train_dataset,batch_size=1,shuffle=False,pin_memory=True,collate_fn=collate_fn,batch_sampler=train_sampler
)def _model_forward(ssl, y, y_lengths, text, text_lengths):net_g = SynthesizerTrn(hps.data.filter_length // 2 + 1,hps.train.segment_size // hps.data.hop_length,n_speakers=hps.data.n_speakers,**hps.model,)net_g.forward(ssl, y, y_lengths, text, text_lengths)for data in train_loader:ssl_padded = data[0]ssl_lengths = data[1]spec_padded = data[2]spec_lengths = data[3]wav_padded = data[4]wav_lengths = data[5]text_padded = data[6]text_lengths = data[7]_model_forward(ssl_padded, spec_padded, spec_lengths, text_padded, text_lengths)
相关文章:
【GPT-SOVITS-03】SOVITS 模块-生成模型解析
说明:该系列文章从本人知乎账号迁入,主要原因是知乎图片附件过于模糊。 知乎专栏地址: 语音生成专栏 系列文章地址: 【GPT-SOVITS-01】源码梳理 【GPT-SOVITS-02】GPT模块解析 【GPT-SOVITS-03】SOVITS 模块-生成模型解析 【G…...
2024HVV行动-进军蓝中研判(log4j2、fastjson、Struts2、Shiro)
1、log4j2 特征: 恶意请求中包含 JNDI 协议地址,如"ldap://"、"rmi://"等,被 log4j2 解析为 JNDI 查找。 原理: 在日志输出中,未对字符进行严格的过滤,执行了 JNDI 协议加载的远程恶…...
亮点抢先看!4月16-17日,百度Create大会开设“AI公开课”,大咖带你打造赚钱工具
3月16日,2024百度Create AI开发者大会正式开放售票,嘉宾套票定价399元。据悉,本次大会以“创造未来(Create the Future)”为主题,设有20深度论坛、超30节AI公开课、3000平AI互动体验区和AI音乐节等精彩环节…...
【笔记本清灰/实用经验】荣耀Magicbook14-2020款-R5-4500U-清灰实战
清灰有风险,动手需谨慎,本文只分享本人的清灰过程,对使用它所产生的任何后果不任何负责任 文章目录 背景信息准备阶段工具准备信息收集 正式清灰初始化清灰流程放掉身体的静电(重要)拆笔记本后盖断开电源(重…...
如何写好Stable Diffusion的prompt
Stable Diffusion是一种强大的文本到图像生成模型,其效果在很大程度上取决于输入的提示词(Prompt)。以下是一些关于如何编写有效的Stable Diffusion Prompt的秘诀: 明确描述:尽量清晰地描述你想要的图像内容。使用具体…...
计算机毕业设计 | SpringBoot+vue 移动端社区物业管理系统(附源码+论文)
1, 概述 课题背景 近几年来,随着物业相关的各种信息越来越多,比如报修维修、缴费、车位、访客等信息,对物业管理方面的需求越来越高,我们在工作中越来越多方面需要利用网页端管理系统来进行管理,我们所需…...
玩转C语言——数组初探
一、前言 通过前面的学习,我们已了解C语言的结构变量、分支结构和循环结构。今天,我们一起来认识C语言的另一知识点——数组。先赞后看,养成习惯。 二、数组概念 学习数组,我们要明白数组是什么。在我看来:数组是⼀组…...
Nginx指令配置大全
基本命令 nginx -t 检查配置文件是否有语法错误 nginx -s reload 热加载,重新加载配置文件 nginx -s stop 快速关闭 nginx -s quit 等待工作进程处理完成后关闭配置块介绍 全局块 全局块是默认配置文件从开始到events块之间的…...
富格林:安全出金关注可信操作
富格林悉知,现货黄金投资凭借着诸多优势,成为了热门的投资产品之一,也获得了投资者的追捧。在投资中想要安全盈利出金,投资者一定要沉下心来学习专业知识和技术,这样才能在以后的投资操作中避免亏损,顺畅盈…...
DELETE、TRUNCATE 和 DROP 在MySQL中的区别及使用示例
在MySQL数据库中,DELETE、TRUNCATE TABLE 和 DROP 这三个命令分别适用于不同的数据删除需求,它们在工作原理、应用场景以及特性上有所区别。接下来,我们通过实例演示来明确这三者的不同之处。 DELETE 命令 功能与示例:DELETE 语…...
程序员应该如何选择职业赛道?
程序员选择职业赛道是一个涉及个人兴趣、技能匹配、市场需求和长远发展规划的综合决策过程。以下是一些关键步骤和考虑因素: 自我评估: 技能与专长:分析自己在编程语言、算法、数据结构等方面的现有技能,并思考这些技能更适合前端…...
深入浅出Hive性能优化策略
我们将从基础的HiveQL优化讲起,涵盖数据存储格式选择、数据模型设计、查询执行计划优化等多个方面。会的直接滑到最后看代码和语法。 目录 引言 Hive架构概览 示例1:创建表并加载数据 示例2:优化查询 Hive查询优化 1. 选择适当的文件格…...
利用卷积神经网络进行人脸识别
利用卷积神经网络(Convolutional Neural Networks, CNNs)进行人脸识别是计算机视觉领域的一个热门话题。下面是一个简化的指南,涵盖了从理论基础到实际应用的各个方面,可以作为你博文的基础内容。 理论基础 卷积神经网络简介&am…...
固态硬盘有坏道怎么恢复数据 固态硬盘坏道怎么修复
固态硬盘是一种高速、低噪音、低功耗的存储设备,但是它也有一个致命的问题——坏道。坏道是指存储芯片中的某些存储单元出现了故障,导致数据无法正常读取或写入。如果你的固态硬盘出现了坏道,那么你的数据就有可能会丢失,带来了很大的困扰。那么,固态硬盘有坏道怎么恢复数…...
adobe animate 时间轴找不到编辑多个帧按钮
如题,找了半天,在时间轴上找不到编辑多个帧按钮,导致无法批量处理帧 然后搜索发现原来是有些版本被隐藏了,需要再设置一下 勾选上就好了...
5 亿欧元巨额奖励!法国国防部启动量子初创公司项目
内容来源:量子前哨(ID:Qforepost) 编辑丨王珩 编译/排版丨沛贤 深度好文:800字丨6分钟阅读 据C4ISNET报道,法国国防部采购机构宣布向五家法国量子计算研究初创公司授予合同,用于开发量子计算技…...
Linux:系统初始化,内核优化,性能优化(2)
优化ssh协议 Linux:ssh配置_ssh配置文件-CSDN博客https://blog.csdn.net/w14768855/article/details/131520745?ops_request_misc%257B%2522request%255Fid%2522%253A%2522171068202516800197044705%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fb…...
JS08-DOM节点
DOM节点 查找节点 父节点 通过.parentNode属性可以获得某个元素的父节点,并对其进行操作。例如,隐藏.son元素的父节点。 <div class"father"><div class"son">儿子</div></div><script>let son d…...
2024/3/14打卡棋子(14届蓝桥杯)——差分
标准差分模板 差分——前缀和的逆运算(一维二维)-CSDN博客 题目 小蓝拥有 nn 大小的棋盘,一开始棋盘上全都是白子。 小蓝进行了 m 次操作,每次操作会将棋盘上某个范围内的所有棋子的颜色取反(也就是白色棋子变为黑色࿰…...
A Survey on Multimodal Large Language Models
目录 1. Introduction2. 概述方法多模态指令调优 3.1.1 简介3.1.2 预备知识3.1.3 模态对齐3.1.4 数据3.1.5 模态桥接3.1.6 评估 3.2.多模态情境学习3.3.多模态思维链3.3.1 模态桥接3.3.2 学习范式3.3.3 链配置3.3.4 生成模式3.4.LLMs辅助视觉推理3.4.1 简介3.4.2 训练范式3.4.3…...
Java面向对象编程(高级)一
在Java中,面向对象编程更是核心设计理念之一,为开发者提供了丰富的工具和特性来创建灵活、可扩展的应用程序。 本博客将深入探讨Java面向对象编程的高级特性,包括但不限于多态、继承、封装、抽象类、接口等方面的内容。我们将从实际案例出发…...
1056:点和正方形的关系
【题目描述】 有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断一个给定的点是…...
【iOS】ARC学习
文章目录 前言一、autorelease实现二、苹果的实现三、内存管理的思考方式__strong修饰符取得非自己生成并持有的对象__strong 修饰符的变量之间可以相互赋值类的成员变量也可以使用strong修饰 __weak修饰符循环引用 __unsafe_unretained修饰符什么时候使用__unsafe_unretained …...
数据分析 | Matplotlib
Matplotlib 是 Python 中常用的 2D 绘图库,它能轻松地将数据进行可视化,作出精美的图表。 绘制折线图: import matplotlib.pyplot as plt #时间 x[周一,周二,周三,周四,周五,周六,周日] #能量值 y[61,72,66,79,80,88,85] # 用来设置字体样式…...
mac npm install 很慢或报错
npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to https://registry.npm.taobao.org/pnpm failed, reason: certificate has expired 1、取消ssl验证: npm config set strict-ssl false 修改后一般就可以了,…...
100天精通Python(实用脚本篇)——第118天:基于selenium和ddddocr库实现反反爬策略之验证码识别
文章目录 专栏导读一、前言二、ddddocr库使用说明1. 介绍2. 算法步骤3. 安装4. 参数说明5. 纯数字验证码识别6. 纯英文验证码识别7. 英文数字验证码识别8. 带干扰的验证码识别 三、验证码识别登录代码实战1. 输入账号密码2. 下载验证码3. 识别验证码并登录 书籍推荐 专栏导读 …...
51单片机与ARM单片机的区别
51的MCU与ARM的MCU的区别 51单片机与ARM单片机区别主要体现在以下几个方面: 指令集架构(ISA): 51单片机:基于Intel 8051架构,采用的是CISC(复杂指令集计算机)设计,其指令…...
Android 10.0 mtk平台系统添加公共so库的配置方法
1.前言 在10.0的系统定制化开发中,由于 Android对应用应用的系统库限制越来越严格,上层应用包括(apk、jar包)不能直接引用系统的一些so库了。如果需要使用,只能使用,系统申明的公共库。 如果使用非系统申明的公共库,apk运行后调用该so库时,app会直接挂掉,或者系统开发…...
simulink平面五杆机构运动学仿真
1、内容简介 略 68-可以交流、咨询、答疑 2、内容说明 simulink平面五杆机构运动学仿真 [ 摘 要 ] 以 MATLAB 程序设计语言为平台 , 以平面可调五杆机构为主要研究对象 , 给定机构的尺寸参数 , 列出所 要分析机构的闭环矢量方程 , 使用 MATLAB 软件中 SIMULINK 仿真工…...
【Docker】APISIX Ingress Controller部署
APISIX Ingress Controller环境标准软件基于Bitnami apisix-ingress-controller:构建。当前版本为1.8.0 你可以通过轻云UC部署工具直接安装部署,也可以手动按如下文档操作,该项目已经全面开源,可以从如下环境获取 配置文件地址: https://git…...
网站托管方式/2024年3月份病毒会爆发吗
fastFDS的客户端jar包在maven中心仓库下载的都不好使,所以我自己在网上找了一个. 通过右键项目Build Path --->Configure Build Path.. --->Add External JARS 这样导入的jar包 只存在工作环境当中。 当项目部署到tomcat以后,我们会发现 webapp文…...
日照网站建设电话/西安seo优化公司
图形特效与文字显示 摘要 使用 XNA Framework 设计游戏程序的时候可以利用 SpriteBatch 类别提供的功能显示游戏的内容供用户检视,SpriteBatch 类别提供了丰富的功能协助游戏程序绘制图画和文字,包括对所输出的图画和文字加入特殊的效果,例如…...
嘉兴高端网站建设有限公司/个人免费网站申请注册
Android Studio是谷歌推出一个Android集成开发工具,基于IntelliJ IDEA。它类似于Eclipse ADT,Android Studio 提供了集成的Android开发工具用于开发和调试。那么今天我们就来讲讲在使用Android Studio过程中,常常会使用到的快捷键有哪些&…...
汕头专业网站制作公司/怎么做网络销售
按照图片操作步骤: 第一步: 第二步: 第三步: 第四步: 第五步: 第六步: 第七步: Python也可以这样使用 第八步: 第九步: 解决出现异常,不能…...
WordPress本地可以调出点赞功能吗/宁波seo推荐优化
项目名称brpc-java 是 baidu rpc 的 java 版本实现,支持 baidu rpc、nshead、sofa、hulu、http、stargate、dubbo 等协议。核心功能点支持 baidu rpc 标准协议、sofa 协议、hulu 协议、nsheadprotobuf 协议、httpprotobuf/json 协议、public pbrpc、stargate、dubbo…...
xly000 wordpress/嘉兴百度快照优化排名
1、水果店利润并不是很高 从现在开水果店卖水果的整体利润来说,毛利润一般能在40%左右,纯利润能在20%左右就能活下去,现在水果店多、竞争激烈,保鲜保质期都很短的,位置不好哦和经验不够人多,每天都会出现水…...