GithubHelp home page GithubHelp logo

m-r-s / measurement-prediction-framework Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 8.04 MB

Essential Measurement Applications (EMA) integrated with scripts to simulate the measurements with FADE

Home Page: https://zenodo.org/badge/latestdoi/241907238

License: GNU General Public License v3.0

Shell 10.45% MATLAB 64.39% C 22.76% Limbo 2.40%
measurements speech recognition simulation psychoacoustics aided hearing

measurement-prediction-framework's Introduction

Measurement and prediction framework

This expert software framework can be used to implement, perform, and simulate (i.e. model) simple psychoacoustic and speech-recognition experiments. Measurements and simulations are tightly integrated, such that all implemented measurements can be performed and simulated with the same code base. The implementations are modular, such that they can be exchanged or used in other contexts.

Author (2020) Marc René Schädler

E-mail: [email protected]

The repository currently contains a largely undocumented (but fully functional) code drop. The documentation will be added on demand over time. Please contact me if you are interested in the documentation of a specific portion. This software was developed and tested under Ubuntu Linux 19.10.

Warning and disclaimer

First, a few words of warning:

Hearing aids are medical products! You use these instructions and the software at you own risk. Some audio playback devices can produce very high sound levels. Exposure to high sound levels can permanently damage your hearing! You are responsible for the configuration of the device and the protection of your hearing.

Please read about the consequences of noise induced hearing loss before proceeding to the fun part: https://www.nidcd.nih.gov/health/noise-induced-hearing-loss

Measurements with EMA

Measurements are performed with the Essential Measurement Applications (EMA). Simple psychoacoustic and speech-recognition experiments are supported. The scripts reside in ema. The main application script is ema/ema.sh, which starts the console based user interface. The measurements are implemented in GNU/Octave scripts (ema/mfiles/measure_*). Results are documented in ema/data.

The EMA are part of this repository and require, at least, the following software packages to work (maybe I forgot some):

sudo apt install build-essential gawk octave octave-signal liboctave-dev jackd2 libjack-jackd2-dev

Some example measurements conditions are defined in ema/ema.sh. Also, you need to set your audio device name there. You can get a list of available audio devices it with the command:

aplay -l

However, your audio setup needs to be calibrated before using it.

Calibration

The calibration and compensation tools reside in loop. Please have a look at the loop/tools/update_configuration.m. The parameters for the calibration of your setup can be set there. Comment out the line which deliberately throws an error.

The provided configuration works well for the Focusrite Scarlett 2i2 sound card and Sennheiser HDA 200 headphones. ema/ema.sh provides a menu for checking the calibration with narrow band noise signals.

In any case, you will need to run update the configuration of loop and compile the required binaries.

To do so, run:

./make.sh

Simulations with FADE

Simulations are performed with the Simulation Framework for Auditory Discrimination Experiments (FADE) from [1].

Set up the simulation framework for auditory discrimination experiments (FADE) as described on the project website.

The FADE-related scripts reside in fade. The main simulation script is fade/run_experiments.sh, where some working examples are defined. This script can be run in any directory, preferably one on a fast solid-state disk. The results are collected to results.txt in that directory after the simulation.

The same code that is used to describe the measurement condition in EMA (e.g., sweepinnoise-500,l for a sweep in noise detection threshold at 500 Hz with the left ear) can be used there to perform the simulation of the experiment.

Available experiments

Currently, three measurements are implemented: Sweep detection in quiet, sweep detection in noise, and the German matrix sentence test.

The tone detection experiments are implemented with the Single-Interval Adjustment Matrix (SIAM) toolkit from [2]. However, the implementation is included in this repository.

The stimuli for the matrix sentence test need to be copied to ema/data/matrix/speech (cf. README.md there), and desired noise maskers to ema/data/matrix/noise. The stimulus generation scripts for the tone detection experiments reside in ema/data/stimulus.

Available hearing aid models

For aided measurements or simulations, a working installation of the open Master Hearing Aid from [3] is required. In this way, it is possible to share configurations with the mobile hearing aid prototype. Please have a look at the preconfigured example in data/processing/openMHA9_unaided.

All measurements can be combined with all hearing device models, which allows to measure the aided performance in psychoacoustic and speech recognition tasks.

It is also easy to extend the framework with own JACK plugins for aided measurements. For example the PLATT dynamic compressor is also available. PLATT is an implementation of a patented dynamic compression scheme that aims to preserve speech intelligibility. Its engineered towards the use in hearing devices (it's fast). Still, it produces high quality signals (it minimizes compression).

References

[1] Schädler, M. R., Warzybok, A., Ewert, S. D., Kollmeier, B. (2016) "A simulation framework for auditory discrimination experiments: Revealing the importance of across-frequency processing in speech perception", Journal of the Acoustical Society of America, Volume 139, Issue 5, pp. 2708–2723, URL: http://link.aip.org/link/?JAS/139/2708

[2] Kaernbach, C. (1990). A single‐interval adjustment‐matrix (SIAM) procedure for unbiased adaptive testing. The Journal of the Acoustical Society of America, 88(6), 2645-2655. https://doi.org/10.1121/1.399985

[3] Herzke, T., Kayser, H., Loshaj, F., Grimm, G., Hohmann, V. "Open signal processing software platform for hearing aid research (openMHA)", in Proceedings of the Linux Audio Conference. Université Jean Monnet, Saint-Étienne, pp. 35-42, 2017.

measurement-prediction-framework's People

Contributors

suaefar avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.