Repository for training models for music source separation.
Repository for training models for music source separation.
Repository for training models for music source separation. Repository is based on kuielab code for SDX23 challenge. The main idea of this repository is to create training code, which is easy to modify for experiments. Brought to you by MVSep.com.
Model can be chosen with --model_type arg.
Available models for training:
mdx23c.htdemucs.segm_models.torchseg.bs_roformer.mel_band_roformer.swin_upernet.bandit.scnet.bandit_v2.apollo.bs_mamba2.conformer.dttnet.bs_conformerscnet_tran.scnet_masked.segm_models there are many different encoders is possible. Look here.torchseg gives access to more than 800 encoders from timm module. It's similar to segm_models.To train model you need to:
--model_type, including: mdx23c, htdemucs, segm_models, mel_band_roformer, bs_roformer.--config_path <config path>. You can find examples of configs in configs folder. Prefixes config_musdb18_ are examples for MUSDB18 dataset.--start_check_point <weights path>--results_path <results folder path>python train.py \
--model_type mel_band_roformer \
--config_path configs/config_mel_band_roformer_vocals.yaml \
--start_check_point results/model.ckpt \
--results_path results/ \
--data_path 'datasets/dataset1' 'datasets/dataset2' \
--valid_path datasets/musdb18hq/test \
--num_workers 4 \
--device_ids 0
All training parameters are here.
Look here: LoRA training
python inference.py \
--model_type mdx23c \
--config_path configs/config_mdx23c_musdb18.yaml \
--start_check_point results/last_mdx23c.ckpt \
--input_folder input/wavs/ \
--store_dir separation_results/
All inference parameters are here. Convert models to ONNX and TensorRT formats here.
training.batch_size and training.gradient_accumulation_steps.configs/config_*.yaml - configuration files for modelsmodels/* - set of available models for training and inferencedataset.py - dataset which creates new samples for traininggui-wx.py - GUI interface for codeinference.py - process folder with music files and separate themtrain.py - main training code for single GPUtrain_ddp.py - training code for Multi GPU config. Faster than train.py. Use it for 2 or more GPUs.utils.py - common functions used by train/validvalid.py - validation of model with metricsensemble.py - useful script to ensemble results of different models to make results better (see docs).Look here: List of Pre-trained models
If you trained some good models, please, share them. You can post config and model weights in this issue.
Look here: Dataset types
Look here: Augmentations
Look here: GUI documentation or see tutorial on Youtube
pip install msst
@misc{solovyev2023benchmarks,
title={Benchmarks and leaderboards for sound demixing tasks},
author={Roman Solovyev and Alexander Stempkovskiy and Tatiana Habruseva},
year={2023},
eprint={2305.07489},
archivePrefix={arXiv},
primaryClass={cs.SD}
}
vinyl declicking
Permission to redistribute an ONNX export of model_bs_roformer_ep_17_sdr_9.6568 (4-stem)?
Provenance and license of the BS-Roformer-SW 6-stem checkpoint
Licence declaration for the checkpoints you trained
demix error
I need to train a four-track vocal separation model. If you have the dataset, please contact me.
how to get started
How long does it take everyone to run one epoch(batch=10)?
Dataset size
All 13 Music Demixing Benchmarks datasets available through Hugging Face Hub datasets