New AssemblyAI-TTS-1: Text-to-speech for voice agents. Learn more
Voice agents · Architecture

How to choose your voice agent architecture

The most consequential decision in building a voice agent isn't which LLM you use or what the agent sounds like — it's the architecture. An honest framework for three paths: the full AssemblyAI stack, a bring-your-own-stack streaming pipeline, and the Sync API for turn-based audio. All three run on AssemblyAI speech-to-text.

Three paths

How audio reaches the model

  • Full AssemblyAI stack — live audio, STT + LLM + TTS from one provider
  • Universal-3.6 Pro Realtime — live audio, your LLM and TTS
  • Sync API — finished turns, one HTTP request

One account, one SDK, one bill across all three.

The numbers that matter

Paths

3

Full stack, bring-your-own-stack, and turn-based — all on AssemblyAI speech-to-text.

Speech-to-text

$0.45/hr

Universal-3.6 Pro Realtime STT — transcription only, unlimited concurrency.

Source: Pricing

Text-to-Speech

$15

Per 1M characters for the Text-to-Speech API, billed on input characters.

Source: Pricing

Never re-platform

1

One API key, SDK, and billing relationship across every path.

Customer story · Report 4

“We're excited to make AssemblyAI's Universal-3.5 Pro available on LiveKit Inference. What really stands out is their pace of innovation with Context Carryover — it intelligently applies conversation context to improve transcription accuracy in a way most speech models don't, removing the need for users to predefine key terms.”

— David Zhao, Co-Founder, LiveKit

The decision

The architecture decision every voice agent team faces

Audio comes in, intelligence happens, audio goes out. The real questions are how many pieces you want to own, and how audio reaches the model — a live stream, or finished turns you send yourself. Most teams over-weight "easy" or "flexible" and under-weight the tradeoffs that actually bite: time-to-production, per-layer control, cost structure, debugging surface, and scaling.

Recommended

Full AssemblyAI stack

STT, LLM, and voice from one provider

$0.45 /hr STT

+ $15 per 1M TTS characters, plus your LLM

  • Start from the LiveKit or Pipecat reference implementation
  • Universal-3.6 Pro Realtime, LLM Gateway, and the Text-to-Speech API
  • About 90 ms time to first audio, 4,000+ voices
  • Best for: first voice product, shipping fast
Explore voice agents

Bring your own stack

Universal-3.6 Pro Realtime

Streaming STT — your LLM and TTS

$0.45 /hr

Transcription only

  • Works with LiveKit, Pipecat, Vapi, custom WS
  • Entity-aware endpointing, keyterms, voice focus
  • Unlimited concurrency, per-layer control
  • Best for: existing orchestrator, high scale
Learn more

Turn-based

Sync API

Short audio — one HTTP request

Short clips

Runs on Universal-3.5 Pro

  • Single POST → finished transcript, no WebSocket
  • No polling, no session to manage
  • Your own VAD, dictation, IVR, serverless
  • Best for: turn-based short audio
Read the docs

Decision framework

Choosing your path

The right architecture depends on how much of the stack you want to own and how audio reaches the model. Compare the dimensions that decide it below.

Dimension Full AssemblyAI stackUniversal-3.6 Pro RealtimeSync API
How audio arrives Live stream (WebSocket)Live stream (WebSocket)Finished turns (HTTP POST)
You own Orchestration (LiveKit or Pipecat)LLM + TTS + orchestrationTurn detection + LLM + TTS
Setup Start from a reference implementationSwap STT in minutesOne POST
Pricing $0.45/hr STT + $15 per 1M TTS characters + LLM$0.45/hr + your LLM/TTSUsage-based
Voice Text-to-Speech API, 4,000+ voicesYour TTS providerYour TTS provider
Best for Shipping fastExisting stacks, scaleDictation, IVR, own VAD

Both streaming paths share the same Universal-3.6 Pro Realtime accuracy foundation — the choice is about how much of the stack you own, not quality.

Migration

You're never locked in

Each layer is a separate service in your orchestrator. Teams often prototype on the full AssemblyAI stack for speed, then swap in their own LLM or TTS as they want more control — or reach for the Sync API where request/response fits better than a socket.

Switching means updating endpoints and message handling, not rebuilding. One account, one SDK, one bill. AssemblyAI is infrastructure, not a platform that captures you.

Typical path

Prototype — Full AssemblyAI stack
Add control — Swap in your own LLM or TTS
Optimize — Sync API where it fits

Same account, same SDK — move pieces when you're ready.

Not sure which path? Start with the full stack.

Start from the LiveKit or Pipecat reference implementation today and swap in your own pieces whenever you're ready.

Frequently asked questions

What are the ways to build a voice agent?

Three, all on AssemblyAI speech-to-text: the full AssemblyAI stack (Universal-3.6 Pro Realtime for STT, LLM Gateway or your own LLM, and the Text-to-Speech API, wired together in LiveKit or Pipecat), a bring-your-own-stack cascading pipeline with Universal-3.6 Pro Realtime as the STT layer (you bring the LLM and TTS), and — for turn-based short audio — the Sync API, a single HTTP request that returns a finished transcript.

Should I use the full AssemblyAI stack or bring my own LLM and TTS?

Use the full AssemblyAI stack if you want the fastest path to production: start from the LiveKit or Pipecat reference implementation, with speech-to-text, LLM Gateway, and the Text-to-Speech API on one API key and one bill. Bring your own LLM and TTS around Universal-3.6 Pro Realtime if you already run providers you like, need per-layer control, or are optimizing margin at high scale. Both use the same speech-to-text, so it's a control-vs-speed decision, not a quality one.

What is a cascading voice agent architecture?

A cascading (or "chained") architecture wires separate STT, LLM, and TTS services together through an orchestrator: speech-to-text transcribes the caller, an LLM reasons over the transcript, and text-to-speech voices the reply. Universal-3.6 Pro Realtime is the STT layer in this pattern and the Text-to-Speech API can be the voice, working natively with LiveKit, Pipecat, Vapi, or any custom WebSocket orchestrator.

When should I use the Sync API instead of streaming?

Use the Sync API when you do your own turn detection and just need a finished transcript per utterance — dictation, IVR menus, call routing, push-to-talk, or serverless functions that can't hold a socket open. It's a single HTTP POST with no WebSocket or session to manage. For a continuous live conversation, use Universal-3.6 Pro Realtime streaming instead.

Can I switch paths later?

Yes — that's by design. Each layer is a separate service in your orchestrator, so switching means changing one plugin or endpoint, not rebuilding. Teams often prototype on the full AssemblyAI stack for speed, then swap in their own LLM or TTS as they want more control. One account, one SDK, one bill across all paths.

How much do the AssemblyAI voice agent options cost?

Universal-3.6 Pro Realtime is $0.45/hr for transcription, with add-ons billed as used. The Text-to-Speech API is $15 per 1M characters, billed on input characters. LLM cost depends on the model you choose through LLM Gateway, or you bring your own. The Sync API is usage-based on Universal-3.5 Pro. See the pricing page for details.