Skip to content
intermediateaudio

ODAQ MUSHRA Listening Test for Audio Quality

Score the basic audio quality of processed music excerpts against a reference on the 0 to 100 MUSHRA scale, with a hidden reference and two low-pass anchors.

Get This Design

View on GitHub(opens in a new tab)

Clone or download from the repository

Quick start:

bash
git clone https://github.com/davidjurgens/potato-showcase.git
cd potato-showcase/audio/listening-tests/odaq-mushra-audio-quality
potato start config.yaml

About this dataset

ODAQ is an open dataset of audio quality scores released by Fraunhofer IIS and Netflix. The dataset holds 240 stereo audio samples, 44.1 or 48 kHz, processed by six method classes at several quality levels. Five classes imitate audio coding artifacts (low-pass, tonality mismatch, unmasked noise, spectral holes, and pre-echoes), and the sixth is dialogue enhancement by source separation. Torcoli, Wu, Dick, Williams, Halimeh, Wolcott, and Habets presented the dataset at ICASSP 2024. The package also carries the raw scores and the listening test software.

The scores come from a MUSHRA test run in two laboratories, in Germany and the United States. Each of the 30 trials has one reference, two low-pass anchors at 3.5 and 7 kHz, and five processed samples, and listeners rated Basic Audio Quality from 0 to 100. Results from 26 expert listeners remain after post-screening, which dropped one listener per laboratory for scoring the hidden reference below 90 for more than 15% of trials. The design uses Potato's listening_test scheme with method mushra, which adds the hidden reference and the two anchors, shuffles the samples per listener, switches between the samples at the same playback position, and labels the slider Excellent, Good, Fair, Poor, and Bad. Five trials ship, cut to 2 seconds, one each from the trumpet, glockenspiel, clapping, guitar, and violin recordings, and the dialogue enhancement class, the training session, and the three-session split are left out. Potato builds the anchors, so the anchors are similar to ODAQ's and not identical.

ODAQ's audio carries a license per file, and the files mix CC BY, CC BY-NC, and CC0. Only the five CC BY 4.0 and CC0 originals are used here, and media/LICENSE-media.txt names each source, author, and license. No model_training block is included, because no registered Potato trainer consumes a listening_test scheme. The ratings are exported for analysis with python -m potato.export --format listening_test, which reports means and 95% intervals per condition and applies the BS.1534-3 post-screening.

Audio samples
240
Trials
30 (5 in this design)
Processed samples per trial
5, plus the reference and 2 low-pass anchors
Processing method classes
6
Listeners after post-screening
26 (15 recruited in Germany, 13 in the US, 1 excluded in each)
Subjective scores
6,240
Average sample duration
12.5 s
Anchors
Low-pass at 3.5 and 7 kHz
Excerpts in this design
5 trials, 2 s each

Configuration File

This Potato config reproduces the annotation task. Save it as config.yaml and run potato start config.yaml to try it.

