Two methods of separating monaural sources have been implemented during the month spent at ML Jeju Camp.
First project implemented Vector Product Neural Networks, referencing the paper 'Music Signal Processing Using Vector Product Neural Networks' by Fan et al. Find paper here
Files related to this model are model.py, run.py, and config.py
Second project implemented Deep Clustering, referencing the paper 'Deep Clustering: Discriminiative embeddings for segmentation and separation' by Hershey et al. Find paper here
Files related to this model are embedding_model.py, embedding_run.py, and embedding_config.py
Acquire iKala dataset -- need to sign a form and send a request to get access to the dataset. More details could be found here. After acquiring data, move the files from the iKala/Wavfile directory to the directory source_separation_ml_jeju/data/raw_data.
For preprocessing of data to TFRecords and split train/test dataset,
cd data_scripts
python preprocesing.py
(Need to create directories data/test and data/train)
To train the VPNN model,
python run.py
after training, to evaluate the model,
python run.py --train=False
To train the deep clustering model,
python embedding_run.py
To evaluate the network, find the checkpoints inside the tensorboard events directory (source_separation_ml_jeju/tensorboard/[most_recent_dir]) and move to directory (source_separation_ml_jeju/checkpoints/) and
python embedding_run.py --train=False