STT and TTS built for voice agent latency budgets
Two streaming components, each optimized for a single job: get audio transcribed fast, get audio synthesized fast.
Your complete voice pipeline
Smallest AI handles the first and last leg of every voice agent turn. Your LLM handles the middle.
45ms
38ms
Latency annotations based on internal benchmark tests across 1,000+ audio samples.
STT built for telephone-grade audio
Based on internal benchmark tests across 1,000+ audio samples in English and Spanish.
- Streaming partial transcripts as audio arrives
- Telephone-grade 8kHz narrowband input support
- English and Spanish initial language support
- Noise robustness for telephone codecs including G.711
- 16kHz mono PCM recommended input format
TTS that keeps the conversation moving
Your agent starts speaking before synthesis is complete, eliminating the full-transcript wait.
- Streaming audio output from first token
- Voices optimized for back-and-forth conversation cadence
- SSML pacing and emphasis support
- Consistent phonetic delivery across agent turns
- Designed for agent-style delivery, not audiobook narration
Connect via WebSocket or REST
WebSocket streaming is the primary integration path. HTTP REST is available for batch workloads.
import smallest_ai
async def stream_transcription(audio_bytes):
client = smallest_ai.STTClient(api_key="your_key")
async with client.stream() as session:
await session.send(audio_bytes)
async for transcript in session.receive():
print(transcript.text)
# Actual endpoint subject to change in early access
Latency targets by plan
| Tier | STT Latency Target | TTS Latency Target | Support |
|---|---|---|---|
| Developer | Best-effort | Best-effort | |
| Growth | <100ms committed | <100ms committed | Email (business hours) |
| Scale | Custom SLA | Custom SLA | Dedicated contact |
Illustrative benchmark conditions. SLA per your agreement.
Three steps to integrate
Submit your access request via the contact form. We provision credentials manually within 1-2 business days.
Open a WebSocket connection to the STT endpoint. Stream 16kHz mono PCM audio in 20-40ms chunks for lowest latency.
On final transcript token, trigger your LLM. Stream LLM output to our TTS endpoint. First audio chunk returns in 38ms.