SIGMOS Filter
Filter audio segments using SIGMOS (Signal-based Mean Opinion Score) — a multi-dimensional perceptual-quality model that produces seven independent scores per audio clip. Unlike UTMOS (a single composite MOS), SIGMOS lets you target specific kinds of degradation independently.
Understanding SIGMOS
The Seven Quality Dimensions
Each dimension is independently configurable on a 0.0–5.0 scale (higher = better). Setting any threshold to None disables that dimension; a segment passes only if all active thresholds are met.
Threshold Guidelines
The table below provides starting points; tune by inspecting per-dimension distributions on your data.
The default configuration only enables noise_threshold=4.0 and ovrl_threshold=3.5. Activate additional dimensions only when targeted at a specific failure mode in your data.
When to Use SIGMOS vs UTMOS
- UTMOS is single-score, fast, and a good first cut.
- SIGMOS is multi-dimensional and lets you keep audio with one kind of acceptable degradation while rejecting another. Use SIGMOS when you need to enforce specific quality requirements (e.g., “no reverb” or “no click artifacts”) that a single MOS score can’t express.
Basic SIGMOS Filtering
Step 1: Score the Dataset
Run SIGMOS in score-only mode by leaving every threshold at the default (None for the disabled ones; defaults already active are noise=4.0, ovrl=3.5). To capture all seven dimensions for analysis, disable filtering by setting active defaults to None:
Each output AudioTask will carry seven new fields (sigmos_noise, sigmos_ovrl, etc.) regardless of which thresholds are active.
Step 2: Inspect Per-Dimension Distributions
Export the scored manifest and inspect distributions per dimension:
Use the percentiles to choose thresholds — for example, set noise_threshold at the 25th percentile to drop the bottom quarter of the data on noise.
Step 3: Apply Tuned Thresholds
A segment is dropped if any active threshold fails. Setting any threshold to None disables that dimension.
Parameters
The default resource allocation is Resources(cpus=1.0, gpus=0.5).
Domain-Specific Tuning
Voice Cloning / TTS
TTS training is sensitive to noise, reverb, and clipping. Activate the relevant dimensions:
Far-Field / Conference Audio
Far-field recordings have heavy reverb and variable noise. Loosen reverb but tighten signal cleanliness:
Web-Scraped Audio
Web audio is heterogeneous. Start permissive and tighten dimensions one at a time after inspecting failure modes:
Complete SIGMOS Pipeline Example
A pipeline that stacks UTMOS (cheap) and SIGMOS (fine-grained):
Best Practices
- Score before filtering: SIGMOS is more expensive than UTMOS, so always run with all thresholds disabled first to inspect distributions before committing to thresholds.
- Activate one dimension at a time: enabling all seven thresholds aggressively will leave very little data. Activate one or two relevant dimensions, then add more if specific failure modes survive.
- Stack UTMOS first: run UTMOS as a cheap upstream cut to drop obviously-bad segments before paying for SIGMOS scoring.
- Match the dimension to the use case: don’t enforce reverb thresholds on data captured in a hall; don’t enforce noise thresholds on field recordings if mild noise is acceptable.
Related Topics
- UTMOS Filter — single-score MOS predictor; commonly stacked before SIGMOS.
- VAD Segmentation — produces the speech segments SIGMOS scores.
AudioDataFilterStageComposite — bundles SIGMOS with the standard defaults.