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
Please post questions on the Google Group discussions board.