Code Monkey home page Code Monkey logo

singingvocoders's Introduction

SingingVocoders

A collection of neural vocoders suitable for singing voice synthesis tasks.

English version README_en.md

If you have any questions, please open an issue.

预处理

python process.py --config 配置文件 --num_cpu 并行数量 --strx 1 代表 强制绝对路径 0 代表相对路径

和预处理有关的配置文件项

DataIndexPath: dataX11 # 这个是训练数据 index 的位置预处理会自动生成

valid_set_name: validX # 这个是val index 的名字预处理会自动生成

train_set_name: trainX # 这个是训练的 index 的名字预处理会自动生成

data_input_path: [] # 这个是你的 wav 的输入目录

data_out_path: [] # 这个是你的 npz 的输出目录, 预处理之后的格式是 npz

val_num: 1 # 这个是你要的 val 数量 

例子

data_input_path: ['wav/in1','wav/in2'] # 这个是你的wav的输入目录

data_out_path: ['wav/out1','wav/out2'] # 这个是你的npz的输出目录
val_num: 5 # 这个是你要的 val 数量,预处理的时候会自动抽取文件
# 两个列表里面的路径是一一对应的所以说数量要一样
# 然后预处理的时候会扫描全部的 .wav 文件,包括子文件夹的
# 正常情况下只有这三个要改

离线数据增强

将预处理脚本替换为process_aug.py 并增添配置项

key_aug: false # 表示训练时不进行增强
aug_min: 0.9 # 最小变调倍数
aug_max: 1.4 # 最大变调倍数
aug_num: 1 # 数据增强倍数

即可,注意数据增强可能会损伤音质!

在线数据增强(推荐)

增加配置项,注意使用在线数据增强请使用process.py 脚本,否则会造成离线增强与在线增强叠加

key_aug: true # 表示在训练时进行增强
key_aug_prob: 0.5 # 增强概率
aug_min: 0.9 # 最小变调倍数
aug_max: 1.4 # 最大变调倍数

注意数据增强可能会损伤音质!

训练

python [train.py](train.py) --config 配置文件 --exp_name ckpt名字 --work_dir 工作目录(可选)

导出

python [export_ckpt.py](export_ckpt.py) --ckpt_path ckpt路径  --save_path 导出的ckpt路径 --work_dir 工作目录(可选) 

注意

因为 pytorch-lightning 的问题所以说在 GAN 训练过程中实际的步数是它显示步数的一半

如果你需要微调社区声码器请使用ft_hifigan.yaml 配置文件,并用 'finetune_ckpt_path' 选项指定权重路径

如何使用微调功能建议参考 openvpi/diffsinger 项目文档

少量步数的微调可以冻结 mpd 模块

建议不要用 bf16 可能会产生音质问题

少量数据差不多 2000 步就可以微调完成

快速开始

预处理

以下是你需要根据自己的数据集修改的配置项

data_input_path: [] # 这个列表 是你原始wav文件的路径
data_out_path: [] # 此列表 预处理输出的npz文件的路径
val_num: 1 # 这个是在验证的时候 抽取的音频文件数量

然后执行预处理

python process.py --config (your config path) --num_cpu (Number of cpu threads used in preprocessing)  --strx (1 for a forced absolute path 0 for a relative path)

训练

python train.py --config (your config path) --exp_name (your ckpt name) --work_dir Working catalogue (optional)

测试中的配置项

use_stftloss: false # 是否启用stft loss
lab_aux_melloss: 45
lab_aux_stftloss: 2.5 # 两种loss的混合控制

如果有其他需要可以修改 stftloss 的其他相关参数

导出

python export_ckpt.py --ckpt_path (your ckpt path)  --save_path (output ckpt path) --work_dir Working catalogue (optional)

注意事项

实际步数是显示的一半

微调 nsf-hifigan 声码器请下载并解压 releases 中的权重,并将 ft_hifigan.yaml 中的 'finetune_ckpt_path' 选项改为权重路径

微调请使用 44100 Hz 采样率音频,并不要修改其他 mel 参数,除非你明确知道你在做什么

微调的其他功能使用请参考 openvpi/DiffSinger 项目文档

导出的权重可以在 DDSP-SVC, Diffusion-SVC, so-vits-svcDiffSinger (openvpi) 等项目中使用

如果要进一步导出成在 OpenUtau 中使用的 onnx 格式权重,请使用 这个 脚本

配置文件中配置项的继承关系为: base.yaml -> base_hifi.yaml -> ft_hifigan.yaml

不要使用bf16训练模型, 它可能导致音质问题

2000 步左右即可微调完成 (显示的是4000步)

冻结 mpd 模块可能可以有更好的结果

其它模型

HiFivae.yamlhifivae.yaml 训练vae模型

base_hifi_chroma.yaml 训练忽略8度nsf hifigan

base_hifi.yaml 训练nsf hifigan

base_ddspgan.yaml 训练带鉴别器的ddsp模型

ddsp_univnet.yaml 训练ddsp 混合univnet模型

nsf_univnet.yaml 训练带nsf的univnet(推荐)

univnet.yaml 训练原版univnet

lvc_base_ddspgan.yaml 训练使用lvc滤波器的 ddsp模型

singingvocoders's People

Contributors

autumn-2-net avatar hrukalive avatar huanlinoto avatar yqzhishen avatar yxlllc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

singingvocoders's Issues

微调NSF-HifiGAN,声谱高频部分有异常的横纹

如题。

我按照文档的描述在自己的数据集上微调NSF-HifiGAN声码器,查看tblog时,发现在声谱高频部分会有异常的横纹出现:
1
静音处显得更为明显:
2

说明:我使用ft_hifigan.yaml配置文件,除了数据集之外没有改变其他任何参数,使用的数据集大小~2小时。

对此有任何建议吗?thx~

About fine tuning

  1. nsf_hifigan_44.1k_hop512_128bin_2024.02.zip 是在这个nsf_hifigan_ finetune_20221211.zip基础上微调的吗,为什么文件还变小了?
  2. nsf_hifigan_ finetune_20221211.zip里面的生成器和判别器是分开的,如果我想在这个基础上微调,需要把两个权重合并为一个权重吗,你的训练脚本适用吗?
image image

声码器无法很好地还原具有某些特质的音色?

Hi~,我使用了Releases中发布的两个版本的声码器,发现两者都不能很好的还原下面音色。

原始录音:
XYH(原始录音).zip

声码器重建波形:
XYH(2022.12).wav.zip
XYH(2024.02).wav.zip

原始录音中有明显的怒音特征,但是声码器重建的波形听起来则是嘶哑偏破音的状态。此外,即便是使用该音色的录音数据对声码器进行少量步数的针对性微调也没能完全解决这个问题(有所改善)。
我正在想办法看能否解决,对此您有任何想法吗?Thx~

导入模块问题

我想请问博主,如果我想把其中的一个声码器用作so-vits-svc中浅扩散模型训练的声码器中,该如何操作,因为我试着导入了HIFIGAN总是失败,看能不能试试这个

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.