Home

Awesome

This is an implementation of U-Net for vocal separation proposed at ISMIR 2017, with Chainer framework.

Requirements

Python 3.5

Chainer 3.0

librosa 0.5.0

cupy 2.0 (required if you want to train U-Net yourself. CUDA environment required.)

Usage

Please refer to DoExperiment.py for code examples (or simply modify it!).

How to prepare dataset for U-Net training

*If you want to train U-Net with your own dataset, prepare the mixed, instrumental-only, and vocal-only versions of each track, and pickle their spectrograms using util.SaveSpectrogram() function. You should set PATH_FFT (in const.py) to the directory you want to save the pickled data.

*If you have either iKala, MedleyDB, DSD100 dataset, you could make use of ProcessXX.py scripts. Remember to set the PATH_XX in each script to the right path.

*If you want to generate dataset with "original" and "instrumental version" audio pairs (as the original work did), refer to ProcessIMAS.py.

Reference

The neural network is implemented according to the following publication:

Andreas Jansson, Eric J. Humphrey, Nicola Montecchio, Rachel Bittner, Aparna Kumar, Tillman Weyde, Singing Voice Separation with Deep U-Net Convolutional Networks, Proceedings of the 18th International Society for Music Information Retrieval Conference (ISMIR), 2017.