Interpreter API

View as Markdown

The Interpreter API translates one live source-language audio stream into a target language over WebSocket. It returns translated text and synthesized speech, with optional source-language transcription.

Use the Interpreter API for multilingual meetings, live events, virtual classrooms, and customer-support experiences.

Key features

  • Translates live speech continuously and returns translated text and synthesized speech as you stream
  • Returns optional source-language transcription
  • Returns final text and audio that are never revised
  • Supports nine languages as source or target, with a female and a male voice for each target language
  • Uses one source language, one target language, and one voice per connection

How it works

  1. Connect to the Interpreter WebSocket endpoint with the required interpreter.zoom.v1 subprotocol.
  2. Send session.update as the first client event to select the source language, target language, and voice.
  3. Wait for session.updated, then stream Base64-encoded PCM audio in session.input_audio_buffer.append events.
  4. Receive translated text, translated audio, and the optional source transcript while you stream.
  5. Send session.close after the last audio chunk, and keep receiving until session.closed arrives.

For connection details, event schemas, and a JavaScript example, see Live mode.

Languages and voices

Set session.audio.input.language and session.audio.output.language to different BCP-47 language tags, and set session.audio.output.voice to a voice that supports the target language. All three fields are required and have no default.

The Interpreter API supports the following languages as source or target languages. Automatic source-language detection and multiple target languages per connection aren't supported.

Language tagLanguage
en-USEnglish
ar-AEArabic
de-DEGerman
es-ESSpanish
fr-FRFrench
it-ITItalian
ja-JPJapanese
pt-PTPortuguese
zh-CNChinese

Language tags are case-insensitive, and session.updated returns them in normalized form.

Each target language has one female and one male voice. Set session.audio.output.voice to one of the voices listed for the target language.

Target languageVoice IDs
en-USsarah, cole
ar-AElayla, omar
de-DEhelena, felix
es-ESsofia, carlos
fr-FRcamille, marc
it-ITelena, luca
ja-JPhana, kenji
pt-PTbeatriz, tiago
zh-CNlin, bo

Voice IDs are case-insensitive: Sofia, SOFIA, and sofia select the same voice, and session.updated returns the lowercase value. To translate English to Spanish, use en-US as the source language, es-ES as the target language, and sofia as the voice. To change the configuration, open a new connection.

Audio format and limits

Input and output audio use the same fixed format. Convert audio to this format before sending it; the API doesn't resample input.

SettingValue
Encodingpcm_s16le: signed 16-bit little-endian PCM
Sample rate16,000 Hz
ChannelsMono
ContainerNone; no WAV or RIFF header
Wire formatBase64 within JSON text events
Audio per message100–200 ms recommended (3,200–6,400 bytes); 500 ms (16,000 bytes) maximum, before Base64 encoding, in complete 16-bit samples

A session lasts up to 120 minutes and closes after 30 seconds without a message from the client. Your account can have lower limits. For details, see Session limits.

Resources

AI Services are part of the Zoom Build platform. Use Zoom.ai  to discover, purchase, build with, and manage AI Services products. You can also create projects, get credentials, start a free trial, purchase a plan, and monitor usage.