> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # live_transcribe > Transcribe a voice interaction in real-time. Start live transcription of the call. The transcription will be sent to the specified webhook URL. For whole-call transcription delivered after the call ends, see [`transcribe`](/docs/swml/reference/calling/transcribe). ## **Properties** **`live_transcribe`** `object` — required An object that accepts the following properties. --- **`live_transcribe.action`** `string | object` — required The action to perform. See [actions](#actions) below. --- ## **Actions** The `action` property controls the transcription session. Use `start` to begin transcribing with configuration options, `stop` to end an active session, or `summarize` to request an on-demand AI summary mid-session. #### start **`action.start`** `object` — required Start a live transcription session. --- **`start.webhook`** `string` The URL to receive transcription events via HTTP POST. When `live_events` is enabled, partial results are sent as they occur. When `ai_summary` is enabled, a summary is sent when the session ends. Authentication can also be set in the URL in the format of `username:password@url`. --- **`start.lang`** `string` — required The language to transcribe. See [supported voices & languages](/docs/platform/voice/tts). --- **`start.live_events`** `boolean` — default: false Whether to enable live events. --- **`start.ai_summary`** `boolean` — default: false Whether to enable automatic AI summarization. When enabled, an AI-generated summary of the conversation will be sent to your webhook when the transcription session ends. --- **`start.speech_timeout`** `integer` — default: 60000 The timeout for speech recognition in milliseconds. Minimum value: `1500`. --- **`start.vad_silence_ms`** `integer` — default: 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`** `integer` — default: 400 Voice activity detection threshold. Range: `0` to `1800`. --- **`start.debug_level`** `integer` — default: 0 Debug level for logging. --- **`start.direction`** `string[]` — required The direction of the call that should be transcribed. Possible values: `remote-caller`, `local-caller`. --- **`start.speech_engine`** `string` — default: 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. Example: "Summarize the key points and action items from this conversation." --- #### stop Set `action` to the string `"stop"` to stop the live transcription session. This action is designed for use on active calls that have an existing transcription session running. You can send this action via the [Call Commands REST API](/docs/apis/rest/calls/call-commands), or include it in a SWML section executed via [`transfer`](/docs/swml/reference/calling/transfer) or [`execute`](/docs/swml/reference/calling/execute) during a call. #### summarize **`action.summarize`** `object` — required > **ai\_summary vs summarize** > > If you want automatic summarization when the session ends instead, use `ai_summary: true` in the `start` action. Request an on-demand AI summary of the conversation while transcription is still active. This action is designed for use on active calls that have an existing transcription session running. You can send this action via the [Call Commands REST API](/docs/apis/rest/calls/call-commands), or include it in a SWML section executed via [`transfer`](/docs/swml/reference/calling/transfer) or [`execute`](/docs/swml/reference/calling/execute) during a call. If called with an empty object, the default summarization prompt and webhook will be used. --- **`summarize.webhook`** `string` The webhook URI to be called. Authentication can also be set in the URL in the format of `username:password@url`. --- **`summarize.prompt`** `string` The AI prompt that instructs the AI model how to summarize the conversation. This guides the style and content of the generated summary. Example: "Provide a bullet-point summary of the main topics discussed." --- ## **Examples** #### Start #### YAML ```yaml version: 1.0.0 sections: main: - answer: {} - live_transcribe: action: start: webhook: 'https://example.com/webhook' lang: en live_events: true direction: - remote-caller - local-caller speech_engine: deepgram ``` #### JSON ```json { "version": "1.0.0", "sections": { "main": [ { "answer": {} }, { "live_transcribe": { "action": { "start": { "webhook": "https://example.com/webhook", "lang": "en", "live_events": true, "direction": ["remote-caller", "local-caller"], "speech_engine": "deepgram" } } } } ] } } ``` #### Stop #### YAML ```yaml live_transcribe: action: stop ``` #### JSON ```json { "live_transcribe": { "action": "stop" } } ``` #### Summarize #### YAML ```yaml live_transcribe: action: summarize: webhook: 'https://example.com/webhook' prompt: Summarize the key points of this conversation. ``` #### JSON ```json { "live_transcribe": { "action": { "summarize": { "webhook": "https://example.com/webhook", "prompt": "Summarize the key points of this conversation." } } } } ``` > Transcribe a voice interaction in real-time.