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

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

相关推荐
CoderIsArt2 分钟前
三大主流智能体框架解析
人工智能
民乐团扒谱机6 分钟前
【微实验】机器学习之集成学习 GBDT和XGBoost 附 matlab仿真代码 复制即可运行
人工智能·机器学习·matlab·集成学习·xgboost·gbdt·梯度提升树
Coder_Boy_8 分钟前
Deeplearning4j+ Spring Boot 电商用户复购预测案例中相关概念
java·人工智能·spring boot·后端·spring
芷栀夏11 分钟前
CANN ops-math:揭秘异构计算架构下数学算子的低延迟高吞吐优化逻辑
人工智能·深度学习·神经网络·cann
L5434144613 分钟前
告别代码堆砌匠厂架构让你的系统吞吐量翻倍提升
大数据·人工智能·架构·自动化·rpa
孤狼warrior13 分钟前
YOLO目标检测 一千字解析yolo最初的摸样 模型下载,数据集构建及模型训练代码
人工智能·python·深度学习·算法·yolo·目标检测·目标跟踪
凯子坚持 c14 分钟前
构建企业级 AI 工厂:基于 CANN `cann-mlops-suite` 的端到端 MLOps 实战
人工智能
Elwin Wong16 分钟前
浅析OpenClaw:从“贾维斯”梦想看下一代 AI 操作系统的架构演进
人工智能·agent·clawdbot·moltbot·openclaw
Rorsion17 分钟前
PyTorch实现线性回归
人工智能·pytorch·线性回归
AI资源库18 分钟前
OpenClaw:159K Star的开源AI助手正在重新定义“个人AI“的边界
人工智能·语言模型