Starter kit for getting started in the Music Demixing Challenge.
This repository is the Music Demixing Challenge Submission template and Starter kit! Clone the repository to compete now!
This repository contains:
NOTE: If you are resource-constrained or would not like to setup everything in your system, you can make your submission from inside Google Colab too. Check out the beta version of the Notebook.
The Music Demixing (MDX) Challenge is an opportunity for researchers and machine learning enthusiasts to test their skills by creating a system able to perform audio source separation.
In this challenge, you will train your models locally and then upload them to AIcrowd (via git) to be evaluated.
The following is a high level description of how this process works
test.py
.You are allowed to train your system either exclusively on the training part of MUSDB18-HQ dataset or you can use your choice of data. According to the dataset used, you will be eligible for different leaderboards.
π Download MUSDB18-HQ dataset
In case you are using external dataset, please mention it in your aicrowd.json
.
{
[...],
"external_dataset_used": true
}
The MUSDB18 dataset contains 150
songs (100
songs in train
and 50
songs in test
) together with their seperations
in the following manner:
|
βββ train
β βββ A Classic Education - NightOwl
β βΒ Β βββ bass.wav
β βΒ Β βββ drums.wav
β βΒ Β βββ mixture.wav
β βΒ Β βββ other.wav
β βΒ Β βββ vocals.wav
β βββ ANiMAL - Clinic A
β βββ bass.wav
β βββ drums.wav
β βββ mixture.wav
β βββ other.wav
β βββ vocals.wav
[...]
Here the mixture.wav
file is the original music on which you need to do audio source seperation.
While bass.wav
, drums.wav
, other.wav
and vocals.wav
contain files for your training purposes.
Please note again: To be eligible for Leaderboard A, you are only allowed to train on the songs in train
.
You can add your SSH Keys to your GitLab account by going to your profile settings here. If you do not have SSH Keys, you will first need to generate one.
Clone the repository
git clone [email protected]:AIcrowd/music-demixing-challenge-starter-kit.git
Install competition specific dependencies!
cd music-demixing-challenge-starter-kit
pip3 install -r requirements.txt
Try out random prediction codebase present in test.py
.
We accept submissions with custom runtime, so you don't need to worry about which libraries or framework to pick from.
The configuration files typically include requirements.txt
(pypi packages), environment.yml
(conda environment), apt.txt
(apt packages) or even your own Dockerfile
.
You can check detailed information about the same in the π RUNTIME.md file.
Please follow the example structure as it is in the starter kit for the code structure. The different files and directories have following meaning:
.
βββ aicrowd.json # Submission meta information - like your username
βββ apt.txt # Packages to be installed inside docker image
βββ data # Your local dataset copy - you don't need to upload it (read DATASET.md)
βββ requirements.txt # Python packages to be installed
βββ test.py # IMPORTANT: Your testing/prediction code, must be derived from MusicDemixingPredictor (example in test.py)
βββ utility # The utility scripts to provide smoother experience to you.
βββ docker_build.sh
βββ docker_run.sh
βββ environ.sh
βββ verify_or_download_data.sh
Finally, you must specify an AIcrowd submission JSON in aicrowd.json
to be scored!
The aicrowd.json
of each submission should contain the following content:
{
"challenge_id": "evaluations-api-music-demixing",
"authors": ["your-aicrowd-username"],
"description": "(optional) description about your awesome agent",
"external_dataset_used": false
}
This JSON is used to map your submission to the challenge - so please remember to use the correct challenge_id
as specified above.
π SUBMISSION.md
Best of Luck :tada: :tada:
You need to make sure that your model can do audio seperation for each song within 4 minutes, otherwise the submission will be marked as failed.
π LOCAL_RUN.md
π You can share your solutions or any other baselines by contributing directly to this repository by opening merge request.
test_<approach-name>.py
python test_<approach-name>.py
predict.py
πͺ Β Challenge Page: https://www.aicrowd.com/challenges/music-demixing-challenge-ismir-2021
π£οΈ Β Discussion Forum: https://www.aicrowd.com/challenges/music-demixing-challenge-ismir-2021/discussion
π Β Leaderboard: https://www.aicrowd.com/challenges/music-demixing-challenge-ismir-2021/leaderboards