Skip to content

Start live translation of the call. The translation will be sent to the specified webhook URL.

Properties

live_translate

objectRequired

An object that accepts the following properties.

live_translate.action

string | objectRequired

The action to perform. See actions below.

Actions

The action property controls the translation session. Use start to begin translating with configuration options, stop to end an active session, summarize to request an on-demand AI summary mid-session, or inject to insert a translated message into the conversation.

start
stop
summarize
inject
action.start

objectRequired

Start a live translation session.

start.webhook

string

The URL to receive translation events via HTTP POST. When live_events is enabled, partial results are sent as they occur. When ai_summary is enabled, summaries in both languages are sent when the session ends. Authentication can also be set in the URL in the format of username:password@url.

start.from_lang

stringRequired

The language to translate from. See supported voices & languages.

start.to_lang

stringRequired

The language to translate to. See supported voices & languages.

start.from_voice

stringDefaults to elevenlabs.josh

The TTS voice to use for the source language. See supported voices & languages.

start.to_voice

stringDefaults to elevenlabs.josh

The TTS voice to use for the target language. See supported voices & languages.

start.filter_from

string

Translation filter to apply to the source language direction. Adjusts the tone or style of translated speech.

Preset values: polite (removes insults, maintains sentiment), rude (adds insults, maintains sentiment), professional (removes slang), shakespeare (iambic pentameter), gen-z (Gen-Z slang and expressions).

For custom filters, use the prompt: prefix (e.g., prompt:Use formal business language).

start.filter_to

string

Translation filter to apply to the target language direction. Adjusts the tone or style of translated speech.

Preset values: polite, rude, professional, shakespeare, gen-z.

For custom filters, use the prompt: prefix.

start.live_events

booleanDefaults to false

Whether to enable live events.

start.ai_summary

booleanDefaults to false

Whether to enable automatic AI summarization. When enabled, AI-generated summaries in both languages will be sent to your webhook when the translation session ends.

start.speech_timeout

integerDefaults to 60000

The timeout for speech recognition in milliseconds. Minimum value: 1500.

start.vad_silence_ms

integerDefaults to 300 | 500

Voice activity detection silence time in milliseconds. Default depends on the speech engine: 300 for Deepgram, 500 for Google. Minimum value: 1.

start.vad_thresh

integerDefaults to 400

Voice activity detection threshold. Range: 0 to 1800.

start.debug_level

integerDefaults to 0

Debug level for logging.

start.direction

string[]Required

The direction of the call that should be translated. Possible values: remote-caller, local-caller.

start.speech_engine

stringDefaults to deepgram

The speech recognition engine to use. Possible values: deepgram, google.

start.ai_summary_prompt

string

The AI prompt that instructs how to summarize the conversation when ai_summary is enabled. This prompt is sent to an AI model to guide how it generates the summary.

Action usage context

ActionCall startLive call
start✅ Primary use✅ Can start mid-call
stop❌ No session to stop✅ Designed for this
summarize❌ No content to summarize✅ Designed for this
inject❌ No session exists✅ Designed for this

Call start: The initial SWML document returned when a call first arrives.

Live call: Actions sent to active calls via the Call Commands REST API or SWML sections executed via transfer or execute during a call.

ai_summary vs summarize action
  • ai_summary: true (in start): Automatically generates summary when session ends
  • summarize action: On-demand summary during an active session

Examples

Start
Stop
Summarize
Inject

YAMLJSON

version: 1.0.0
sections:
  main:
    - answer: {}
    - live_translate:
        action:
          start:
            webhook: 'https://example.com/webhook'
            from_lang: en-US
            to_lang: es-ES
            from_voice: elevenlabs.josh
            to_voice: elevenlabs.josh
            live_events: true
            direction:
              - remote-caller
              - local-caller
            speech_engine: deepgram

SignalWire Developer Documentation