yaml
# ODAQ: a MUSHRA listening test on the Open Dataset of Audio Quality
#
# Dataset: ODAQ (Open Dataset of Audio Quality), Fraunhofer IIS and Netflix.
# Paper: Torcoli, M., Wu, C.-W., Dick, S., Williams, P. A., Halimeh, M. M.,
#   Wolcott, W., and Habets, E. A. P. (2024). ODAQ: Open Dataset of Audio
#   Quality. ICASSP 2024, pp. 836-840. Preprint: https://arxiv.org/abs/2401.00197
# BibTeX (Crossref):
#   @inproceedings{Torcoli_2024, title={Odaq: Open Dataset of Audio Quality},
#     DOI={10.1109/icassp48485.2024.10447634},
#     booktitle={ICASSP 2024 - 2024 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)},
#     publisher={IEEE},
#     author={Torcoli, Matteo and Wu, Chih-Wei and Dick, Sascha and Williams, Phillip A. and Modar Halimeh, Mhd and Wolcott, William and Habets, Emanuël A. P.},
#     year={2024}, month=Apr, pages={836-840}}
# DOI: 10.1109/ICASSP48485.2024.10447634
# Dataset: https://zenodo.org/records/10405774 (DOI 10.5281/zenodo.10405774)
# Licence: ODAQ mixes CC BY, CC BY-NC and CC0 audio, per original file
#   (_detailed_license.csv). The five trials in media/ use only CC BY 4.0 and
#   CC0 originals, each credited in media/LICENSE-media.txt.
#
# Protocol (Torcoli et al. 2024, Sections 3.1 and 4.1, arXiv v1):
#   "ODAQ consists of 30 trials; each trial consists of one source (i.e.,
#   reference), two low-pass anchors as recommended by [4], and 5 processed
#   samples." ([4] is ITU-R BS.1534.)
#   "The 6240 subjective scores are Basic Audio Quality (BAQ) scores collected
#   via an extensive MUSHRA test [4] involving 26 expert listeners."
#   "15 listeners participated in Germany, while 13 listeners participated in
#   the US." One listener per laboratory was excluded "for having rated the
#   hidden reference below 90 MUSHRA points for more than 15% of all trials".
#   Before the 30 test trials (3 sessions of 10), listeners did a training
#   session of "3 trials with audio samples that are not used in the full test".
#   The anchors are low-pass filtered references at 3.5 and 7 kHz (the paper's
#   LP3.5 and LP7). The score axis in the paper's results figure runs 0 to 100
#   with the five BS.1534 quality labels Excellent, Good, Fair, Poor, and Bad.
#
# Scale: Potato's mushra method shows one 0-100 slider per sample, labeled
#   Excellent, Good, Fair, Poor, and Bad, and it adds the hidden
#   reference and the two low-pass anchors itself. Samples are shuffled per
#   listener, and playback switches between them at the same position, with an
#   optional loop. By default the listener must hear every sample, and one
#   sample must be rated 100 (require_one_at_100) before the page accepts the
#   ratings.
#
# Adaptations:
#   - Five trials, not 30, each cut to a 2 s window of the trial files and
#     re-encoded (16-bit; WAV reference, FLAC processed files) to keep media/
#     near 5 MB. The five trial files used here are 7.5 to 11.5 s long (ODAQ
#     averages 12.5 s). Only CC BY and CC0 originals are used.
#     The trials cover five of the six method classes (TM, SH, PE, LP, UN).
#     The dialogue enhancement class (DE) is left out to keep the demo small.
#   - Each trial carries the five processed files from ODAQ's trial folder.
#     ODAQ's two anchor files are not shipped. Potato makes its own 3.5 and
#     7 kHz low-pass anchors from the reference (brick-wall filter with a
#     200 Hz taper), so the anchors are similar to, not identical with, ODAQ's.
#   - ODAQ ran in a purpose-built JUCE application in acoustically damped
#     listening rooms on closed-back headphones. This design runs in the
#     browser, and the listener's equipment is not controlled.
#   - The 3-trial training session and the split into three sessions are not
#     reproduced (a training page would be a `phases` entry). The paper's
#     post-screening rule is not applied automatically here. The export below
#     applies Potato's BS.1534-3 post-screening to the collected ratings.
#   - The paper does not print its listener instructions, but the Zenodo
#     package ships them (listening_test_instructions/
#     listening_test_instructions_english.docx, ODAQ's authors). They tell
#     listeners to rate "overall sound quality considering any and all detected
#     differences with the reference" on "a continuous scale varying between 0
#     and 100", and to rate the hidden reference "with 100 points". The wording
#     of `instructions` and `annotation_instructions` below follows that
#     sense but is written for this design and is not ODAQ's text.
#   - Condition names in the data file (tm3k, sh10_ms, and so on) are ODAQ's
#     file names. Listeners never see them, since Potato presents opaque slots.
#   - No model_training block. No registered Potato trainer consumes a
#     listening_test scheme, so the ratings are exported for analysis only:
#       python -m potato.export --config config.yaml --format listening_test --output out/
#     writes ratings by condition, with means, 95% intervals and the
#     post-screening.
#
# Run: potato start config.yaml -p 8000

