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 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.
- Gladia Starter $0.61 per hour vs Sume STT $0.60 per hour
Gladia Starter prices async transcription at $0.61 an hour with 50 euros of free credit. Sume STT works out to $0.60 an hour. What differs besides the price.
- Google Chirp 3 Instant Custom Voice: 10 s consent, allowlist only
Google's Chirp 3 Instant Custom Voice is allowlisted, wants a 10-second consent clip, and keeps the cloning key on your side. How that compares to a Sume clone.
- Flow charges 7 to 15 credits for Omni Flash; Sume bills dollars
Google Flow prices Gemini Omni Flash 720p at 7 to 15 credits by length. Sume bills the same model per second in dollars; clip costs from 3 to 10 seconds.
Written by Sume