class nussl.evaluation.bss_eval_sources.BSSEvalSources(true_sources_list, estimated_sources_list, source_labels=None, algorithm_name=None, do_mono=False, compute_permutation=True, framewise=False, window=1323000, hop=661500)

Wrapper class for mir_eval implementation of the BSS-Eval Sources metrics (SDR, SIR, SAR). Contains logic for loading ground truth AudioSignals and estimated AudioSignals to compute BSS-Eval Sources metrics. The mir_eval module contains an implementation of BSS-Eval version 3.

The BSS-Eval metrics attempt to measure perceptual quality by comparing sources estimated from a source separation algorithm to the ground truth, known sources. These metrics evaluate the distortion (SDR) and artifacts (SAR) present in the estimated signals as well as the interference (SIR) from other sources in a given estimated source. Results are returned in units of dB, with higher values indicating better quality.

See also

  • For more information on mir_eval (python implementation of BSS-Eval v3) see

its Github page.

  • For more information on the BSS-Eval metrics, see the webpage for

the original MATLAB implementation.

  • Implementations of this base class: BSSEvalSources and BSSEvalImages.
  • BSSEvalV4 for the museval version 4 BSS-Eval implementation.


  • Emmanuel Vincent, Rémi Gribonval, Cédric Févotte. Performance measurement in blind

audio source separation. IEEE Transactions on Audio, Speech and Language Processing, Institute of Electrical and Electronics Engineers, 2006, 14 (4), pp.1462–1469. <inria-00544230> * Colin Raffel, Brian McFee, Eric J. Humphrey, Justin Salamon, Oriol Nieto, Dawen Liang, and Daniel P. W. Ellis, “mir_eval: A Transparent Implementation of Common MIR Metrics”, Proceedings of the 15th International Conference on Music Information Retrieval, 2014.

  • true_sources_list (list) – List of AudioSignal objects that contain the ground truth sources for the mixture.
  • estimated_sources_list (list) – List of AudioSignal objects that contain estimate sources, output from source separation algorithms.
  • source_labels (list) – List of strings that are labels for each source to be used as keys for the scores. Default value is None and in that case labels are Source 0, Source 1, etc.
  • algorithm_name (str) – Name of the algorithm if using this object to compute many BSS-Eval metrics. Can be changed later.
  • do_mono (bool) – Should flatten the audio to mono before calculating metrics.
  • compute_permutation (bool) – Should try to find the best permutation for the estimated sources.

Prepare the audio_data in the sources for mir_eval. :returns: (np.ndarray, np.ndarray) reference_source_array, estimated_source_array


Formats and populates the scores dict from evaluate(). :param bss_output: Direct output from the museval function. :type bss_output: tuple

Returns:(dict) Reformatted dictionary from museval output.