Evaluation metrics¶
These are objective predictors or signal diagnostics, not interchangeable perceptual scales. MOSNet and SRMR rate the processed signal without a clean reference; the remaining metrics compare signals.
25 metrics are registered. ↑ indicates higher is better; ↓ indicates lower is better.
| Metric / registry identifier | Direction · scale | What it measures | Reference |
|---|---|---|---|
BSSEvalBSS_EVAL_METRIC |
↑ dB | Reports several distortion measures originally designed for source-separation evaluation. | 18 |
CbakCBAK_METRIC |
↑ 1–5 | Predicts the perceived intrusiveness of background noise in processed speech. | 13 |
CDCEPSTRUM_DISTANCE_METRIC |
↓ dB | Compares cepstral representations of reference and processed speech. | 7 |
CovlCOVL_METRIC |
↑ 1–5 | Predicts overall speech quality, combining signal distortion and noise effects. | 13 |
CsigCSIG_METRIC |
↑ 1–5 | Predicts how much the speech signal itself sounds distorted. | 13 |
fwSNRsegFWSNR_SEG_METRIC |
↑ dB | Measures segmental SNR with frequency-band weighting relevant to speech. | 13 |
LLRLLR_METRIC |
↓ distance | Measures how much the linear-prediction model of speech changes after processing. | 13 |
LSDLSD_METRIC |
↓ dB | Measures the difference between short-time log-magnitude spectra in decibels. | — |
MCDMEL_CEPSTRAL_DISTANCE_METRIC |
↓ dB | Measures changes in speech spectral shape using a mel-scaled representation. | 11 |
MRSCMRSC_METRIC |
↓ ratio | Measures relative spectral error at several time-frequency resolutions. | — |
PESQPESQ_METRIC |
↑ MOS-LQO 1–4.64 | Predicts perceived speech quality by comparing degraded speech with its reference. | 8 |
SI-SDRSISDR_METRIC |
↑ dB | Measures waveform distortion after compensating for a single global scale factor. | 17 |
SNRSNR_METRIC |
↑ dB | Measures waveform fidelity as the ratio of original signal energy to error energy. | 7 |
SNRsegSNR_SEG_METRIC |
↑ dB | Averages signal-to-noise ratios over short speech frames. | 7 |
ViSQOL AudioVISQOL_METRIC |
↑ MOS-LQO (audio SVR, maximum about 4.75) | Estimates perceived audio quality from similarity between reference and processed spectrograms. | 46, 46 |
WSSWSS_METRIC |
↓ distance | Compares the slopes of reference and processed speech spectra. | 13 |
CSIICSII_METRIC |
↑ 0–1 | Estimates intelligibility using coherence between reference and processed speech. | 7 |
eSTOIESTOI_METRIC |
↑ index (usually 0–1) | Extends STOI with a spectro-temporal comparison useful for fluctuating interference. | 45 |
NCMNCM_METRIC |
↑ 0–1 | Measures preservation of slow speech-envelope modulations across frequency bands. | 7 |
STGISTGI_METRIC |
↑ 0–1 | Estimates how many local spectro-temporal speech patterns remain sufficiently preserved. | 15 |
STOISTOI_METRIC |
↑ 0–1 | Estimates speech intelligibility from preservation of short-time spectral envelopes. | 9 |
wSTMIWSTMI_METRIC |
↑ index | Predicts intelligibility from weighted spectro-temporal modulation similarities. | 14 |
BSDBSD_METRIC |
↓ distance | Measures reference-relative spectral distortion on the Bark auditory scale. | 7 |
SRMRSRMR_METRIC |
↑ ratio | Estimates reverberation-related degradation from the processed signal alone. | 10 |
MOSNetAI_MOSNET_METRIC |
↑ MOS 1–5 | Predicts speech quality using a pretrained neural network rather than a samplewise reference comparison. | 16 |
Reading the results¶
- Embedding distortion: compare cover with stego (
metrics). - Attack damage: compare stego with attacked audio (
attack_metrics). - Payload recovery: report BER, exact-message recovery and trial completion separately.
- Security: use held-out steganalysis, not a quality score.
Report every component of vector-valued metrics separately. Keep PESQ raw and MOS-LQO values distinct; do not rank the BSSEval permutation index. STOI, eSTOI, STGI and wSTMI predict speech intelligibility, not music quality. Composite ratings and MOSNet inherit the domains used to develop their predictors. The Hu–Loizou study evaluates correlations with listening-test ratings and constructs composite predictors; it does not establish their validity for every watermarking distortion. 13
ViSQOL needs separately installed official bindings and its SVR model. MOSNet needs the TensorFlow extra. Missing dependencies and invalid inputs are metric errors, not valid zero scores. See installation and the measurement definitions.
Metric reference¶
Generated from the card attribute of each class by python -m taf.catalogue_docs; edit the card, not this section. The same texts, in English and Polish, appear in the research UI.
Speech quality¶
BSS Eval v4 (BSSEval)¶
BSS_EVAL_METRIC · ↑ higher is better · dB · intrusive (compares with the original) · audio material · source code
Reports several distortion measures originally designed for source-separation evaluation.
Uses museval BSS Eval v4 to decompose estimation errors into target-related, interference and artefact terms. Returns SDR, ISR, SIR and SAR in dB, plus a source permutation index. Higher is better for the four ratios; perm identifies source assignment and is not a quality score. Some components can be degenerate for single-source comparisons.
Components: sdr, isr, sir, sar, perm (reported separately) · Reference: Stöter et al. (2018) [18]
Composite background-noise rating (Cbak)¶
CBAK_METRIC · ↑ higher is better · 1–5 · intrusive (compares with the original) · speech material · source code
Predicts the perceived intrusiveness of background noise in processed speech.
Combines PESQ, segmental SNR and weighted spectral slope through an empirical regression. The resulting composite score is limited to the 1–5 range, with higher values meaning less intrusive background noise. It is calibrated for speech enhancement and needs the original reference; it is not a direct measurement of background-noise power.
Reference: Hu & Loizou (2008) [13]
Cepstral distance (CD)¶
CEPSTRUM_DISTANCE_METRIC · ↓ lower is better · dB · intrusive (compares with the original) · speech material · source code
Compares cepstral representations of reference and processed speech.
Derives cepstral coefficients from short-frame speech models and computes their distance. Cepstral features describe spectral-envelope shape rather than individual waveform samples. Lower distance in dB means a closer envelope. It needs a reference and should be interpreted alongside other metrics, since matching envelopes do not imply identical phase or perceptual quality.
Reference: Loizou (2013) [7]
Composite overall-quality rating (Covl)¶
COVL_METRIC · ↑ higher is better · 1–5 · intrusive (compares with the original) · speech material · source code
Predicts overall speech quality, combining signal distortion and noise effects.
Uses an empirical combination of PESQ, log-likelihood ratio and weighted spectral slope to produce a composite 1–5 score. Higher is better. The model was designed for speech-enhancement evaluation; its scale should not be treated as directly interchangeable with PESQ, MOSNet or a listening-test MOS.
Reference: Hu & Loizou (2008) [13]
Composite signal-distortion rating (Csig)¶
CSIG_METRIC · ↑ higher is better · 1–5 · intrusive (compares with the original) · speech material · source code
Predicts how much the speech signal itself sounds distorted.
Combines PESQ, log-likelihood ratio and weighted spectral slope using an empirical regression, then limits the prediction to 1–5. Higher values mean better predicted speech-signal quality. It focuses on speech distortion rather than background-noise annoyance and is a model estimate, not a listener’s actual rating.
Reference: Hu & Loizou (2008) [13]
Frequency-weighted segmental SNR (fwSNRseg)¶
FWSNR_SEG_METRIC · ↑ higher is better · dB · intrusive (compares with the original) · speech material · source code
Measures segmental SNR with frequency-band weighting relevant to speech.
Separates short-time spectra into perceptual bands, computes bandwise signal-to-error ratios and combines them with frequency-dependent weights. Higher scores indicate less weighted distortion. It can distinguish errors with similar total energy but different spectral locations; it requires a reference and temporal alignment.
Reference: Hu & Loizou (2008) [13]
Log-likelihood ratio (LLR)¶
LLR_METRIC · ↓ lower is better · distance · intrusive (compares with the original) · speech material · source code
Measures how much the linear-prediction model of speech changes after processing.
Fits linear predictive coefficients to reference and processed frames, then evaluates a log ratio of prediction-error terms using the reference autocorrelation. Lower values indicate more similar spectral envelopes. It is intended for speech; silence, numerical conditioning and time alignment can affect the estimate.
Reference: Hu & Loizou (2008) [13]
Log-spectral distance (LSD)¶
LSD_METRIC · ↓ lower is better · dB · intrusive (compares with the original) · audio material · source code
Measures the difference between short-time log-magnitude spectra in decibels.
Uses 32 ms Hann windows with 75% overlap and a −100 dBFS magnitude floor. For each frame it takes the RMS spectral difference in dB, then averages frames. Lower is closer to the reference. It exposes spectral changes but ignores phase differences that leave magnitudes unchanged; it is a diagnostic, not a MOS predictor.
Reference: —
Mel-cepstral distance (MCD)¶
MEL_CEPSTRAL_DISTANCE_METRIC · ↓ lower is better · dB · intrusive (compares with the original) · speech material · source code
Measures changes in speech spectral shape using a mel-scaled representation.
Builds 20-band mel power spectrograms with a 1024-sample Hamming window and 256-sample hop, then passes them to the mel-cepstral-distance comparison library. Lower MCD means closer representations. Values depend on feature extraction and comparison settings, so scores from differently configured MCD implementations are not automatically interchangeable.
Reference: Kubichek (1993) [11]
Multi-resolution spectral convergence (MRSC)¶
MRSC_METRIC · ↓ lower is better · ratio · intrusive (compares with the original) · audio material · source code
Measures relative spectral error at several time-frequency resolutions.
Computes STFT magnitudes with 16, 32 and 64 ms windows and 75% overlap. At each resolution it divides the Frobenius norm of the magnitude error by the reference norm, then averages. Lower is better and zero indicates matching magnitudes. A silent reference is undefined; some phase changes remain invisible. This ratio is not a perceptual MOS.
Reference: —
Perceptual evaluation of speech quality (PESQ)¶
PESQ_METRIC · ↑ higher is better · MOS-LQO 1–4.64 · intrusive (compares with the original) · speech material · source code
Predicts perceived speech quality by comparing degraded speech with its reference.
Uses the PESQ perceptual model to align and compare auditory representations, combining disturbance measures into MOS-LQO. Higher is better; the catalogue reports the wideband scale up to about 4.64. The implementation depends on the PESQ library and supported speech sample rates. It is a speech-quality estimate, not a general music metric or a bit-error measure. Input must be sampled at 8 or 16 kHz. Two components are reported: the raw narrowband P.862 score (undefined, and reported as missing, at 16 kHz) and MOS-LQO.
Components: p862_raw, mos_lqo (reported separately) · Reference: ITU-T P.862 / Wang et al. (2022) [8]
Scale-invariant signal-to-distortion ratio (SI-SDR)¶
SISDR_METRIC · ↑ higher is better · dB · intrusive (compares with the original) · audio material · source code
Measures waveform distortion after compensating for a single global scale factor.
Projects the processed signal onto the reference and compares projected target energy with residual energy in dB. Higher SI-SDR is better. Unlike ordinary SNR, a uniform gain change is discounted; timing errors and other waveform changes still count. Use alongside level-sensitive metrics when amplitude preservation matters.
Reference: Le Roux et al. (2019) [17]
Signal-to-noise ratio (SNR)¶
SNR_METRIC · ↑ higher is better · dB · intrusive (compares with the original) · audio material · source code
Measures waveform fidelity as the ratio of original signal energy to error energy.
Computes 10 log10 of reference energy divided by the energy of the samplewise difference. Higher dB means less error relative to the reference. Requires aligned signals and penalises gain or time shifts strongly. It measures numerical fidelity, not perceived quality, message recovery or steganographic detectability.
Reference: Loizou (2013) [7]
Segmental signal-to-noise ratio (SNRseg)¶
SNR_SEG_METRIC · ↑ higher is better · dB · intrusive (compares with the original) · speech material · source code
Averages signal-to-noise ratios over short speech frames.
Calculates a local energy-to-error ratio for each frame, limits extreme frame scores and averages them. This gives quieter sections more influence than a single global SNR. Higher dB is better. Frame length, silence and alignment affect the result; it remains an error-energy measure rather than a listening score.
Reference: Loizou (2013) [7]
ViSQOL Audio (ViSQOL Audio)¶
VISQOL_METRIC · ↑ higher is better · MOS-LQO (audio SVR, maximum about 4.75) · intrusive (compares with the original) · audio material · source code
Estimates perceived audio quality from similarity between reference and processed spectrograms.
Uses official Google ViSQOL bindings and the audio-mode SVR model, with both inputs polyphase-resampled to 48 kHz. Spectro-temporal similarity is mapped to MOS-LQO, whose audio-model maximum is about 4.75. Prefer active clips around 8–10 seconds. Requires optional bindings and model data; do not compare these scores directly with ViSQOL speech mode.
Reference: Chinen et al. (2020) [46], google/visqol [46] · Requires: visqol
Weighted spectral slope (WSS)¶
WSS_METRIC · ↓ lower is better · distance · intrusive (compares with the original) · speech material · source code
Compares the slopes of reference and processed speech spectra.
Calculates differences between adjacent perceptual-band levels and weights slope mismatches, emphasising important spectral peaks. Lower distance means better preservation of spectral shape. Requires reference speech and aligned frames. It highlights spectral-envelope damage but does not directly measure intelligibility or payload recovery.
Reference: Hu & Loizou (2008) [13]
Speech intelligibility¶
Coherence speech intelligibility index (CSII)¶
CSII_METRIC · ↑ higher is better · 0–1 · intrusive (compares with the original) · speech material · source code
Estimates intelligibility using coherence between reference and processed speech.
Computes coherence-based signal-to-distortion information in weighted frequency bands. Returns separate high, mid and low indices for speech segments at different levels. Higher values indicate better preserved intelligibility cues. The three components describe different portions of speech and should not be mistaken for repeated measurements of one global score.
Components: high, mid, low (reported separately) · Reference: Loizou (2013) [7]
Extended short-time objective intelligibility (eSTOI)¶
ESTOI_METRIC · ↑ higher is better · index (usually 0–1) · intrusive (compares with the original) · speech material · source code
Extends STOI with a spectro-temporal comparison useful for fluctuating interference.
Uses pystoi in extended mode, comparing normalised short-time time-frequency envelope patterns. Higher eSTOI indicates better predicted speech intelligibility, usually on an index scale near 0–1. It requires reference speech and remains a proxy: it does not measure listening quality, message decoding or steganographic security.
Reference: Jensen & Taal (2016) [45]
Normalised-covariance measure (NCM)¶
NCM_METRIC · ↑ higher is better · 0–1 · intrusive (compares with the original) · speech material · source code
Measures preservation of slow speech-envelope modulations across frequency bands.
Splits speech into 20 bands, extracts Hilbert envelopes and resamples them to 32 Hz. Normalised envelope covariance is mapped to apparent SNR and combined using speech-importance weights. Higher scores indicate better predicted intelligibility. This implementation accepts 8 or 16 kHz input and requires a reference; it does not assess bit recovery.
Reference: Loizou (2013) [7]
Spectro-temporal glimpsing index (STGI)¶
STGI_METRIC · ↑ higher is better · 0–1 · intrusive (compares with the original) · speech material · source code
Estimates how many local spectro-temporal speech patterns remain sufficiently preserved.
Resamples speech to 10 kHz, builds log-mel spectrograms and applies spectro-temporal Gabor filters. Normalised local similarities are compared with channel-specific thresholds; the score averages the resulting preserved-pattern decisions. Higher is better on a 0–1 scale. Sufficient speech duration is needed for the analysis windows; the result is not a word-recognition rate.
Reference: Edraki et al. (2021) [15]
Short-time objective intelligibility (STOI)¶
STOI_METRIC · ↑ higher is better · 0–1 · intrusive (compares with the original) · speech material · source code
Estimates speech intelligibility from preservation of short-time spectral envelopes.
Compares reference and processed temporal envelopes in one-third-octave bands over short segments, after the algorithm’s normalisation and clipping steps. Higher values, commonly near the 0–1 range, suggest better intelligibility. It does not recognise words: the score is not a percentage of correctly understood words and is not a general music-quality metric.
Reference: Taal et al. (2010) [9]
Weighted spectro-temporal modulation index (wSTMI)¶
WSTMI_METRIC · ↑ higher is better · index · intrusive (compares with the original) · speech material · source code
Predicts intelligibility from weighted spectro-temporal modulation similarities.
Computes log-mel features and Gabor modulation responses after conversion to 10 kHz. Normalised reference-to-processed correlations are combined with fixed learned weights and a bias. Higher values indicate better predicted intelligibility. This is an index, not a percentage or MOS; interpret it consistently within the same implementation and speech domain.
Reference: Edraki et al. (2021) [14]
Reverberation¶
Bark spectral distortion (BSD)¶
BSD_METRIC · ↓ lower is better · distance · intrusive (compares with the original) · speech material · source code
Measures reference-relative spectral distortion on the Bark auditory scale.
Maps short-time power spectra into 32 Bark bands and averages the squared band-energy error normalised by reference band energy. Lower values mean closer spectra. Although grouped with reverberation metrics, it responds to other spectral changes as well and is not a direct measurement of room reverberation time.
Reference: Loizou (2013) [7]
Speech-to-reverberation modulation energy ratio (SRMR)¶
SRMR_METRIC · ↑ higher is better · ratio · non-intrusive (rates the signal alone) · speech material · source code
Estimates reverberation-related degradation from the processed signal alone.
Analyses modulation energy in auditory-band envelopes and forms a ratio of lower to higher modulation-frequency energy. Higher SRMR generally suggests less reverberant degradation for speech. It does not require a clean reference and is not a direct RT60 estimate. Noise, speaking style and signal content can also influence its value.
Components: cover, processed (reported separately) · Reference: Falk et al. (2010) [10]
Learned (AI-based)¶
MOSNet (MOSNet)¶
AI_MOSNET_METRIC · ↑ higher is better · MOS 1–5 · non-intrusive (rates the signal alone) · speech material · source code
Predicts speech quality using a pretrained neural network rather than a samplewise reference comparison.
Feeds magnitude spectrograms through convolutional and bidirectional LSTM layers and averages frame predictions. TAF evaluates cover and processed audio independently, returning both scores; only processed is ranked as the result. Higher predicts better quality. Requires TensorFlow and model weights; predictions depend on the training domain and are not actual listener ratings. MOSNet was developed for voice conversion; applying it to watermarked or attacked audio requires validation.
Components: cover, processed (reported separately) · Reference: Lo et al. (2019) [16] · Requires: tensorflow — install with pip install "the-a-files[ai]"