musdb18-sdr-eval
Class-conditional embeddings for music source separation — Seetharaman et al. (2018) (arXiv:1811.03076, 2018)
What this evaluates
Evaluates the quality of separated audio sources (vocals, drums, bass, other) from mixed music tracks using source-to-distortion ratio, probing the model's ability to perform supervised music source separation.
Datasets
- MUSDB18 — total 150; splits: train (86), val (14), test (50)
Metrics
SDR(primary) — range: other- Computed using the museval package; calculates the ratio of target source energy to the sum of distortion, interference, and artifact energies, expressed in decibels.
Input / output format
Input: Single-channel log-magnitude spectrogram (300 mel bins, 2048 window, 512 hop) derived from stereo audio summed to mono. At test time, processed independently for left and right channels.
Output: Separated time-domain audio estimates for four classes: vocals, drums, bass, and other.
Scoring recipe
import museval
# preds: dict of source names to separated audio arrays
# gold: dict of source names to ground truth audio arrays
results = museval.eval_mus_track(gold, preds)
sdr_scores = {src: results[0].bss['sdr'][i] for i, src in enumerate(['vocals', 'drums', 'bass', 'other'])}
Common pitfalls
- Training uses synthetically mixed 3.2s excerpts from different songs, while evaluation is on full real-world tracks, creating a domain gap.
- SDR is reported per source class; aggregating without weighting or ignoring the 'other' class misrepresents overall separation quality.
Evidence (verbatim from paper)
We evaluate the performance of multiple variations of class-conditional embedding networks on the MUSDB18 [[22]] dataset using source-to-distortion ratio (SDR)222https://github.com/sigsep/sigsep-mus-eval.
Citation
@misc{seetharaman2018classconditional,
title={Class-conditional embeddings for music source separation},
author={Seetharaman et al. (2018)},
year={2018},
note={arXiv:1811.03076}
}
- arXiv: 1811.03076