Real-time voice inference

The infrastructure
layer for real-time
voice AI.

Build voice agents that feel instant. Ultra-low-latency inference, speech-optimized outputs, and production-ready APIs for conversational AI.

Time to first spoken tokenp50 · ms
Chirpr164
OpenAI496
Anthropic577
Chirpr starts speaking in 164ms. Measured, not marketing.
Why Chirpr exists

Most LLM outputs are
optimized for writing.
Voice is different.

General-purpose APIs are built to compose paragraphs. We rebuilt every part of the inference stack, from sampling and streaming to formatting and prompting, for the moment a person is waiting to hear a reply.

  • 01

    Every 100 ms matters

    In a spoken exchange, latency is not a metric, it is the experience. A pause that reads fine in chat feels broken out loud.

  • 02

    People interrupt

    Real conversations overlap. Agents have to stop mid-sentence, change direction, and pick the thread back up without missing a beat.

  • 03

    Responses are spoken, not read

    No markdown, no bullet lists, no essays. Output has to be shaped for a text-to-speech engine and a human ear.

Why developers switch

Built for the three things voice actually needs.

Faster

Sub-250 ms TTFT.

Optimized for real-time conversations instead of offline benchmarks. Consistent p95 latency under load.

Natural

Tuned for the ear.

Models trained for spoken dialogue, not essays. Contractions, acknowledgements, and natural pacing, never ChatGPT reading a paragraph.

Drop-in

Change one line.

OpenAI-compatible API that works with Vapi, Pipecat, LiveKit, Twilio and more. Switch providers in minutes.

Benchmarks

Fastest time to first spoken token. Measured, not claimed.

560 requests · 20 runs / scenario
Last updated 19 Jul 2026

ProviderModelTTFT p50First-speakable p50p95Streaming
Chirprchirpr-budgi-1.065164259
OpenAIgpt-4o-mini474496672
Googlegemini-3.5-flash561561651
Anthropicclaude-haiku-4.55755771292

First spoken token · p50 · ms (lower is better)

Chirpr
164
OpenAI
496
Google
561
Anthropic
577

What we measure. first_speakable_ms is the time until the first content token a TTS engine can start speaking. It is the number a caller actually feels.

How. Every provider was streamed identical OpenAI-format requests across the same scenarios; percentiles are computed over all runs.

Fair test. Chirpr was measured through its production API over the public internet, the same path your traffic takes, and every competitor through their official public endpoint. Numbers are regenerated from the same public harness, never hand-tuned.

On a real phone call

Same call. Chirpr answers first, and speaks like a person.

We gave OpenAI, Google and Anthropic the exact same receptionist brief and told them it's a live phone call. They still pause longer, spell things out for a screen, or over-explain. Here's the same call, played back at the speed each one actually replies.

Caller · Reading a phone number back

Yeah my number is six five two, four three seven, seven two five zero.

Chirprchirpr-budgi-1.0
Speech-ready

first word · 252 ms
OpenAIgpt-4o-mini
As returned

1237 ms
Googlegemini-3.5-flash
As returned

939 ms
Anthropicclaude-haiku-4.5
As returned

818 ms
Where Chirpr sits

One low-latency hop in the middle of your stack.

Chirpr replaces the LLM in the loop. Nothing else about your pipeline has to change. Speech in, tool calls and speech out.

Caller

Inbound call

Speech recognition

ASR → text

chirpr.

Chirpr

Reasoning + response

Tool calls

Your functions

Speech

TTS → audio

Caller

Hears the reply

Fits your pipeline

Works with the voice stack you already run.

Because Chirpr speaks the OpenAI API, it slots into any orchestrator that lets you set a base URL. No SDKs to learn, no rewrites.

Vapi
Pipecat
LiveKit
Twilio
Retell
OpenAI SDK
Drop-in

Change the base URL. Keep everything else.

Chirpr is OpenAI-compatible end to end. Streaming, tool calls and token usage behave exactly as your code already expects.

  • Same request and response shapes
  • Server-sent streaming for instant playback
  • Usage reported per request for prepaid billing
agent.py
from openai import OpenAI

client = OpenAI(
    base_url="https://api.chirpr.io/v1",  # the only line that changes
    api_key="ck_live_…",
)

stream = client.chat.completions.create(
    model="chirpr-budgi-1.0",
    messages=[{"role": "user", "content": transcript}],
    stream=True,
)

for chunk in stream:
    speak(chunk.choices[0].delta.content)
Pricing

Usage-based. No enterprise sales wall.

Pay for the tokens you use. Top up prepaid credits when you need them. No seats, no minimums, no “contact sales” to see a price.

  • Prepaid credits: top up any amount, anytime
  • Hard spend cap: requests stop at a zero balance
  • Per-request usage metering, billed to the token
  • Voice billed the same way: LLM tokens plus synthesis
  • Every model, every endpoint, one rate

Input

$0.70

/ million tokens

Output

$2.50

/ million tokens

Voice (text-to-speech)

$0.23

/ thousand characters spoken

Start with free credits. Scale when you ship.

Get your API key

Build voice agents that feel human.

Start speaking in milliseconds, not seconds. Free credits to start. No sales call, no waitlist.