The Engine

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.

How It Fits

Your complete voice pipeline

Smallest AI handles the first and last leg of every voice agent turn. Your LLM handles the middle.

Speech-to-Text

STT built for telephone-grade audio

45ms median latency

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
Text-to-Speech

TTS that keeps the conversation moving

38ms first audio chunk

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
Protocol Support

Connect via WebSocket or REST

WebSocket streaming is the primary integration path. HTTP REST is available for batch workloads.

WebSocket Streaming
Primary integration. Bidirectional audio stream with sub-50ms round-trip. Audio in, transcript out, synthesized audio back.
HTTP REST Fallback
Batch transcription via POST request. Suitable for asynchronous workloads where streaming latency is not required.
Python SDK
pip install smallest-ai
Official Python client with async WebSocket support.
Request access to download
Node.js SDK
npm install smallest-ai
Official Node.js client built on the ws library with streaming support.
Request access to download
Python
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
Performance Tiers

Latency targets by plan

Tier STT Latency Target TTS Latency Target Support
Developer Best-effort Best-effort Email
Growth <100ms committed <100ms committed Email (business hours)
Scale Custom SLA Custom SLA Dedicated contact

Illustrative benchmark conditions. SLA per your agreement.

Get Started

Three steps to integrate

1
Request access and receive credentials

Submit your access request via the contact form. We provision credentials manually within 1-2 business days.

2
Connect WebSocket and stream audio chunks

Open a WebSocket connection to the STT endpoint. Stream 16kHz mono PCM audio in 20-40ms chunks for lowest latency.

3
Receive transcription stream, pipe to LLM, stream TTS back

On final transcript token, trigger your LLM. Stream LLM output to our TTS endpoint. First audio chunk returns in 38ms.