Languages and providers
To speak a language, a voice AI Agent needs two providers. A speech-to-text (STT) provider hears the language, and a text-to-speech (TTS) provider says it. You select the providers for each language in the voice settings of the AI Agent. This page lists the providers, their models, and the languages that each model supports in Moveo.
How a call picks its language
- The call starts in the primary language of the AI Agent. You select this language at the creation of the AI Agent.
- With at least one entry in Additional languages, the AI Agent detects the language of the caller on each turn and replies in it. With none, every reply uses the primary language. See Languages.
- Each reply is in one language. The AI Agent speaks it with the text-to-speech settings of that language. A language without settings uses its Moveo default, or else the voice of the primary language.
- A regional code falls back to its base language. For example, a
pt-brreply withoutpt-brsettings uses theptsettings. - The voice changes between replies, never inside one reply.
- The voice of another language connects the first time a reply uses it. If it is not ready within one second, that reply uses the next voice in the fallback order.
- Speech-to-text is fixed for the call. It connects once, at the start of the call. It uses the speech-to-text settings of the primary language.
- If a text-to-speech step fails during a call, the next step of the same language speaks. The AI
Agent repeats the part of the reply that the caller did not hear. When the language has no step
left, the
*list speaks, then the voice of the primary language. See the API reference of the voice settings. - The primary language needs speech settings or a Moveo default. See Default settings.
Hear more than one language
Because speech-to-text does not change during the call, select a model that hears every language your callers use:
- Soniox takes up to 10
language_hints. Moveo adds the primary language and each language with text-to-speech settings to the hints. Languages with a Moveo default count too. With more than one hint, Moveo turns on language identification. Soniox then reports the language it hears, and Moveo connects the voice of that language early. The voice is then ready for the start of the reply. - Deepgram
flux-general-multihears 10 languages: English, Spanish, French, German, Hindi, Russian, Portuguese, Japanese, Italian, and Dutch. - Deepgram
nova-3andnova-2accept themultilanguage code.
Provider catalog
| Provider | STT models | TTS models | Moveo-hosted | Speech model |
|---|---|---|---|---|
| ElevenLabs | scribe_v2_realtime | eleven_multilingual_v2, eleven_flash_v2_5, eleven_turbo_v2_5 | Yes | Yes |
| Cartesia | None | sonic-3, sonic-3.5 | Yes | Yes |
| MiniMax | None | speech-2.8-hd, speech-2.8-turbo | Yes | Yes |
| Soniox | stt-rt-v5, stt-rt-v4 | None | Yes | Yes |
| Deepgram | nova-3, nova-3-medical, nova-2, flux-general-en, flux-general-multi | aura-2 | Yes | Yes |
| Rime | None | coda, mistv3 | Yes | Yes |
| None | chirp3-hd | Yes | Yes |
- Moveo-hosted means that the AI Agent can use the provider with the key of Moveo. The column shows the default list. Your region can host fewer providers.
- Speech model means that you can add your own provider key as a speech model.
GET /v1/speech-models/providersreturns the providers, the models, and the hosted status of your region.
Languages by provider
The table shows the languages of an AI Agent and the providers that support each one. In the
Deepgram STT and Rime columns, a model name means that only this model supports the language. For
ElevenLabs text-to-speech, "Flash, Turbo" means eleven_flash_v2_5 and eleven_turbo_v2_5 only.
Google chirp3-hd speaks every locale of the Google Chirp 3: HD list, Greek and Brazilian
Portuguese included.
| Language | Soniox STT | Deepgram STT | ElevenLabs STT | ElevenLabs TTS | Cartesia TTS | MiniMax TTS | Deepgram TTS | Rime TTS |
|---|---|---|---|---|---|---|---|---|
| Arabic | Yes | nova-3 | Yes | Yes | Yes | Yes | No | coda |
| Bulgarian | Yes | Yes | Yes | Yes | Yes | No | No | No |
| Chinese | Yes | nova-2 | Yes | Yes | Yes | Yes | No | No |
| Croatian | Yes | nova-3 | Yes | Yes | Yes | No | No | No |
| Czech | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| Danish | Yes | Yes | Yes | Yes | Yes | No | No | No |
| Dutch and Flemish | Yes | Yes | Yes | Yes | Yes | Yes | Yes | coda |
| English | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| French | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| German | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Greek | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| Indonesian | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| Italian | Yes | Yes | Yes | Yes | Yes | Yes | Yes | coda |
| Japanese | Yes | Yes | Yes | Yes | Yes | Yes | Yes | coda |
| Malay | Yes | Yes | Yes | Yes | Yes | No | No | No |
| Polish | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| Portuguese (and BR) | Yes | Yes | Yes | Yes | Yes | Yes | No | coda |
| Romanian | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| Russian | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| Spanish | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Swedish | Yes | Yes | Yes | Yes | Yes | No | No | No |
| Tagalog | Yes | nova-3 | Yes | Yes | Yes | No | No | No |
| Thai | Yes | nova-2 | Yes | No | Yes | Yes | No | No |
| Turkish | Yes | Yes | Yes | Yes | Yes | Yes | No | No |
| Vietnamese | Yes | Yes | Yes | Flash, Turbo | Yes | Yes | No | No |
The console marks Serbian, Albanian, and Welsh as Text only in Additional languages. They get no row in Speech configurations, and a voice AI Agent cannot speak them.
Model limits
flux-general-enis English only. A row for another language does not show it.flux-general-multihears only the 10 languages in Hear more than one language.nova-3-medicalis English only.eleven_multilingual_v2speaks 29 languages.eleven_flash_v2_5andeleven_turbo_v2_5add Hungarian, Norwegian, and Vietnamese.- MiniMax voices are multilingual. The
language_boostsetting selects one of 23 languages, orauto. - Cartesia speaks 42 languages.
- Deepgram
aura-2speaks English, Spanish, German, French, Dutch, Italian, and Japanese. The voice ID includes the language, for examplethalia-en. - Rime
mistv3speaks English, French, German, and Spanish. Rimecodaadds Arabic, Hindi, Italian, Japanese, Dutch, and Portuguese. - A Google voice ID includes the locale, for example
pt-BR-Chirp3-HD-Charon. The voice speaks the language of its locale.
Next steps
- Select the provider for each language in the voice settings.
- Add your own provider key as a speech model.
- Make names and numbers sound right with pronunciation and speech control.