Transformer Pipelines
August 1, 2026 · View on GitHub
The server can run OVOS transformer plugins around transcription. Both
hooks live in the model containers, so every surface gets them: the
native /stt endpoint, all vendor-compat routers, the websocket streaming
routes, MCP and UTCP.
- Audio transformers process the audio before the STT stage. When the
chain includes an
AudioLanguageDetector, its detected language resolveslang=auto(an explicitly requested language always wins). - Utterance transformers rewrite the transcript before it is returned.
Configuration
Loading is config-gated and opt-in via the standard mycroft.conf sections; with no config the server behaves exactly as before:
{
"audio_transformers": {
"ovos-audio-transformer-plugin-speechbrain-langdetect": {}
},
"utterance_transformers": {
"ovos-utterance-corrections-plugin": {}
}
}
Chains run in ascending priority order (OVOS-TRANSFORM §4); an explicit
"order" list in a section wins over priorities. In multi-model mode
(--multi) one set of transformer instances is shared across the
per-language engines. See the
ovos-plugin-manager transformer docs
for the full contract.
When to use — and the surprise factor
An utterance transformer on the server means clients receive a different transcript than what the STT engine heard — a client sends audio saying "who is the speaker of teh house" and gets back a corrected string it can't distinguish from raw STT output. Do it on purpose:
- Fleet-wide corrections: domain vocabulary fixes (product names, callsigns, jargon) applied once, for every client of this server.
- Language routing: an
AudioLanguageDetectorin the audio chain lets heterogeneous clients sendlang=autoand still hit the right model. - Audio cleanup: server-side denoise before STT when clients are thin and can't do it themselves.
If the effect should be per-device (one bad microphone needs denoise), run the audio transformer on that device instead — and never enable the same plugin on both sides, or it is applied twice. Similarly, if the OVOS stack consuming this server already runs utterance transformers (ovos-core does), enable each text plugin in exactly one of the two places.