# Psychoacoustic annoyance (Widmann, Zwicker & Fastl, More, Di et al.)

> Part of [LISQM](https://zhenxianli.github.io/LISQM/) (List of Implementations of Sound Quality Metrics), a list of open-source implementations of psychoacoustic metrics. Data as of 2026-10-28. Web page: https://zhenxianli.github.io/LISQM/metrics/psychoacoustic-annoyance.html

**Quantity:** Psychoacoustic annoyance · **Unit:** dimensionless · **Also known as:** PA, psychoacoustic annoyance, Zwicker annoyance, Widmann annoyance, More annoyance, Di annoyance

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: **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (MATLAB; Di et al. (2016)), **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (MATLAB; More (2010)), **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (MATLAB; Zwicker & Fastl (1999)), **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (MATLAB; Widmann (1992)), [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (MATLAB, Python; Di et al. (2016); Python, from precomputed metric values), [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (MATLAB, Python; More (2010); Python, from precomputed metric values), [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (MATLAB, Python; Widmann (1992)), [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) (Python; newly released, not yet seen to be widely used; Zwicker & Fastl (1999)), [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html) (Julia; newly released, not yet seen to be widely used; Widmann (1992); percentile convention (N5, S5, R5, FS5) and a stationary approximation), [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) (Python; developing; Di et al. (2016)), [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) (Python; developing; More (2010)), [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) (Python; developing; Zwicker & Fastl (1999)), and [PsychoacousticParametersMeasurer](https://zhenxianli.github.io/LISQM/projects/psychoacoustic-parameters-measurer.html) (Python; legacy, no commit since 2021-06; Zwicker & Fastl (1999)).

## Editions and who implements them

| Date | Edition | Status | What changed | Implemented by |
|---|---|---|---|---|
| 2026-04 | [ISO/AWI 26573](https://www.iso.org/standard/93922.html) | in development | Approved work item (stage 20.00) since 2026. | — |
| 2016 | [Di et al. (2016)](https://doi.org/10.1016/j.apacoust.2015.12.006) | published | Adapted for tonal noise. | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html), [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) |
| 2010 | [More (2010)](https://docs.lib.purdue.edu/dissertations/AAI3453255) | published | Adds tonality. | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html), [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) |
| 1999 | [Zwicker & Fastl (1999)](https://doi.org/10.1007/978-3-662-09562-1) | published | Book version of the model. | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html), [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html), [PsychoacousticParametersMeasurer](https://zhenxianli.github.io/LISQM/projects/psychoacoustic-parameters-measurer.html) |
| 1992 | [Widmann (1992)](https://zhenxianli.github.io/LISQM/standards.html#ref-widmann-1992) | published | Original model. | **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html), [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html) |

## Project map

The lines of the project map for psychoacoustic annoyance only, between the projects listed for it (the whole map: https://zhenxianli.github.io/LISQM/projects/map.md). Agreement between a project and the code it was ported or adapted from only checks the port.

### Ported or adapted from another project

- From **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**: [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) (Di et al. (2016), More (2010), and Zwicker & Fastl (1999))

### Results checked against another project

- [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html) against **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (Widmann (1992))

### Same contributor

- **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** and [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) (Mike Lotinga)

On the map without a line, as no relation to another project listed for psychoacoustic annoyance is recorded for them: [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html) and [PsychoacousticParametersMeasurer](https://zhenxianli.github.io/LISQM/projects/psychoacoustic-parameters-measurer.html).

## Implementations

| Project | Language | Edition | Functions | Validation (as stated) | Notes |
|---|---|---|---|---|---|
| **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** | MATLAB | [Di et al. (2016)](https://doi.org/10.1016/j.apacoust.2015.12.006) (since v1.0) | `PsychoacousticAnnoyance_Di2016`, `PsychoacousticAnnoyance_Di2016_from_percentile` | not stated | — |
| **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** | MATLAB | [More (2010)](https://docs.lib.purdue.edu/dissertations/AAI3453255) (since v1.0) | `PsychoacousticAnnoyance_More2010`, `PsychoacousticAnnoyance_More2010_from_percentile` | not stated | — |
| **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** | MATLAB | [Zwicker & Fastl (1999)](https://doi.org/10.1007/978-3-662-09562-1) (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](https://zhenxianli.github.io/LISQM/projects/sqat.html)** | MATLAB | [Widmann (1992)](https://zhenxianli.github.io/LISQM/standards.html#ref-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](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) | MATLAB, Python | [Di et al. (2016)](https://doi.org/10.1016/j.apacoust.2015.12.006) (Python, from precomputed metric values) | `diPA` | not stated | — |
| [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) | MATLAB, Python | [More (2010)](https://docs.lib.purdue.edu/dissertations/AAI3453255) (Python, from precomputed metric values) | `morePA` | not stated | — |
| [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html) | MATLAB, Python | [Widmann (1992)](https://zhenxianli.github.io/LISQM/standards.html#ref-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](https://zhenxianli.github.io/LISQM/projects/phonometry.html) | Python | [Zwicker & Fastl (1999)](https://doi.org/10.1007/978-3-662-09562-1) (since 3.1.0) | `psychoacoustic_annoyance`, `psychoacoustic_annoyance_from_signal` | own tests only | Newly released project, not yet seen to be widely used. Follows Eqs. 16.2–16.4 of Fastl & Zwicker (2007), the textbook form of Widmann's model. |
| [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html) | Julia | [Widmann (1992)](https://zhenxianli.github.io/LISQM/standards.html#ref-widmann-1992) (percentile convention (N5, S5, R5, FS5) and a stationary approximation; since 0.4.0) | `psychoacoustic_annoyance_widmann` | compared with SQAT | Newly released project, not yet seen to be widely used. Uses ZwickerLoudness.jl. |
| [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) | Python | [Di et al. (2016)](https://doi.org/10.1016/j.apacoust.2015.12.006) | `PsychoacousticAnnoyance_Di2016` | compared with SQAT (its source) | Developing project: no publication or documented use by others. No licence file: by default, copying, changing or sharing the code needs the author's permission. |
| [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) | Python | [More (2010)](https://docs.lib.purdue.edu/dissertations/AAI3453255) | `PsychoacousticAnnoyance_More2010` | compared with SQAT (its source) | Developing project: no publication or documented use by others. No licence file: by default, copying, changing or sharing the code needs the author's permission. |
| [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html) | Python | [Zwicker & Fastl (1999)](https://doi.org/10.1007/978-3-662-09562-1) | `PsychoacousticAnnoyance_Zwicker1999` | compared with SQAT (its source) | Developing project: no publication or documented use by others. No licence file: by default, copying, changing or sharing the code needs the author's permission. |
| [PsychoacousticParametersMeasurer](https://zhenxianli.github.io/LISQM/projects/psychoacoustic-parameters-measurer.html) | Python | [Zwicker & Fastl (1999)](https://doi.org/10.1007/978-3-662-09562-1) | `psychoacousticAnnoyance` | not stated | Legacy project, no longer maintained. No licence file: by default, copying, changing or sharing the code needs the author's permission. The header cites Zwicker & Fastl, "Psychoacoustics: Facts and Models", without naming an edition. |

## 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.

- **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**, Di et al. (2016); More (2010): not stated
  - No verification routine (README).
- [refmap-psychoacoustics](https://zhenxianli.github.io/LISQM/projects/refmap-psychoacoustics.html), Widmann (1992): standard or paper data
  - A validation script (`validation/metrics/mlab/acousticPsychAnnoyValidation.m`) compares the MATLAB version with values from Widmann (1992).
- [phonometry](https://zhenxianli.github.io/LISQM/projects/phonometry.html), 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](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html), Widmann (1992): compared with **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**
  - 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 %.
- [pySQAT](https://zhenxianli.github.io/LISQM/projects/pysqat.html), Di et al. (2016); More (2010); Zwicker & Fastl (1999): compared with **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)** (its source)
  - Ported or adapted from **[SQAT](https://zhenxianli.github.io/LISQM/projects/sqat.html)**. 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.

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](https://zhenxianli.github.io/LISQM/projects/sqat.html)**: Statistics such as N5 take the nearest rank of the sorted time series, without interpolation (`get_exceeded_value`), and leave out the first `time_skip` seconds of the signal.
- [PsychoacousticMetrics.jl](https://zhenxianli.github.io/LISQM/projects/psychoacousticmetrics-jl.html): 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

1. 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].
2. Zwicker, E., & Fastl, H. (1999). *Psychoacoustics: Facts and models* (2nd ed.). Springer. https://doi.org/10.1007/978-3-662-09562-1
3. 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
4. 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
5. 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
