Available models
deepgram/flux supports English, Spanish, French, German, Hindi, Russian, Portuguese, Japanese, Italian, and Dutch. For broader language coverage, use deepgram/nova-3, deepgram/nova-2, azure/fast, assemblyai/universal-3-5-pro, xai/grok-stt, or nvidia/parakeet-v3.Selecting a model
Portal
In the AI Assistants tab, edit your assistant and navigate to the Voice tab. Select your preferred STT model from the Transcription Model dropdown.
deepgram/fluxsupports explicit languages,auto, andmultifor its supported languages, and applies Flux end-of-turn defaults.- Other Deepgram models enable
smart_formatandnumeralsby default. assemblyai/universal-3-5-proapplies AssemblyAI turn detection defaults.soniox/stt-rt-v4andsoniox/stt-rt-v5disable endpoint detection by default; term biasing and language hints are left unset.azure/fastdefaults the Azure region tolatency, which auto-selects the closest supported Telnyx-managed region.nvidia/parakeet-v3uses automatic multilingual transcription.omi-health/omi-med-stt-v1pins the language toen.cohere/ar-sttdefaults the language toar. Set it toenexplicitly if needed — unlike other models, it does not auto-detect and rejectsauto.reson8/turnsdefaults the language toautofor automatic detection. Setting an explicit language reduces latency.speechmatics/standarddefaults the language toen; omitting it, or settingauto, also resolves toen.speechmatics/linden-1(preview) has no auto-detect. Omittinglanguagedefaults toen, so set a code from its supported list for other languages; settingautois rejected with a400.
API
Set thetranscription.model field when creating or updating an assistant:
auto, supported models auto-detect the language:
Languages
Supported language options depend on the selected model.
If your assistant has a language filter set elsewhere in the Voice tab, the Portal only shows transcription models and language choices that are compatible with that language.
Deepgram settings
Deepgram Flux end-of-turn detection
deepgram/flux is optimized for live voice agents. It provides end-of-turn detection so the assistant can start responding as soon as the caller finishes speaking. It also supports eager end-of-turn, which starts large language model (LLM) processing before the caller fully stops speaking to reduce perceived response latency.
When you select deepgram/flux in the Portal, these settings are applied by default:
eager_eot_threshold must be less than or equal to eot_threshold. Setting both thresholds to the same value effectively disables eager end-of-turn behavior because the system waits for final end-of-turn confirmation before starting LLM processing.
The
eager_eot_threshold field is controlled by the FE-eager-eot-threshold Portal feature flag. When that flag is disabled, the Portal hides the field, but API payloads can still include it if your account supports the setting.0.1 seconds for wait time and endpointing plan thresholds.
Keyterm Boost
keyterm is a comma-separated list of terms to boost during recognition. Use it for product names, customer names, acronyms, or domain-specific vocabulary. It is supported by deepgram/flux, deepgram/nova-3, reson8/turns, speechmatics/linden-1, and assemblyai/universal-3-5-pro (and its legacy alias assemblyai/universal-streaming).
The full keyterm value is limited to 1000 characters. AssemblyAI models additionally accept at most 100 distinct terms of up to 50 characters each.
Keyterm Boost also supports dynamic variables. Use variables when boosted terms are caller-specific, such as a customer name, participant names, account name, or product names passed into the assistant at conversation start.
Smart Format and Numerals
For Deepgram models other than Flux, the Portal exposes these settings and enables both by default when you select the model:AssemblyAI settings
assemblyai/universal-3-5-pro supports configurable turn detection. When you select it in the Portal, these defaults are applied:
min_turn_silence must be less than or equal to max_turn_silence.
Soniox settings
Soniox offers two model versions:soniox/stt-rt-v4 and soniox/stt-rt-v5. Both support multilingual streaming transcription with automatic language detection.
Term Biasing
soniox/stt-rt-v4 and soniox/stt-rt-v5 support context, a comma-separated list of terms to boost during recognition. Use it for staff names, building names, product names, or other domain-specific vocabulary.
Term Biasing also supports dynamic variables. Use variables when boosted terms are caller-specific, such as a customer name, participant names, account name, or product names passed into the assistant at conversation start.
Language Hints
language_hints pins recognition to one or more languages at once, as an array of ISO 639-1 codes. Use it when an assistant regularly serves callers in a known set of languages, such as Dutch and French, instead of relying on full auto-detection.
Endpoint detection
Parakeet settings
nvidia/parakeet-v3 supports multilingual transcription with automatic language detection. It does not require provider-specific transcription settings.
Reson8 settings
reson8/turns delivers transcripts per turn of speech: the assistant receives the full transcript of a turn when the caller finishes speaking. Language defaults to auto for automatic detection and can be fixed to one of the 10 supported languages. It does not require provider-specific transcription settings.
Cohere settings
cohere/ar-stt is a self-hosted model for Arabic and English transcription. Unlike other models, it does not auto-detect the language and requires an explicit ar or en — auto (and any other value) is rejected. Omitting language defaults to ar. It does not require provider-specific transcription settings.
Speechmatics settings
speechmatics/linden-1 is a preview, vendor-hosted model with broad language coverage (67 language codes, compared with 17 for speechmatics/standard). It has no automatic language detection: omitting language defaults to en, and setting auto is rejected with a 400 (unlike speechmatics/standard, which resolves auto to en). Set the caller’s language explicitly. es-bilingual-en selects the Spanish and English bilingual pack.
To choose a spelling or script variant, set language to en-US, en-GB, or en-AU (English), or cmn-Hans (Simplified) or cmn-Hant (Traditional) for Mandarin. en alone uses the default spelling. These codes are accepted for speechmatics/linden-1 only, not speechmatics/standard.
remove_disfluencies applies to speechmatics/linden-1 only, and only for the languages Speechmatics supports for disfluency removal: ar, cmn, da, de, el, en, es, fr, he, hi, hu, it, ja, nl, pl, pt, and ru. Support follows the base language, so the variants en-US, en-GB, en-AU, cmn-Hans, and cmn-Hant are covered. For other languages, filler words remain in the transcript. See Speechmatics formatting.
Azure settings
azure/fast supports region selection and an optional Azure API key reference.
Common Telnyx-managed regions include
latency, australiaeast, centralindia, eastus, northcentralus, westeurope, and westus2. Additional Azure regions are available when using your own Azure API key.
Fallback models and language booster
An assistant can run more speech-to-text models next to its transcription model,transcription.model, in one of two modes:
An assistant uses one mode at a time. Each fallback model and the language booster take an optional
language and settings:
language: omit it to use the transcription model’s language. If the model doesn’t support that language, the request is rejected; set alanguagefor that model.settings: omit it to use the transcription model’s settings where they apply to the model. Asettingsobject takes the same fields and limits astranscription.settingsand replaces the transcription model’s settings for that model. Fields for another provider are dropped, and the provider’s defaults fill in the rest.
Fallback models
The transcription model and every fallback model must be streaming models:deepgram/flux, deepgram/nova-3, deepgram/nova-2, assemblyai/universal-3-5-pro (or its legacy alias assemblyai/universal-streaming), xai/grok-stt, soniox/stt-rt-v4, soniox/stt-rt-v5, humain/realtime, or reson8/turns. Each fallback model must differ from the transcription model and from the other fallback models.
Language booster
The language booster is set withtranscription.challenger. It and the transcription model must both be streaming models, listed above, or both non-streaming models: azure/fast, nvidia/parakeet-v3, omi-health/omi-med-stt-v1, cohere/ar-stt, distil-whisper/distil-large-v2, openai/whisper-large-v3-turbo, or telnyx/basira. The language booster can also be the same model as the transcription model, on another language.
Set rule to choose how the assistant picks the transcript:
best_turn and best_engine score transcripts on how complete and confident they are, not on their language, so they work best when both models understand the callers’ language. Set the model that is more accurate for the callers as transcription.model: the language booster must outscore it to win. Under best_turn with streaming models, the transcription model also decides when each turn ends.
While both models transcribe, the end of each turn can wait up to about 1.5 seconds for the other model, and eager end-of-turn, such as Deepgram Flux eager_eot_threshold, does not apply.
Updates and validation
- Omit
fallback_modelsorchallengerin an update to keep the stored value. Sendnullto remove either one;[]also removesfallback_models. A newfallback_modelslist replaces the stored list. - To switch modes, remove the other mode in the same request. For example, send
"fallback_models": []with a newchallenger. - When an update changes
transcription.modelortranscription.language, the assistant’s stored fallback models or language booster that no longer fit are removed without an error. The response shows what remains. - With fallback models or a language booster other than
merge_words, the transcription model must supporttranscription.languagealongside other models. For example,cohere/ar-sttsupports onlyarthere. - A request that sets both modes, more than 3 fallback models, or a model that doesn’t fit is rejected with
400. The error names the model, for examplefallback 2 (deepgram/nova-2) doesn't support 'ar' — set a language for it. - In a workflow node, a
transcriptionoverride that setsmodel,fallback_models, orchallengerdoesn’t inherit the assistant’s fallback models or language booster; it uses only the ones it sets. Otherwise the node inherits them, and they must fit the node’s language: a node or assistant change they no longer fit is rejected with400, naming the node.