<Transcription>
Live transcription of the call, delivered to your webhook while the document keeps executing.
Example
<Response>
<Start>
<Transcription statusCallbackUrl="https://app.example.com/transcripts"
partialResults="true" track="both_tracks"/>
</Start>
<Dial>+18005551234</Dial>
</Response>
Attributes
| Attribute | Default | Behaviour |
|---|---|---|
name |
unset |
Operator-friendly identifier for the session, echoed on every callback as Name. |
languageCode |
en-US |
BCP-47 language tag passed to the transcription engine. The platform's built-in engine transcribes English only — a non-English tag with no cloud engine configured is refused with a transcription-error; configure deepgram, google, aws, or azure for other languages. |
transcriptionEngine |
account default |
Selects the transcription engine (case-insensitive): deepgram, google, aws, or azure. An unrecognized value — including auto — refuses the session with a transcription-error naming the engine; when unset, the account default (or the platform's built-in engine) is used. |
speechModel |
engine default |
Recognizer model hint, mapped per engine (for example the short/long aliases select the engine's latest short-form or long-form model). |
partialResults |
false |
true also delivers interim transcripts to the status callback; the default delivers final transcripts only. |
track |
both_tracks |
Which audio to transcribe: inbound_track, outbound_track, or both_tracks. Passed to the engine as a hint; engine support varies. |
statusCallbackUrl |
unset |
URL receiving every lifecycle event — transcription-started, transcription-content, transcription-stopped, transcription-error — as form-encoded requests. Spelled exactly statusCallbackUrl: statusCallback is not accepted on <Transcription>. |
statusCallbackMethod |
POST |
HTTP method for status callbacks. |
hints |
unset |
Comma-separated phrases passed through to the engine to bias recognition. |
profanityFilter |
true |
Mask profanities in the transcripts (passed through to the engine). |
enableAutomaticPunctuation |
true |
Let the engine punctuate transcripts (supported by the deepgram and google engines). |
enableProviderData |
false |
true attaches the engine's raw provider payload as TranscriptionProviderData on content events (deepgram engine only). |
inboundTrackLabel |
unset |
Label echoed for the inbound track on the transcription-started event. |
outboundTrackLabel |
unset |
Label echoed for the outbound track on the transcription-started event. |
intelligenceService |
unset |
Accepted for compatibility; no such product exists on the platform, so setting it logs an unsupported-feature notification and has no effect. |
conversationConfiguration |
unset |
Accepted for compatibility and silently ignored. |
conversationId |
unset |
Accepted for compatibility and silently ignored. |
Notes
- Attribute names are checked exactly, including case. An attribute outside the accepted set — statusCallback and statusCallbackEvent included — refuses the whole transcription with a transcription-error naming the parameter.
- Callback fields on every event: AccountSid, CallSid, TranscriptionSid, Timestamp, SequenceId, TranscriptionEvent. transcription-started adds the session settings (TranscriptionEngine, Track, LanguageCode, PartialResults, and Name when set). transcription-content adds LanguageCode, Track, TranscriptionData (JSON with the transcript, plus its confidence on final results), Final (true or false), and Stability on interim results. transcription-error adds TranscriptionErrorCode and TranscriptionError.
- Unlike speech-mode <Gather> (listen once, then return), <Start><Transcription> runs long-lived and in parallel with the rest of the document.
- One active transcription per call: a second <Start><Transcription> replaces the first. <Stop><Transcription/> ends it early; otherwise it ends at hangup.