A translation session interprets. Speech goes in and the same words come out in another language, a moment behind the speaker. The model never answers, greets or adds anything of its own. It uses the same connection and events as Nur, at wss://api.eesi.ai/v1/realtime/translations. Good uses:
  • A meeting in two languages. Leave the source language unset and each sentence is translated from whatever language it was spoken in.
  • Speaking to an audience. Use your cloned voice and people hear you, in their language.
  • Support across a language barrier, with no interpreter booked in advance.
For a recorded file, transcribe it, translate the text, and synthesize it instead.

Connect

Set the target language with language and, optionally, the source with source_language:

Choose the languages

You can also set or change the languages on a running session:
Put the target language in the same session.update that sets "type": "translation", or in the URL. Region codes such as pt-BR are fine. A sentence that is already in the target language produces no output.

Choose the voice

Any voice from your library works, including clones. A cloned voice is the version of this feature most people want: the listener hears the speaker, in their own language.

Text in or out

Audio and text work in both directions on the same session: Set "output_modalities": ["text"] for text only, such as live subtitles. It skips speech, so translations arrive sooner.

Tune it

Turn detection is set up for interpreting: a speaker starting a new sentence does not cut off the translation of the previous one. If you set audio.input.turn_detection yourself, keep "interrupt_response": false or the end of each translation gets clipped. Anything in instructions refines the translation, such as register or terminology:

Reconnecting

Translation sessions don’t resume. If the connection drops, open a new one and set the languages again.