Skip to navigation

Language options

This guide shows you how to transcribe audio in more than one language with the Realtime Speech to Text API.

How-to guide · Assumes you have completed the client-side or server-side streaming guide.

Overview

By default, the realtime API detects the language of the audio automatically. You can change this behavior in three ways:

  • Set language_code to the language of the audio.
  • Add secondary_languages to limit language detection to a set of expected languages.
  • With Scribe v3 Live, set multilang_mode=true to follow speakers who switch languages during the session.

Scribe does not translate. Speech is transcribed in the language it is spoken in.

Secondary languages

Pass language_code with the main language and repeat secondary_languages once per additional language in the query string. Both accept ISO-639-1 or ISO-639-3 codes.

wss://api.elevenlabs.io/v1/speech-to-text/realtime?model_id=scribe_v3_live&language_code=en&secondary_languages=es&secondary_languages=fr

secondary_languages makes language identification more reliable by limiting it to the languages you list. To follow speakers who switch between languages during the session, use multilingual mode.

Multilingual mode

Multilingual mode is only available with Scribe v3 Live (scribe_v3_live). Other models reject multilang_mode=true with an invalid_request error and close the connection.

With multilang_mode=true, Scribe v3 Live transcribes each language in its own script and follows language switches, including switches in the middle of a sentence.

wss://api.elevenlabs.io/v1/speech-to-text/realtime?model_id=scribe_v3_live&audio_format=pcm_16000&multilang_mode=true

Multilingual mode has the following trade-offs:

  • Background speech that sounds like another language can be transcribed.
  • Short phrases are more likely to be transcribed incorrectly.

The official SDKs don’t support multilang_mode yet. To use it, connect to the WebSocket API directly.

Next steps