Free text-to-speech API allowances compared, October 2026
Azure's 0.5M free characters, Speechmatics' first 1M free and Deepgram's $200 credit side by side, plus Sume TTS limits: 20,000 characters, 1,200 seconds.

Three vendors publish a free text-to-speech allowance on their pricing pages: Azure at 0.5 million characters per month, Speechmatics with its first 1 million characters free, and Deepgram through a $200 signup credit. Sume's docs publish no free TTS allowance and no public TTS rate, so the useful comparison is limits: up to 20,000 characters per request and a 1,200-second audio ceiling.
What each page says
Rates are quoted only where the page prints one. Deepgram's Aura-2 is $0.030 per 1,000 characters, so $200 would cover about 6.7 million characters if spent only on Aura-2.
| Vendor | Free allowance | Rate on page |
|---|---|---|
| Azure Speech (F0) | 0.5 million characters per month | Shown after region selection |
| Speechmatics | First 1 million characters free | $0.011 per 1,000 characters |
| Deepgram | $200 signup credit | Aura-2 $0.030 per 1,000 characters |
| Sume TTS 1.0 | None claimed in docs | Not published in docs |
Sume TTS limits to plan around
Each request takes up to 20,000 characters, and synthesized audio longer than 1,200 seconds fails with tts_duration_exceeded. Output defaults to mp3 at 44.1 kHz and 128 kbps.
import os, requests
r = requests.post(
"https://api.sume.com/v1/tts-1.0/generate",
headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}",
"Idempotency-Key": "tts-demo-001"},
json={"transcript": "Welcome back. Today we cover three updates.",
"avatar_id": os.environ["SUME_AVATAR_ID"],
"generation_config": {"speed": 0.95, "emotion": "warm"},
"output_format": {"container": "mp3", "sample_rate": 44100,
"bit_rate": 128000}},
)
print(r.status_code, r.json())How to test fairly
Use the same script on every service, include numbers and brand names, and listen for pronunciation. Sume accepts a pronunciation_dict_id for names. Free characters vanish quickly: 1 million characters is only a few hours of narration.
Worked example
Plan your evaluation around the limits.
- Take a 1,000-character script and a 15,000-character script.
- Run both on each service and listen for pronunciation and pacing.
- On Sume, remember the 20,000-character and 1,200-second limits.
Checklist before you commit
Because the free allowances are in characters, a single long script can eat most of a monthly Azure allowance: 0.5 million characters is 25 scripts of 20,000.
- Check licensing for generated audio.
- Add a pronunciation dictionary for brand names.
- Disclose synthetic voices to listeners where required.
Sources
Related posts
More in Comparisons
- Gemini 3.5 Live Translate (70+ languages) vs Sume batch dubbing
Google's Gemini 3.5 Live Translate runs a few seconds behind a live speaker. For a finished clip you can translate in steps and review before any audio is made.
- Gemini app video: one video and 5 images in, vs Sume's 10 references
The Gemini app takes one video and up to 5 images per generation. Sume's Gemini Omni Flash 1.1 takes up to 10 image references and 3 short video references.
- Gemini batch create is not idempotent: two jobs vs Sume bulk replay
Gemini's docs say sending the same batch creation request twice creates two batch jobs. Sume bulk runs replay the old queue for the same Idempotency-Key.
- Gemini Live voice agent tutorial: which pieces Sume covers
Gemini 3.8 Live went GA on 2026-09-15 for live voice agents. Sume does not host live sessions; it makes async TTS, STT and music jobs. What fits.
Written by Sume