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

# Telnyx STT

[Telnyx](https://telnyx.com/) provides streaming speech-to-text over WebSocket. The plugin resamples audio to your configured rate, sends it as raw `linear16` frames, and emits transcripts as they arrive.

<Info>
  Vision Agents uses [Stream Video](https://getstream.io/video/) for real-time WebRTC transport by default. [External WebRTC transports](/integrations/introduction-to-integrations#edge-transport) are supported as well. Most AI providers offer free tiers to get started.
</Info>

<Info>
  Get your Telnyx API key from the [Telnyx Mission Control Portal](https://portal.telnyx.com/).
</Info>

<Tip>
  Telnyx also provides [text-to-speech](/integrations/tts/telnyx), an [LLM](/integrations/llm/telnyx), and [PSTN telephony](/integrations/telephony/telnyx). You can use all four in the same agent.
</Tip>

<Warning>
  Telnyx STT does not emit VAD signals, so pair it with a turn detector such as [Smart Turn](/integrations/turn-detection/smart-turn).
</Warning>

## Installation

```sh theme={null}
uv add "vision-agents[telnyx]"
```

## Quick start

```python theme={null}
from vision_agents.core import Agent, User
from vision_agents.plugins import getstream, smart_turn, telnyx

agent = Agent(
    edge=getstream.Edge(),
    agent_user=User(name="Assistant", id="agent"),
    instructions="You are a helpful voice assistant.",
    stt=telnyx.STT(),
    llm=telnyx.LLM(),
    tts=telnyx.TTS(),
    turn_detection=smart_turn.TurnDetection(),
)
```

<Warning>
  Set `TELNYX_API_KEY` in your environment or pass `api_key` directly.
</Warning>

## Parameters

```python theme={null}
stt = telnyx.STT(
    transcription_engine="Telnyx",
    language="en",
    sample_rate=16000,
    interim_results=False,
)
```

| Name                   | Type   | Default    | Description                                                                     |
| ---------------------- | ------ | ---------- | ------------------------------------------------------------------------------- |
| `transcription_engine` | `str`  | `"Telnyx"` | Engine to transcribe with (e.g. `Telnyx`, `Deepgram`, `Speechmatics`, `Soniox`) |
| `language`             | `str`  | `"en"`     | Language code                                                                   |
| `sample_rate`          | `int`  | `16000`    | Rate in Hz audio is resampled to (use `8000` for telephony audio)               |
| `interim_results`      | `bool` | `False`    | Emit partial transcripts (honoured per engine)                                  |
| `model`                | `str`  | `""`       | Optional engine-specific model id                                               |
| `api_key`              | `str`  | `None`     | API key (defaults to `TELNYX_API_KEY` env var)                                  |

<Tip>
  Set `sample_rate=8000` when transcribing telephony audio from the [Telnyx](/integrations/telephony/telnyx) or [Twilio](/integrations/telephony/twilio) plugins to avoid upsampling PCMU frames.
</Tip>

## Engines and interim results

Measured against the live API with the same audio, `Speechmatics` and `Soniox` stream partial transcripts, while `Telnyx` and `Deepgram` accept the parameter and return finals only.

```python theme={null}
stt = telnyx.STT(transcription_engine="Speechmatics", interim_results=True)
```

The engine catalogue is served by Telnyx and is not validated locally.

## Next steps

<CardGroup cols={2}>
  <Card title="Telnyx TTS" icon="volume-high" href="/integrations/tts/telnyx">
    Streaming text-to-speech
  </Card>

  <Card title="Telnyx LLM" icon="brain" href="/integrations/llm/telnyx">
    OpenAI-compatible chat completions
  </Card>

  <Card title="Telnyx Telephony" icon="phone" href="/integrations/telephony/telnyx">
    PSTN calls via Call Control
  </Card>

  <Card title="Turn Detection" icon="ear-listen" href="/ai-technologies/turn-detection">
    Pair with a turn detector
  </Card>
</CardGroup>
