Skip to main content
Transcribe live audio in any supported language, or several at once, with native code switching. Universal-3.5 Pro Streaming is multilingual by default. It follows speakers as they shift mid-sentence between languages like English and Spanish, French, Hindi or Mandarin, preserving exactly what was said without translating everything into a single language. No configuration is required. Hear what code switching sounds like, and how it’s transcribed.
English <> French
English <> Hindi
English <> Mandarin

Quickstart

Code switching is on by default. Open a streaming session with no language parameters and the model code-switches natively across all supported languages.

Steering toward known languages

When you know which languages a session will use, pass the language_codes connection parameter to steer the model toward them and improve language accuracy.
  • For a known subset, pass the codes you expect (for example, ["en", "es"]). The model still code-switches, but heavily biased to the languages you list.
  • For a monolingual session, pass a single-element list (for example, ["es"]).
  • For full multilingual, omit language_codes to keep native code switching across all supported languages.
Set the language_codes connection parameter when you open the WebSocket.
Describing languages in a contextual promptYou can also name the expected languages in natural language as part of a contextual prompt (for example, Multilingual conversation in English, Spanish, and German.), but language_codes is the best-supported way to select languages. See Prompting and keyterms.

Supported languages

Universal-3.5 Pro Streaming code-switches across 18 languages.
LanguageCodeLanguageCode
EnglishenDanishda
SpanishesFinnishfi
FrenchfrHindihi
GermandeVietnamesevi
ItalianitArabicar
PortugueseptHebrewhe
TurkishtrJapaneseja
DutchnlMandarinzh
SwedishsvNorwegianno

Detecting the spoken language

Set the language_detection connection parameter to true to have each turn report which language was spoken. Turn messages then include language_code and language_confidence (a float between 0 and 1) fields, populated when an utterance is complete or the turn is final.
language_detection only controls reporting and doesn’t change how the model transcribes. It’s available on Universal-3.5 Pro Streaming and Universal-Streaming Multilingual.

Updating languages mid-stream

language_codes can be updated during an active session without reconnecting. This is useful when a voice agent detects the caller’s language, or when a conversation is handed off to a speaker of another language. Send an UpdateConfiguration message with the new values. The change takes effect from the next turn.
See Updating configuration mid-stream for the full list of parameters you can update mid-stream.

Other streaming models

Universal-3.5 Pro Streaming is the only streaming model with native (mid-sentence) code switching. The other streaming models handle languages differently.
ModelLanguagesCode switching
Universal-3.5 Pro Streaming18 languages (see above)Native, mid-sentence
Universal-Streaming Multilingualen, es, de, fr, pt, itPer turn
Universal-Streaming Englishen onlyNo
See Select the speech model for a full model comparison.

Looking for pre-recorded code switching?

This guide covers code switching for streaming (real-time audio). If you’re working with pre-recorded audio, see Code Switching (Pre-recorded).