> This page is for APIs.

> 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 transcription utterance webhook

POST 

Sent to the `webhook` URL of a [`live_transcribe`](/docs/swml/reference/calling/live-transcribe)
`start` action each time an utterance is transcribed, when `live_events` is `true`. Each side of
the call you listed in `direction` sends its own events. `channel_data.content_disposition` is
`transcribe.utterance`.

Reference: https://signalwire.com/docs/apis/rest/webhooks/live-transcribe-utterance-webhook

## Request

### Payload

- `call_info` (Webhooks.AI.AICallInfo, required) — Identifies the call. `project_id` and `space_id` are included when available. Its `content_disposition` is always `post_data`; read `channel_data.content_disposition` to tell the events apart.
- `confidence` (double, required, nullable) — The speech engine's confidence for this utterance, or `null` when it didn't report one. Unlike `utterance.confidence`, it is included when the confidence is `0`.
- `channel_data` (Webhooks.Calling.LiveTranscribeChannelData, required) — Identifies the call and the event. `content_disposition` is `transcribe.utterance`.
- `utterance` (Webhooks.Calling.LiveTranscribeUtterance, required) — The utterance that was transcribed.

## Types

### Webhooks.AI.AICallInfo

Identifies the call an AI callback came from. `project_id` and `space_id` are included when available.

- `call_id` (string, required) — ID of the call.
- `content_type` (string, required) — The content type of the POST body. Always `text/json`.
- `content_disposition` (string, required) — How the body is delivered. Always `post_data`.
- `conversation_type` (string, required) — The conversation type. Always `voice`.
- `project_id` (string, optional) — Your project ID.
- `space_id` (string, optional) — Your Space ID.

### Webhooks.Calling.LiveTranscribeChannelData

Identifies the call and the event. Read `content_disposition` to tell the three live transcription events apart, since they all arrive at the same `webhook` URL.

- `content_type` (enum, required) — The content type of the POST body. Always `text/json`.
  - Allowed values: `text/json`
- `content_disposition` (enum, required) — Which event this is: - `transcribe.utterance`: one utterance was transcribed. - `transcribe.live_summarize`: the summary you requested with the `summarize` action. - `transcribe.conversation_log`: the transcription session ended.
  - Allowed values: `transcribe.utterance`, `transcribe.live_summarize`, `transcribe.conversation_log`
- `call_id` (string, required) — ID of the call being transcribed.
- `project_id` (string, optional) — Your project ID. Included when available.
- `space_id` (string, optional) — Your Space ID. Included when available.
- `call_start_date` (long, optional) — When the call was created, as a Unix timestamp in microseconds.
- `call_answer_date` (long, optional) — When the call was answered, as a Unix timestamp in microseconds. `0` if it hasn't been answered.
- `call_end_date` (long, optional) — When the call ended, as a Unix timestamp in microseconds. `0` while the call is still up.
- `caller_id_name` (string, optional) — The caller's name. Included when the call has one.
- `caller_id_number` (string, optional) — The caller's number. Included when the call has one.
- `SWMLVars` (WebhooksCallingLiveTranscribeChannelDataSwmlVars, optional) — SWML variables for the call. Included when the call carries SWML state.
- `SWMLCall` (WebhooksCallingLiveTranscribeChannelDataSwmlCall, optional) — SWML call state. Included when the call carries SWML state.

### Webhooks.Calling.LiveTranscribeUtterance

One transcribed utterance, as sent in a `transcribe.utterance` event.

- `role` (enum, required) — Which side of the call spoke, matching the `direction` values you passed to `start`. `remote-caller` is the audio SignalWire receives from the call, and `local-caller` is the audio SignalWire sends to it.
  - Allowed values: `remote-caller`, `local-caller`
- `content` (string, required) — The transcribed text.
- `lang` (string, required) — The transcription language.
- `tokens` (integer, required) — An estimate of the number of tokens in `content`.
- `timestamp` (long, required) — When the utterance was transcribed, as a Unix timestamp in microseconds.
- `utterance_id` (string, required) — Unique ID for this utterance.
- `char_count` (integer, required) — The number of characters in `content`.
- `word_count` (integer, required) — The number of words in `content`.
- `silence_before_ms` (integer, optional) — Milliseconds since the previous utterance from the same side of the call. Omitted on that side's first utterance.
- `confidence` (double, optional) — The speech engine's confidence in the transcription, from `0` to `1`. Omitted when it's `0` or the speech engine didn't report one.

### WebhooksCallingLiveTranscribeChannelDataSwmlVars

SWML variables for the call. Included when the call carries SWML state.

### WebhooksCallingLiveTranscribeChannelDataSwmlCall

SWML call state. Included when the call carries SWML state.