config.stt is one {provider, model} pair from the catalog’s stt array, plus an optional fallback. It decides how the caller is transcribed and what ends their turn: there is no turn-detection setting, it follows from the model and config.language. Voice and video cascade agents; a text agent’s optional stt only transcribes voice notes. There is no language on stt.
Streaming or batch
The catalog entry’sstreaming flag decides it.
A fallback must have the same
streaming value as the primary. OpenRouter speech-to-text models are all batch.
What ends a turn
GET /v1/catalog returns turn_detector_languages (14 languages, including English, Hindi, Spanish, Chinese and Arabic). Matching uses the primary subtag, so en-IN and pt-BR qualify. A batch model with one of those languages is the only pipeline that judges meaning rather than silence. A realtime model detects turns inside the provider; see realtime models.
Endpointing per model
turn_handling.endpointing has two fields (defaults and limits in turn handling):
max_silence_durationis used only by the end-of-turn model, so only on a batch model with a covered language. Elsewhere it is ignored.min_silence_durationalways applies, but what it controls depends on the model:
The same value tunes the local voice detector for the whole call.
Fixing mistimed turns
Next
Language
How Auto behaves per model.
Turn handling
Interruptions, endpointing defaults and preemptive generation.