pambox is a Python package to facilitate the development of auditory models, with a focus on speech intelligibility prediction models.
The Grand Idea is for pambox to be a repository of published auditory models, as well as a simple and powerful tool for developing auditory models. Components should be reusable and easy to modify. pambox uses a standard interface for all speech intelligibility prediction models in the package, which should simplify comparisons across models.
In case Python is not your thing and you prefer Matlab, the Auditory Modeling Toolbox is an excellent alternative.
Right now, pambox is only available through Github. It should be available via pip soon. To install pambox from source:
git clone https://github.com/achabotl/pambox.git cd pambox python setup.py install
conda install --file requirements.txt
Structure of the toolbox¶
The structure of the toolbox is inspired by the auditory system. The classes
and functions are split between “peripheral” and “central” parts. The
“peripheral” part is directly accessible through an
middle, and an
central part is more general and contains the
modules and functions for central processes, without much extra separation
speech module contains speech intelligibility models and
various functions and classes to facilitate speech intelligibility prediction
utils module contains functions for manipulating
signals, such as setting levels, or padding signals, that are not directly
distort module contains distortions and processes that
can be applied to signals. Most of them are used in speech intelligibility
In the spirit of Python, pambox has a few conventions about “the way to do things”.
- Single channels signals always have the shape
(N, ), where N is the length of the signal.
- Multi-channels signals always have the shape
(M, N), where M is the number of channels and N is the signals’ length. This greatly simplifies looping over channels.
- Filterbanks are classes with names ending in
Filterbankand must take at least the sampling frequency and the center frequencies as arguments, for example:
GeneralFilterbank(fs, center_frequencies=(100, 200), *args, **kgwars).
center_frequenciescan have a default value. Filtering is done via a
filtermethod that only takes the signal to filter and return multi-channel signals, for example:
(M, N)array, where
Mcan be 1.
- Speech intelligibility models are classes with a
predictmethod. See Speech Intelligibility Models for more details.
- Inner ear processing
- Middle ear processes
- Outer ear processes
- Central auditory processing
- Speech Intelligibility Models and Experiments
- Signal Distortion and Processing