Diffusion-VITS:VITS与Grad-TTS的融合

news2024/12/23 11:00:50

Grad-TTS的核心思想:把diffusion当做一个postnet(或者Plug-In)用于特征增强。因此,它可以是一种通用模块应用于任何网络中,典型的作为FastSpeech2的后处理模块。这里,作者以VITS的SVC场景为例,提供Grad-TTS融合进VITS的思想和代码。

思想:

1,训练原始VITS模型

具体实现,略~~~

2,训练插件Diffusion模型

    1)冻结原始VITS模型所有参数

    2)训练Diffusion模型学习Flow推理结果与wave后验编码结果Z之间的noise

3,Diffusion可以减少Flow推理结果与真值之间的Gap,可以减缓过平滑问题

代码:

VITS歌声转换中实现Plug-In-Diffsuion的代码(语音合成同样适用):

https://github.com/PlayVoice/so-vits-svc-5.0/tree/plug-in-diffusion

满足MIT协议下,该代码的使用无限制

下面是架构原理图,与操作步骤

Plug-in diffusion based on Grad-TTS from HUAWEI Noah's Ark Lab

    

Base framework ~~~

 Plug-In-Diffusion

Notices

It looks like it's useless, but it seems to be somewhat useful

好像没啥用,好像有点用

训练

  1. Complete the training of the bigvgan-mix-v2 master model

    完成 bigvgan-mix-v2 主模型的训练

  2. Create a working path and pull the branch codes: different from the bigvgan-mix-v2

    创建工作路径,拉取分支代码:与 bigvgan-mix-v2 不同

  3.  install additional dependencies for diffusion:

    为 diffusion 安装额外依赖:

    pip install einops

  4. Copy bigvgan-mix-v2 training data data_svc and files to the current working directory: same as bigvgan-mix-v2 training data

    拷贝 bigvgan-mix-v2 的训练数据 data_svc 与 files 到当前工作目录:与 bigvgan-mix-v2 训练数据一样

  5. Specify the master model path in configs/base.yaml:

    在 configs/base.yaml 中指定主模型路径:

    pretrain: "bigvgan-mix-v2/chkpt/sovits5.0/sovits5.0_0500.pt"

  6. Start train

    启动训练

python svc_trainer.py --config configs/base.yaml --name plug

Check the log to be sure: your master model is loaded


python svc_trainer.py --config configs/base.yaml --name plug
Batch size per GPU : 8
----------10----------
2023-09-06 06:31:23,136 - INFO - Start from 32k pretrain model: sovits5.0_1100. pt
plug.estimator.spk_mlp.0.weight is not in the checkpoint
plug.estimator.spk_mlp.0.bias is not in the checkpoint
plug.estimator.spk_mlp.2.weight is not in the checkpoint
plug.estimator.spk_mlp.2.bias is not in the checkpoint
plug.estimator.mlp.0.weight is not in the checkpoint
plug.estimator.mlp.0.bias is not in the checkpoint
plug.estimator.mlp.2.weight is not in the checkpoint
plug.estimator.mlp.2.bias is not in the checkpoint
plug.estimator.downs.0.0.mlp.1.weight is not in the checkpoint
plug.estimator.downs.0.0.mlp.1.bias is not in the checkpoint
plug.estimator.downs.0.0.block1.block.0.weight is not in the checkpoint
plug.estimator.downs.0.0.block1.block.0.bias is not in the checkpoint

Inference

python svc_inference.py --config configs/base.yaml --model chkpt/plug/plug_***.pt --spk ./data_svc/singer/your_singer.spk.npy --wave test.wav

svc_inference.py has a small changes from bigvgan-mix-v2

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

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

相关文章

【LeetCode刷题篇零】一些基础算法知识和前置技能(上)

