MoSQITo
Python library for sound quality metrics: ISO 532-1 loudness, DIN 45692 sharpness, Daniel & Weber roughness, ECMA-418-2 hearing-model loudness (Clause 5) and roughness (2nd edition), tone-to-noise and prominence ratios, and the speech intelligibility index. Widely used, but without a release or a commit since April 2024.
| Repository | https://github.com/Eomys/MoSQITo |
|---|---|
| Documentation | https://mosqito.readthedocs.io/en/latest/ |
| Language | Python |
| Kind | Library/Toolbox Functions to call from your own code: a Python package, a MATLAB toolbox, or a C, C++, C#, Rust or Julia library. |
| Group | established Described in a publication, used by others, or written by the authors of the model, with more than a year of history. A widely used project. |
| Licence | Apache-2.0 |
| Package | PyPI mosqito |
| Install | pip install mosqito |
| Latest release | v1.2.1 (2024-04) |
| Last commit | 2024-04-22 inactive since 2024-04 |
| GitHub stars | 178 |
| Maintainers | Eomys / Green Forge Coop |
| AI assistance | not stated |
| Paper | San Millán-Castillo, R., Latorre-Iglesias, E., Glesser, M., Wanty, S., Jiménez-Caminero, D., & Álvarez-Jimeno, J. M. (2021). MOSQITO: an open-source and free toolbox for sound quality metrics in the industry and education. INTER-NOISE 2021, INCE Conference Proceedings 263(5), 1164–1175. https://doi.org/10.3397/IN-2021-1767 |
| How to cite | Cite the paper above. Software DOI: 10.5281/zenodo.11026796. The repository has a CITATION.cff file. Name the version or commit you used. |
| Entry checked | 8 October 2026 |
What it implements
| Metric | Edition | Functions | Validation (as stated) | Notes |
|---|---|---|---|---|
| Zwicker loudness | ISO 532-1:2017 stationary (also per segment and from a spectrum) and time-varying; since 1.0.0 | loudness_zwst, loudness_zwst_perseg, loudness_zwst_freq, loudness_zwtv | standard or paper data (outcome not stated) | — |
| Sottek Hearing Model loudness | ECMA-418-2:2022 (2nd ed.) Clause 5 hearing-model specific and total loudness only; the Clause 8 loudness added in the 2nd edition is not implemented; since 1.2.0 | loudness_ecma | standard or paper data (outcome not stated) | Followed the 1st edition (2020) in versions 1.0.0–1.1.1 and the 2nd edition (2022) from 1.2.0. It grew out of the hearing model that Daniel Jiménez-Caminero added in May 2021, which is also kept in MoSQITo-FDP. |
| Sharpness | DIN 45692:2009 weightings: DIN 45692, Aures, von Bismarck, Fastl; since 1.0.2 | sharpness_din_st, sharpness_din_tv, sharpness_din_perseg, sharpness_din_from_loudness, sharpness_din_freq | standard or paper data (outcome not stated) | — |
| Roughness (Daniel & Weber) | Daniel & Weber (1997) since 1.0.0 | roughness_dw, roughness_dw_freq | standard or paper data (outcome not stated) | — |
| Sottek Hearing Model roughness | ECMA-418-2:2022 (2nd ed.) since 1.2.0 | roughness_ecma | standard or paper data also compared with ArtemiS SUITE (HEAD acoustics) | The documentation still lists it as under development. An open pull request (#95) fixes the low-pass filter range, which caused discrepancies with SQAT for time-varying signals. |
| Tonality (Aures) | Aures (1985b) | — | not stated | PR Pull request from April 2026 following the improved Aures metric of Estreder et al. (2023); no maintainer reply. |
| Tone-to-noise ratio and prominence ratio | ECMA-74:2019 (17th ed.) since 1.0.2 | tnr_ecma_st, tnr_ecma_perseg, tnr_ecma_freq, pr_ecma_st, pr_ecma_perseg, pr_ecma_freq | not stated | Docstrings say "ECMA 418-1" without an edition; the helper code and the bibliography cite ECMA-74 Annex D (17th edition, 2019). |
| Tonal audibility (ISO 1996-2) | ISO 1996-2:2017 Annex K prominent-tone detection | — | not stated | PR Pull request from May 2022; no maintainer reply. |
| Equal-loudness contours | ISO 226:2003 since 0.3.5 | equal_loudness_contours | not stated | The docstring gives no edition; it is based on Jeff Tackett's MATLAB code for ISO 226:2003. |
How it was validated
As reported by the project; LISQM has not run the code. Two implementations that agree can still share the same error. Kinds of evidence.
- Zwicker loudness · ISO 532-1:2017
standard or paper data (outcome not stated)
Ported or adapted from BASIC program of DIN 45631 (Zwicker et al., 1991).
- Validation scripts use the ISO 532-1 Annex B test signals; the documentation marks it as validated.
- Sottek Hearing Model loudness · ECMA-418-2:2022 (2nd ed.)
standard or paper data (outcome not stated)
- Validation scripts compare with figures of the standard.
- Sharpness · DIN 45692:2009
standard or paper data (outcome not stated)
- Validation scripts use the DIN 45692 test signals; the documentation marks it as validated.
- Roughness (Daniel & Weber) · Daniel & Weber (1997)
standard or paper data (outcome not stated)
- The documentation marks it as validated against reference data.
- Sottek Hearing Model roughness · ECMA-418-2:2022 (2nd ed.)
standard or paper data also compared with ArtemiS SUITE (HEAD acoustics)
- A unit test checks the standard's reference signal (1 kHz tone, 100 % amplitude-modulated at 70 Hz, 60 dB), which should give 1 asper, within ±0.1 asper.
- A validation script compares the specific roughness of amplitude-modulated tones (carriers from 125 Hz to 4 kHz, 65 dB) with values computed in HEAD acoustics ArtemiS SUITE, within ±10 %.
- Tone-to-noise ratio and prominence ratio · ECMA-74:2019 (17th ed.)
not stated
- The documentation marks it as available but not validated.
Not stated for Tonality (Aures) · Aures (1985b); Tonal audibility (ISO 1996-2) · ISO 1996-2:2017; Equal-loudness contours · ISO 226:2003.
Before you compare numbers
Implementations of the same metric can give different numbers without either being wrong. Check these choices first.
- Zwicker loudness (ISO 532-1:2017)
- Signals sampled below 48 kHz are resampled to 48 kHz (FFT method) with a warning; time-varying loudness rejects rates above 48 kHz.
Notes
- Started by EOMYS in 2020. The default branch is
master; its last commit and the last release (1.2.1) are both from 2024-04-22. - The documentation lists Soundscapy as a user; several other projects (PsychoBox, Sonemeter and others) wrap it.
- Also computes the ANSI S3.5 speech intelligibility index (
sii_ansi), which is outside the scope of this list. - Open, unanswered pull requests add Aures tonality (#97, 2026), ECMA-418-2 roughness fixes (#95, 2026) and an ISO 1996-2 Annex K tone detector (#52, 2022).
- A C#/.NET port, Mosqito.NET, is listed separately; it was announced in issue #98.
- The documentation lists hearing-model tonality (citing ECMA-74) as under development; there is no function for it.
Before you rely on it
- No maintainer has answered issues or pull requests opened since 2024, including bug reports on TNR/PR (#80, #81, #99) and on the ECMA-418-2 roughness low-pass filter (#92, #95).
import mosqitofails when matplotlib is not installed, because it is imported but not declared as a dependency (#100); install matplotlib yourself.- Its ECMA-418-2 functions follow the 2nd edition (2022), two editions behind the current one.
Sources
- https://github.com/Eomys/MoSQITo/blob/master/README.md
- https://github.com/Eomys/MoSQITo/blob/master/docs/source/user_guide/scope.rst
- https://github.com/Eomys/MoSQITo/tree/master/validations
- https://github.com/Eomys/MoSQITo/blob/master/tests/sq_metrics/roughness/test_roughness_ecma.py
- https://github.com/Eomys/MoSQITo/blob/master/CITATION.cff
- https://pypi.org/project/mosqito/
- https://github.com/Eomys/MoSQITo/issues/100
- https://github.com/Eomys/MoSQITo/pull/95
- https://github.com/Eomys/MoSQITo/pull/97
- https://github.com/Eomys/MoSQITo/blob/master/mosqito/sq_metrics/loudness/loudness_zwst/_main_loudness.py
- https://github.com/Eomys/MoSQITo/commit/04dab16b64041c820c08177aa74039fb3fc3ed20