Introduction

AssemblyAI, best known for speech-to-text, launched its first voice model on October 27: AssemblyAI-TTS-1. It's a text-to-speech model built for voice agents, and AssemblyAI says it streams the first audio in 90 ms in production.

It's a closed model. You run it today through AssemblyAI's Text-to-Speech API, over HTTP, WebSocket streaming or an OpenAI-compatible speech endpoint, and in the dashboard's playground. The headline is the price: a flat $15 per 1M characters, with no concurrency tiers and no annual contract.

What Shipped

From the launch post, the product page and the quickstart:

  • Model ID: assemblyai-tts-1, generally available now.
  • Voices: more than 4,000 library voices, plus instant voice cloning from an uploaded recording. AssemblyAI's own demo clone used 24 seconds of audio.
  • Languages: English, Spanish, French, German, Italian and Portuguese, with a range of accents in each. Every voice can speak all six.
  • Output: 24 kHz 16-bit PCM by default, with word timestamps and a cancel message for barge-in.
  • Regions: US and EU hosts at the same price.
  • Price: $15 per 1M input characters, spaces and punctuation included. Cloned voices, every language, timestamps and EU processing all cost the same.
  • Architecture: AssemblyAI says the model works on continuous audio representations instead of discrete tokens, which it credits for both realism and speed.

What It Can't Do Yet

Be clear on the gaps before you plan a project around it. At launch there's no "Pro" fine-tuned cloning, no pronunciation dictionary, no emotion tags, no SSML and no speed control. AssemblyAI says dictionaries and emotion tags are coming soon.

What it does do is read punctuation literally. A question mark rises, an ellipsis pauses, and a written "um" comes out as a real hesitation.

Pro Tip

Since there are no emotion tags yet, steer delivery through the text itself. Try a line like this in the playground:

So... you want the whole order moved to Friday? Okay, um, let me check that for you. Yep, Friday works.

The ellipsis, the question mark and the written "um" do the acting for you. Always set `voice_id` explicitly in your code, too, so a change to the default voice never changes what your listeners hear.

## The Numbers, With Caveats

AssemblyAI's own head-to-head, dated October 28, ran six models through the same 50 cloned voices:

- **Time to first byte (median, one client):** 47 ms, against 119 ms for ElevenLabs Flash v2.5, 143 ms for Cartesia Sonic 3.6 and 612 ms for ElevenLabs v4. The 90 ms figure is AssemblyAI's more conservative production number.
- **Saying hard things right** (phone numbers, dates, URLs, codes): 93.7%, against 93.6% for ElevenLabs v4 and 82.5% for Cartesia Sonic 3.6.
- **Word accuracy on plain sentences:** 99.0%.
- **Predicted listener score:** 3.85 out of 5, against 3.82 for Sonic 3.6 and 3.88 for Inworld TTS-2 Flash.

AssemblyAI also cites independent tests. Cekura's benchmark ranks it first on phone numbers and codes at about 92% and fourth on naturalness. On Coval's leaderboard its word error rate is 1.7%, and it debuted in the top ten of Artificial Analysis's voice arena. Most of these numbers are still vendor-run, so listen for yourself before switching.

## How to Try It Today

Grab an API key from the AssemblyAI dashboard. This is the HTTP request from the official quickstart, which saves one line as a WAV file:
export ASSEMBLYAI_API_KEY=<your-key>curl -sS --fail-with-body https://tts.us.assemblyai.com/v1/speech \ -H "Authorization: $ASSEMBLYAI_API_KEY" \ -H "Content-Type: application/json" \ -d '{"text": "Hi, thanks for calling. How can I help you today?", "voice_id": "49c443a4-8a1d-5f7e-b70b-98bdbd9823c3", "container": "wav", "stream": false}' \ -o hello.wav

That voice ID is "Audrey" from the library. For a real agent, use the WebSocket at wss://tts.us.assemblyai.com/v1/ws, one session per conversation and one request per turn. AssemblyAI also has LiveKit and Pipecat reference agents you can clone. TTS is in the Python SDK from version 1.8.2 and the JavaScript SDK from 4.42.0.

Why It Matters for Audio Creators

This is mostly a voice-agent product, but the price matters to anyone who makes a lot of speech. At $15 per million characters, a 10,000-word script of about 60,000 characters costs roughly 90 cents to voice, cloned voice included. That makes long narration drafts, character tests and multilingual versions cheap to try.

The accuracy on numbers, dates and codes is useful well beyond phone calls. Tutorials, product explainers and audiobooks are full of figures, and that's usually where TTS trips up. The missing emotion and speed controls, though, mean expressive character work still belongs to tools that have them.

Conclusion

AssemblyAI-TTS-1 brings a new major vendor into text-to-speech with a simple pitch: 90 ms to first audio, 4,000+ voices, instant cloning, six languages and a flat $15 per 1M characters. It's closed and API-only, and it still lacks emotion tags and speed control. If you voice a lot of plain, fact-heavy speech, it's worth a playground test.

—Anabel ♡