排序算法 O(N^2)的排序算法:冒泡、选择、插入 冒泡排序 冒泡的核心是两两比较,大数下沉,小数上浮,比较的轮数是数组的长度 N,每一轮比较的次数为 N - 当前轮的索引: 外层循环控制轮数 round: [1&#xf…

Python之线程(二)

一、线程同步和互斥锁 同一个资源,多人想用?排队啊! 现实生活中,我们会遇到“同一个资源,多个人都想使用”的问题。 比如:教室里,只有一台电脑,多个人都想使用。天然的解决办法就是,在电脑旁边,大家排队。前一人使用完后,后一人再使用。再比如,上厕所排队。 二、线…

ABB机器人6700系列更换SMB电池的具体方法和步骤

ABB机器人6700系列更换SMB电池的具体方法和步骤 前提: 当需要更换电池时,会显示低电量警告“38213 Battery charge low(电池电量低)” 注意事项: 为了避免机器人不同步,在保持机器人控制柜上电的情况下进行电池的更换,否则可能会导致机器人丢失位置数据。 SMB电池的具体…

AP2813平均电流型双路降压恒流驱动器

产品描述 AP2813 是一款双路降压恒流驱动器,高效率、外围简单、内置功率管,适用于 5-80V 输入的高精度降压 LED 恒流驱动芯片。内置功率管输出功率可达12W,电流 1.2A。AP2813 一路直亮,另外一路通过 MODE1 切换全亮,爆闪。AP281…

ERP辅助报价助力提高效率和准确性

一、ERP辅助报价的定义: ERP辅助报价是指通过企业资源计划系统提供的功能和工具,辅助企业进行报价流程的管理和执行。它涵盖了报价数据的收集、计算、分析和生成报价文件的全过程,以提高报价的准确性、效率和一致性。 二、ERP辅助报价的重要…

【2023年11月第四版教材】第12章《质量管理》(第二部分)

第12章《质量管理》(第二部分) 4 规划质量管理4.1 数据收集★★★4.2 数据分析★★★4.3 数据表现★★★4.4 质量管理计划★★★4.5 质量测量指标★★★ (22下35) 4 规划质量管理 组过程输入工具和技术输出计划1.规划质量管理1.项…

第一张 LVS负载均衡集群

一、LVS群集简介 1.群集的含义和应用场景 群集是为解决某个特定问题将多台计算机组合起来形成的单个系统,由多台主机构成,但对外只表现为一个整体,相当于一台大型计算机提供服务。 互联网应用中,随着站点对硬件性能、响应…

基于SSM的共享客栈管理系统的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

50etf期权的隐含波动率是什么意思?最通俗易懂的解释!

上证50ETF期权波动率是指衡量上证50ETF期权价格变动程度的指标,接触过期权的人应该都知道50etf期权的隐含波动率这个词。这是一个神秘的概念,初学者不容易理解,下文介绍50etf期权的隐含波动率是什么意思?隐波到底是什么&#xff1…

一分钟学会自制产品图册

​想自己制作精美的产品图册吗? 只需要一分钟! 首先,你需要一款简单的制作工具,比如:FLBOOK在线制作电子杂志平台 1.点击开始创作选择套用模板制作 2.点击立即使用进入编辑页面 3.进入编辑页面后制作产品册时可以添加…

如何在 Vue.js 和 Nuxt.js 之间做出选择?

开篇 今天看了一位国外大佬的文章,主要是他对在项目中如何选择 Vue.js 或 Nuxt.js 的看法,欢迎大家在评论区发表看法,以下内容是他关于这个问题看法的整理,由于翻译水平有限,欢迎大家指正。 国外大佬的看法 Vue.js在开…

5.5 【MySQL】Page Header(页面头部)

在页中定义了一个叫Page Header的部分,它是页结构的第二部分,这个部分占用固定的56个字节,专门存储各种状态信息,具体如下: 名称 占用空间大小 描述 PAGE_N_DIR_SLOTS 2 字节 在页目录中的槽数量 PAGE_HEAP_TOP …

MySQL数据库——存储引擎(2)-存储引擎特点(InnoDB、MyISAM、Memory)、存储引擎选择

目录 存储引擎特点 InnoDB 介绍 特点 文件 逻辑存储结构 MyISAM 介绍 特点 文件 Memory 介绍 特点 文件 区别及特点 存储引擎选择 存储引擎特点 上面我们介绍了什么是存储引擎,以及如何在建表时如何指定存储引擎,接下来我们就来介绍比较…

【脑机接口】基于电子皮肤的先进可穿戴健康管理技术

第一作者:Vibhas Chugh 通讯单位:佛罗里达理工大学,印度摩哈利纳米科学与技术研究所. DOI: 10.1016/j.crbiot.2023.100129 背景介绍 人类的皮肤是与外界环境隔离的天然屏障,它具有感知各种感觉、温度变化和触摸压力的能力。皮…

python3在虚拟环境实用vscode调试错误输出ModuleNotFoundError: No module named ‘django‘解决方法

Exception has occurred: ImportError Couldnt import Django. Are you sure its installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?File "/data/mountain-backend/src/manage.py", line 8, i…

科普|含铊废水的来源及处理工艺介绍

铊(Tl)是一种银白色的金属,由于具有良好的延展性和导电性,被广泛用于电子、军工、航天、化工、冶金等众多领域。但在自然环境中含量很低,常在铅、铁、锌、铜等金属硫化矿中伴生,还以有机物结合形式存在于煤田和石油中。 铊的对于人…

数字化转型背景下企业知识管理能力提升路径

近年来,科技不断进步,颠覆性技术(例如 5G、云计算、物联网、大数据分析和人工智能等)正在重新定义企业如何管理项目和运营效率。知识管理体系亦需要随着科技的进步而改变,以适应新的数字时代环境,并且高效知…

【算法题】1462. 课程表 IV

题目: 你总共需要上 numCourses 门课,课程编号依次为 0 到 numCourses-1 。你会得到一个数组 prerequisite ,其中 prerequisites[i] [ai, bi] 表示如果你想选 bi 课程,你 必须 先选 ai 课程。 有的课会有直接的先修课程&#x…

Python从零到一构建项目

随着互联网的发展,网络上的信息量急剧增长,而获取、整理和分析这些信息对于很多人来说是一项艰巨的任务。而Python作为一种功能强大的编程语言,它的爬虫能力使得我们能够自动化地从网页中获取数据,大大提高了效率。本文将分享如何…

tkinter树形图组件

文章目录 初步回调函数绑定滚动条 初步 Treeview是ttk中的树形表组件,功能十分强大,非常适用于系统路径的表达。为了知道属性图到底是什么,下面先做个最简单的树形图 其代码如下 import tkinter as tk from tkinter import ttkdct {"…