The following software is available to download:

  • Scene generator
  • Hearing aid processor baseline
  • Hearing aid post-processing code
  • Hearing loss model
  • Speech intelligibility model

The code is a Python package and accompanying unix shell scripts, with the facility to process a single scene or to bulk process the complete Clarity dataset.

A. Scene generator

Fully open-source python code for generating hearing aid inputs for each scene

  • Inputs: target and interferer signals, BRIRs, RAVEN project (rpf) files, scene description JSON files
  • Outputs: Mixed target+interferer signals for each hearing aid channel, direct path (eardrum). Reverberated pre-mixed signals can also be optionally generated.

B. Baseline hearing aid processor

The baseline hearing aid processor is based on openMHA. The python code configures openMHA with a Camfit compressive fitting for a specific listener’s audiogram. This includes a python implementation of the Camfit compressive prescription and python code for driving openMHA.

This configuration of openMHA includes multiband dynamic compression and non-adaptive differential processing. The intention was to produce a basic hearing aid without various aspects of signal processing that are common in high-end hearing aids, but tend to be implemented in proprietary forms so cannot be replicated exactly.

The main inputs and outputs for the processor are as follows:

  • Inputs: Mixed scene signals for each hearing aid channel, a listener ID drawn from scene-listener pairs identified in ‘scenes_listeners.json’ and an entry in the listener metadata json file ‘listeners.json’ for that ID
  • Outputs: The stereo hearing aid output signal, <scene>_<listener>_HA-output.wav

C. Hearing aid post-processing

Open-source python code to provide the post-processing needed to correct the hearing aid output for headphone presentation. This is a corrective filter to compensate for headphone transfer function.

  • Inputs: Output signals from the hearing aid baseline
  • Outputs: Stereo signals that will be presented to listeners via the Listen@Home software.

There is an option to simulate the direct acoustic path at this point, i.e., the sound that goes into the ear canal bypassing the hearing aid. This therefore mixes the hearing aid output with the direct sound going into the ear with a suitable latency. This option won’t be used in the first round, however.

D. Hearing Loss model

Open-source python implementation of the Cambridge Auditory Group Moore/Stone/Baer/Glasberg hearing loss model.

  • Inputs: A stereo wav audio signal, e.g., the output of the baseline hearing aid processor, and a set of audiograms (both L and R ears).
  • Outputs:  The signal after simulating the hearing loss as specified by the set of audiograms (stereo wav file), <scene>_<listener>_HL-output.wav

E. Speech Intelligibility model

Python implementation of a binaural intelligibility model, Modified Binaural Short-Time Objective Intelligibility (MBSTOI). This is an experimental baseline tool that will be used in the stage 1 evaluation of entrants (see Rules). Note that MBSTOI requires signal time-alignment.

  • Inputs:  HL-model output signals, audiogram, reference target signal (i.e., the premixed target signal convolved with the eardrum HRIR but not the BRIR, specified as ‘target_anechoic’), (scene metadata)
  • Outputs: predicted intelligibility score

Any questions?

Please post questions on the Google Group discussions board.