Metrics Psychoacoustic annoyance
Psychoacoustic annoyance (Widmann, Zwicker & Fastl, More, Di et al.)
Psychoacoustic annoyance (PA) combines percentile loudness N5 with sharpness, roughness and fluctuation strength (Widmann 1992; Zwicker & Fastl 1999). More (2010) added tonality and Di et al. (2016) adapted the model for tonal noise. None of these is standardised; ISO/AWI 26573, registered in 2026, covers the assessment of annoyance through listening tests, including prediction models.
There is no standard; the reference models are Widmann (1992), Zwicker & Fastl (1999), More (2010), and Di et al. (2016). In development: ISO/AWI 26573. Open-source implementations of it:
- Python phonometry new, pySQAT developing, PsychoacousticParametersMeasurer legacy
- MATLAB SQAT, refmap-psychoacoustics (also Python)
- Julia PsychoacousticMetrics.jl new
Editions and who implements them
| Date | Edition | Status | What changed | Implemented by |
|---|---|---|---|---|
| 2026-04 | ISO/AWI 26573 | in development | Approved work item (stage 20.00) since 2026. | — |
| 2016 | Di et al. (2016) | published | Adapted for tonal noise. | SQAT, refmap-psychoacoustics, pySQAT developing |
| 2010 | More (2010) | published | Adds tonality. | SQAT, refmap-psychoacoustics, pySQAT developing |
| 1999 | Zwicker & Fastl (1999) | published | Book version of the model. | SQAT, phonometry new, pySQAT developing, PsychoacousticParametersMeasurer legacy |
| 1992 | Widmann (1992) | published | Original model. | SQAT, refmap-psychoacoustics, PsychoacousticMetrics.jl new |
Project map
The project map, with only the lines for psychoacoustic annoyance between the projects listed for it. Agreement between a project and the code it was ported or adapted from only checks the port.
- ported or adapted from another project
- results checked against
- same contributor
- SQAT SQAT, MoSQITo, and sottek-hearing-model
- legacy legacy project
Scroll the picture sideways.
Implementations
| Project | Edition | Functions | Validation (as stated) | Notes |
|---|---|---|---|---|
| SQAT MATLAB | Di et al. (2016) since v1.0 | PsychoacousticAnnoyance_Di2016, PsychoacousticAnnoyance_Di2016_from_percentile | not stated | — |
| SQAT MATLAB | More (2010) since v1.0 | PsychoacousticAnnoyance_More2010, PsychoacousticAnnoyance_More2010_from_percentile | not stated | — |
| SQAT MATLAB | Zwicker & Fastl (1999) since v1.0 | PsychoacousticAnnoyance_Zwicker1999, PsychoacousticAnnoyance_Zwicker1999_from_percentile | not stated | Since v2.0 a wrapper of PsychoacousticAnnoyance_Widmann1992, which its header says will be removed in future releases. |
| SQAT MATLAB | Widmann (1992) since v2.0 | PsychoacousticAnnoyance_Widmann1992, PsychoacousticAnnoyance_Widmann1992_from_percentile | not stated | Added in June 2025 (PR #32); the README describes it as the same model as the Zwicker & Fastl entry under its original attribution. |
| refmap-psychoacoustics MATLAB Python | Di et al. (2016) Python, from precomputed metric values | diPA | not stated | — |
| refmap-psychoacoustics MATLAB Python | More (2010) Python, from precomputed metric values | morePA | not stated | — |
| refmap-psychoacoustics MATLAB Python | Widmann (1992) | acousticPsychAnnoy, widmannPA | standard or paper data | The MATLAB header names the model Widmann (1992), "commonly misattributed to Zwicker". The Python widmannPA takes precomputed metric values. |
| phonometry Python | Zwicker & Fastl (1999) since 3.1.0 | psychoacoustic_annoyance, psychoacoustic_annoyance_from_signal | own tests only | new Follows Eqs. 16.2–16.4 of Fastl & Zwicker (2007), the textbook form of Widmann's model. |
| PsychoacousticMetrics.jl Julia | Widmann (1992) percentile convention (N5, S5, R5, FS5) and a stationary approximation; since 0.4.0 | psychoacoustic_annoyance_widmann | compared with SQAT | new Uses ZwickerLoudness.jl. |
| pySQAT Python | Di et al. (2016) | PsychoacousticAnnoyance_Di2016 | compared with SQAT (its source) | developing no licence |
| pySQAT Python | More (2010) | PsychoacousticAnnoyance_More2010 | compared with SQAT (its source) | developing no licence |
| pySQAT Python | Zwicker & Fastl (1999) | PsychoacousticAnnoyance_Zwicker1999 | compared with SQAT (its source) | developing no licence |
| PsychoacousticParametersMeasurer Python | Zwicker & Fastl (1999) | psychoacousticAnnoyance | not stated | legacy no licence The header cites Zwicker & Fastl, "Psychoacoustics: Facts and Models", without naming an edition. |
Projects in bold and other established projects come first, then newly released, developing and legacy ones. Validation is what each project says about its own testing. The details are below, and the kinds of evidence are explained on the About page. The project map above shows which project was ported or adapted from which.
How they were validated
As reported by each project; LISQM has not run the code. Two implementations that agree can still share the same error. Kinds of evidence.
- SQAT · Di et al. (2016)
- SQAT · More (2010)
not stated
- No verification routine (README).
- refmap-psychoacoustics · Widmann (1992)
standard or paper data
- A validation script (
validation/metrics/mlab/acousticPsychAnnoyValidation.m) compares the MATLAB version with values from Widmann (1992).
- A validation script (
- phonometry new · Zwicker & Fastl (1999)
own tests only
- Tests compare one set of inputs (N5 = 30 sone, S = 2.0 acum, F = 0.5 vacil, R = 0.3 asper) with the value worked out by hand from Eqs. 16.2–16.4 (37.0478, within 0.001) and check the terms of the formula; no published example is used.
- PsychoacousticMetrics.jl new · Widmann (1992)
compared with SQAT
- Cross-checked against SQAT's
PsychoacousticAnnoyance_Widmann1992: an 840-case formula grid, reproduced bit-exactly, and six signal-level cases with SQAT's own N5, S5, R5 and FS5 vendored, so that every deviation is attributed to a component. - Checked at the published 1 au anchor (a 1 kHz tone at 40 dB SPL): on the 4 s cross-check case, the percentile convention lands 0.1 % from it and the stationary approximation 0.8 %; on the README's 5 s examples, 0.3 % and 1.4 %.
- Cross-checked against SQAT's
- pySQAT developing · Di et al. (2016)
- pySQAT developing · More (2010)
- pySQAT developing · Zwicker & Fastl (1999)
compared with SQAT (its source)
Ported or adapted from SQAT. It was compared with the code it was ported from, which checks the port only.
- Compared with SQAT v1.3, run in MATLAB, by
validation/FINAL_VAL.py; the generated reports are not committed.
- Compared with SQAT v1.3, run in MATLAB, by
Not stated by SQAT for Zwicker & Fastl (1999) and Widmann (1992); refmap-psychoacoustics for Di et al. (2016) and More (2010); PsychoacousticParametersMeasurer.
Before you compare numbers
Implementations of the same metric can give different numbers without either being wrong. Check these choices first.
- Inputs. The models combine percentile values of loudness, sharpness, roughness and fluctuation strength (N5, S5, R5 and F5 in SQAT and PsychoacousticMetrics.jl). The percentile definition and the sharpness, roughness and fluctuation-strength models used change the result, and so does using whole-signal values instead (a stationary approximation).
- Same model, two names. Zwicker & Fastl (1999) give Widmann's (1992) model; SQAT lists it under both names. More (2010) and Di et al. (2016) are different models.
What the projects state:
- SQAT
- Statistics such as N5 take the nearest rank of the sorted time series, without interpolation (
get_exceeded_value), and leave out the firsttime_skipseconds of the signal.
- Statistics such as N5 take the nearest rank of the sorted time series, without interpolation (
- PsychoacousticMetrics.jl new
- The percentile form needs 48 kHz input.
- Percentiles are Hyndman–Fan type 7 quantiles (linear interpolation); SQAT takes the nearest rank, which the README says differs by a full order-statistic step on the coarse fluctuation-strength track.
References
- Widmann, U. (1992). Ein Modell der psychoakustischen Lästigkeit von Schallen und seine Anwendung in der Praxis der Lärmbeurteilung [Doctoral dissertation, Technische Universität München].
- Zwicker, E., & Fastl, H. (1999). Psychoacoustics: Facts and models (2nd ed.). Springer. https://doi.org/10.1007/978-3-662-09562-1
- More, S. R. (2010). Aircraft noise characteristics and metrics [Doctoral dissertation, Purdue University]. PARTNER report PARTNER-COE-2011-004. https://docs.lib.purdue.edu/dissertations/AAI3453255
- Di, G., Chen, X., Song, K., Zhou, B., & Pei, C. (2016). Improvement of Zwicker's psychoacoustic annoyance model aiming at tonal noises. Applied Acoustics, 105, 164–170. https://doi.org/10.1016/j.apacoust.2015.12.006
- ISO/AWI 26573. Acoustics — Procedures for assessment and prediction of noise-induced perceptual annoyance through laboratory-based listening tests. https://www.iso.org/standard/93922.html