Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ TWILIO_AUTH_TOKEN=your-twilio-auth-token
TWILIO_PHONE_NUMBER=+1xxxxxxxxxx

# Telnyx (alternative to Twilio — full GA support for DTMF, transfer, recording)
# The same TELNYX_API_KEY also powers TelnyxSTT and TelnyxTTS in pipeline mode
# (on-network speech — single bill, no extra provider keys needed).
# TELNYX_API_KEY=KEY...
# TELNYX_CONNECTION_ID=...
# TELNYX_PHONE_NUMBER=+1xxxxxxxxxx
Expand Down
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,13 @@
- Docs: `xai-tts.mdx` Voices section links the catalog and helpers in
both SDKs.

- **Telnyx STT/TTS parity in `patter init`** — the setup wizard now lists
`TelnyxSTT` and `TelnyxTTS` in the pipeline provider tables (both SDKs),
so picking Telnyx as the carrier no longer hides on-network speech as a
pipeline option. Both reuse `TELNYX_API_KEY` (the same key the carrier
already reads) and the existing `telnyx-ai` pip extra. README provider
table and `.env.example` updated to match.

- **Fish Audio voice provider suite** — TTS (S2.1-Pro / S2-Pro) and ASR land in
both SDKs, wired end-to-end with real pricing. One `FISH_AUDIO_API_KEY`
covers both directions of the call:
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ Patter is the **full voice stack** between your application and the phone networ
| Layer | Choose from |
|---|---|
| **LLM** — text generation | OpenAI · Anthropic · Google Gemini · Groq · Cerebras |
| **STT** — speech-to-text | Deepgram · AssemblyAI · Cartesia · Soniox · Speechmatics · Whisper · Fish Audio |
| **STT** — speech-to-text | Deepgram · AssemblyAI · Cartesia · Soniox · Speechmatics · Whisper · Fish Audio · Telnyx |
| **TTS** — text-to-speech | ElevenLabs · OpenAI · Cartesia · LMNT · Rime · Telnyx · Fish Audio |
| **Realtime** — all-in-one voice | OpenAI Realtime · Gemini Live · Ultravox · ElevenLabs ConvAI |
| **Telephony** — phone carriers | Twilio · Telnyx · Plivo |
Expand Down
12 changes: 12 additions & 0 deletions libraries/python/getpatter/init/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,12 @@
"env": ("XAI_API_KEY",),
"extra": "xai",
},
"telnyx": {
"class": "TelnyxSTT",
"label": "Telnyx (on-network — telnyx/google/deepgram/azure)",
"env": ("TELNYX_API_KEY",),
"extra": "telnyx-ai",
},
}
DEFAULT_STT = "deepgram"

Expand Down Expand Up @@ -229,6 +235,12 @@
"env": ("XAI_API_KEY",),
"extra": "xai",
},
"telnyx": {
"class": "TelnyxTTS",
"label": "Telnyx (NaturalHD — on-network)",
"env": ("TELNYX_API_KEY",),
"extra": "telnyx-ai",
},
}
DEFAULT_TTS = "elevenlabs"

Expand Down
12 changes: 12 additions & 0 deletions libraries/typescript/src/init/cli.ts
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,12 @@ const PIPELINE_STT: Record<string, ProviderEntry> = {
env: ['XAI_API_KEY'],
extra: 'xai',
},
telnyx: {
cls: 'TelnyxSTT',
label: 'Telnyx (on-network — telnyx/google/deepgram/azure)',
env: ['TELNYX_API_KEY'],
extra: 'telnyx-ai',
},
};
const DEFAULT_STT = 'deepgram';

Expand Down Expand Up @@ -219,6 +225,12 @@ const PIPELINE_TTS: Record<string, ProviderEntry> = {
env: ['XAI_API_KEY'],
extra: 'xai',
},
telnyx: {
cls: 'TelnyxTTS',
label: 'Telnyx (NaturalHD — on-network)',
env: ['TELNYX_API_KEY'],
extra: 'telnyx-ai',
},
};
const DEFAULT_TTS = 'elevenlabs';

Expand Down
Loading