> ## Documentation Index
> Fetch the complete documentation index at: https://developers.telnyx.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Transcription

The `<Transcription>` verb enables real-time speech-to-text transcription for the call.

## Attributes

<table>
  <thead>
    <tr>
      <th>ATTRIBUTE</th>
      <th>DESCRIPTION</th>
      <th>OPTIONS</th>
      <th>DEFAULT</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td><code>language</code></td>
      <td> Language to use for speech recognition. See languages in [transcription\_engine\_config](/api-reference/call-commands/transcription-start). </td>

      <td />

      <td><code>en</code></td>
    </tr>

    <tr>
      <td><code>interimResults</code></td>
      <td> Whether to send also interim results. If set to false, only final results will be sent. Applies to transcriptionEngine A only. </td>

      <td />

      <td><code>false</code></td>
    </tr>

    <tr>
      <td><code>transcriptionEngine</code></td>
      <td> Engine to use for speech recognition. Available engines: Google (default), Telnyx, Deepgram, Azure, xAI, AssemblyAI, Soniox, Speechmatics, Parakeet. Each engine supports different models and languages - see model attribute and examples below. Legacy values "A" (maps to Google) and "B" (maps to Telnyx) are supported for backward compatibility. </td>
      <td><code>Google</code>, <code>Telnyx</code>, <code>Deepgram</code>, <code>Azure</code>, <code>xAI</code>, <code>AssemblyAI</code>, <code>Soniox</code>, <code>Speechmatics</code>, <code>Parakeet</code>, <code>A</code>, <code>B</code></td>
      <td><code>Google</code></td>
    </tr>

    <tr>
      <td><code>transcriptionTracks</code></td>
      <td> Indicates which leg of the call will be transcribed. Use inbound for the leg that requested the transcription, outbound for the other leg, and both for both legs of the call. </td>
      <td><code>inbound</code>, <code>outbound</code>, <code>both</code></td>
      <td><code>inbound</code></td>
    </tr>

    <tr>
      <td><code>transcriptionCallback</code></td>
      <td> URL that tells Telnyx where to make its GET or POST requests with transcription data. </td>

      <td />

      <td>-</td>
    </tr>

    <tr>
      <td><code>transcriptionCallbackMethod</code></td>
      <td> HTTP request type used for transcriptionCallback. </td>
      <td><code>GET</code>, <code>POST</code></td>
      <td><code>POST</code></td>
    </tr>

    <tr>
      <td><code>model</code></td>
      <td> Optional model to use with the specified transcription engine. Format is `vendor/model-name` — e.g. `deepgram/nova-2`, `deepgram/nova-3`, `azure/fast`, `assemblyai/universal-streaming`, `soniox/stt-rt-v4`, `speechmatics/standard`, `nvidia/parakeet-v3`, `xai/grok-stt`. The vendor must match `transcriptionEngine`. If not specified, the engine's default model will be used. On Deepgram, defaults to `deepgram/nova-3`. See transcription models in [transcription\_engine\_config](/api-reference/call-commands/transcription-start). </td>

      <td />

      <td>-</td>
    </tr>

    <tr>
      <td><code>hints</code></td>
      <td> Hints to improve transcription accuracy. On Deepgram, this maps to the Nova-2 keyword biasing feature and is supported only on `model="deepgram/nova-2"`; it is silently dropped on Nova-3 (use `keyterms` instead). Accepts a comma-separated string. </td>

      <td />

      <td>-</td>
    </tr>

    <tr>
      <td><code>keyterms</code></td>
      <td> Deepgram Nova-3 keyterm prompting. Biases recognition toward domain-specific terms or brand names. Supported only on `model="deepgram/nova-3"`; silently dropped on Nova-2 (use `hints` instead). Accepts a comma-separated string. </td>

      <td />

      <td>-</td>
    </tr>

    <tr>
      <td><code>smartFormat</code></td>
      <td> Disable Deepgram's smart formatting so the transcript stays lowercase with no punctuation. Deepgram-only; silently dropped on other engines. </td>

      <td />

      <td><code>true</code></td>
    </tr>

    <tr>
      <td><code>apiKeyRef</code></td>
      <td> Reference to the API key for authentication. See [integration secrets documentation](/api-reference/integration-secrets/create-a-secret) for details. The parameter is optional as defaults are available for some regions. </td>

      <td />

      <td>-</td>
    </tr>

    <tr>
      <td><code>region</code></td>
      <td> Region to use with the specified transcription engine. Required for Azure. See regions in [transcription\_engine\_config](/api-reference/call-commands/transcription-start). </td>

      <td />

      <td>-</td>
    </tr>
  </tbody>
</table>

## Examples

**Example 1: Basic transcription using Google (default)**

```xml theme={null}
<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Start>
    <Transcription language="en" interimResults="true" transcriptionCallback="/transcription" />
  </Start>
</Response>
```

**Example 2: Google with phone call optimized model**

```xml theme={null}
<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Start>
    <Transcription
      transcriptionEngine="Google"
      model="phone_call"
      language="en-US"
      interimResults="true"
      transcriptionCallback="/transcription" />
  </Start>
</Response>
```

**Example 3: Telnyx engine with Whisper model**

```xml theme={null}
<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Start>
    <Transcription
      transcriptionEngine="Telnyx"
      model="openai/whisper-large-v3-turbo"
      language="es"
      transcriptionCallback="/transcription" />
  </Start>
</Response>
```

**Example 4: Deepgram with Nova-3 model**

```xml theme={null}
<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Start>
    <Transcription
      transcriptionEngine="Deepgram"
      model="deepgram/nova-3"
      language="fr"
      transcriptionCallback="/transcription" />
  </Start>
</Response>
```

**Example 5: Azure with Fast model and credentials**

```xml theme={null}
<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Start>
    <Transcription
      transcriptionEngine="Azure"
      model="azure/fast"
      language="en-US"
      apiKeyRef="your-azure-api-key-ref"
      region="eastus"
      transcriptionCallback="/transcription" />
  </Start>
</Response>
```

**Example 6: Azure with Realtime model**

```xml theme={null}
<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Start>
    <Transcription
      transcriptionEngine="Azure"
      model="azure/realtime"
      language="en-US"
      region="westus"
      transcriptionCallback="/transcription" />
  </Start>
</Response>
```

## Expected callbacks

If `transcriptionCallback` is set, transcription results are sent as they become available.

See [Transcription Callback](/api-reference/callbacks/texml-transcription) for the full payload reference.
