> ## Documentation Index
> Fetch the complete documentation index at: https://docs.retellai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Speech recognition providers

> Compare Retell AI speech recognition providers, understand automatic routing and fallback, and choose a custom provider for an agent or conversation flow node.

Retell selects a speech recognition provider for your agent's languages when you use a preset transcription mode. **Custom Settings** lets you choose a supported provider for the whole agent or for a conversation flow node.

These settings apply to cascading voice agents. Speech-to-speech models handle audio directly and do not use these transcription controls.

## Provider overview

| Provider | Language support in Retell |
| - | - |
| Azure | Broad single-language coverage. Not available for multilingual configurations. |
| Deepgram | Single-language transcription and multilingual code-switching for supported language combinations. |
| Soniox | Single-language transcription and code-switching across a broad set of languages. |
| AssemblyAI | Single-language transcription and code-switching across its supported languages. |

Use the [language support table](/build/language-support#speech-recognition-asr-support) to check individual languages and [multilingual agent guidance](/agent/multilingual) to choose a combination. The dashboard filters custom providers to those that support every selected language.

Transcription latency depends on the provider, language, endpointing, and the caller's speech. Compare providers with representative [web test calls](/test/test-web); a single latency figure does not describe every configuration.

## How Retell picks a provider

[Transcription Mode](/build/transcription-mode) determines how the provider is selected:

* **Optimize for speed** uses Retell's provider configuration for responsive transcription in the selected languages.
* **Optimize for accuracy** uses the accuracy-oriented configuration for those languages.
* **Custom Settings** tries your chosen provider first, using its configured endpointing where supported.

Presets can route calls across multiple providers. **(Provider Config)** beside a preset shows the current provider information, including routing shares when applicable.

Retell can fall back to another provider if the selected provider fails. Choosing a custom provider does not disable fallback.

## Choose a provider for one node

A conversation flow can use a global transcription mode and a different mode in an individual [conversation node](/build/conversation-flow/conversation-node) or [subagent node](/build/conversation-flow/subagent-node). For example, use a custom provider in a node that collects account numbers, then return to the global preset for the rest of the call.

Open the node's **Node settings**, enable **Transcription Mode**, and select **Custom Settings** to choose its provider. Follow [node transcription overrides](/build/transcription-mode#override-transcription-for-a-node) for setup, inheritance behavior, and endpointing controls.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.