annotation_task_name: "ODAQ MUSHRA listening test"

data_files:
  - sample-data.json

item_properties:
  id_key: id
  text_key: text

task_dir: .
output_annotation_dir: annotation_output
export_annotation_format: jsonl
media_directory: media

user_config:
  allow_all_users: true
  users: []

annotation_instructions: >-
  Each trial has an open reference and several samples. Listen to the
  reference, then to every sample, and score the Basic Audio Quality of each
  sample against the reference on the 0 to 100 scale. One sample is the
  reference itself and should be scored 100.

annotation_schemes:
  - annotation_type: listening_test
    name: baq
    method: mushra
    description: "Rate the basic audio quality of each sample against the reference"
    instructions: >-
      Switch between the reference and the samples as often as you like, and
      use the loop to compare a short passage. Score the Basic Audio Quality of
      every sample from 0 (Bad) to 100 (Excellent). One of the samples is the
      hidden reference.
    reference_field: reference
    stimuli_field: stimuli
    anchors: [3500, 7000]
    hidden_reference: true
    loop: true
    label_requirement:
      required: true

Sample Data

json
[
  {
    "id": "odaq_001",
    "text": "Trial 1: solo trumpet (2 s excerpt)",
    "reference": "/media/trumpet_ref.wav",
    "stimuli": {
      "tm3k": "/media/trumpet_TM3k.flac",
      "tm5k": "/media/trumpet_TM5k.flac",
      "tm7k": "/media/trumpet_TM7k.flac",
      "tm9k": "/media/trumpet_TM9k.flac",
      "tm10p5k": "/media/trumpet_TM10p5k.flac"
    }
  },
  {
    "id": "odaq_002",
    "text": "Trial 2: solo glockenspiel (2 s excerpt)",
    "reference": "/media/glockenspiel_ref.wav",
    "stimuli": {
      "sh10_ms": "/media/glockenspiel_SH10_MS.flac",
      "sh20_ms": "/media/glockenspiel_SH20_MS.flac",
      "sh30_ms": "/media/glockenspiel_SH30_MS.flac",
      "sh50_ms": "/media/glockenspiel_SH50_MS.flac",
      "sh70_ms": "/media/glockenspiel_SH70_MS.flac"
    }
  }
]

// ... and 3 more items

Dataset & paper

Torcoli et al., ICASSP 2024

Paper DOI
10.1109/icassp48485.2024.10447634
Dataset DOI
10.5281/zenodo.10405774

Citation (BibTeX)

bibtex
@inproceedings{Torcoli_2024,
  title = {Odaq: Open Dataset of Audio Quality},
  doi = {10.1109/icassp48485.2024.10447634},
  url = {http://dx.doi.org/10.1109/icassp48485.2024.10447634},
  booktitle = {ICASSP 2024 - 2024 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)},
  publisher = {IEEE},
  author = {Torcoli, Matteo and Wu, Chih-Wei and Dick, Sascha and Williams, Phillip A. and Modar Halimeh, Mhd and Wolcott, William and Habets, Emanuël A. P.},
  year = {2024},
  month = apr,
  pages = {836--840}
}

Details

Annotation Types

listening_test

Domain

Audio QualityPsychoacousticsAudio Coding

Use Cases

MUSHRA Listening TestSubjective Quality AssessmentPerceptual Evaluation

Tags

odaqmushraitu-r bs.1534listening testaudio qualityaudio codingdialogue enhancementhidden referenceanchors

Found an issue or want to improve this design?

Open an Issue(opens in a new tab)