Azure batch: 95% of outputs within 120 seconds; Sume TTS waits 30
Azure says half of batch outputs finish in 10 to 20 seconds and 95% within 120. Sume TTS sync mode waits at most 30 seconds, then hands you a status URL.

Azure's batch synthesis page states approximate latency: 50% of synthesized outputs within 10 to 20 seconds and 95% within 120 seconds. Sume TTS 1.0 does not publish a latency figure. Its sync mode waits at most 30 seconds, and if the job is not done it returns the queued or processing state with a status_url instead of an error.
Azure's numbers are from its batch synthesis page, read 2026-10-01; Sume's from the OpenAPI schema behind the API reference.
What do the two waiting models look like?
Azure is poll-only; Sume has a short bounded wait.
| Item | Azure batch synthesis | Sume TTS 1.0 |
|---|---|---|
| Stated latency | 50% in 10-20 s, 95% in 120 s | Not published |
| Short wait | None; poll GET until Succeeded or Failed | sync, up to 30 seconds |
| After the wait | Keep polling | Poll status_url; do not resubmit |
| Push | Not described on this page | Signed webhook, terminal events |
Will a 30-second sync wait cover Azure-like timings?
For about half of Azure's outputs, probably. For the slow tail, no, and Sume's own docs say the 30 seconds bounds the HTTP wait, not the job. Treat any latency number as an assumption until you time your own script. A short line may finish inside the wait; a long one will not.
What is the safe client pattern?
Submit with sync and a Idempotency-Key. If the response is already complete, use it. If not, poll status_url and respect next_poll_after_seconds. Never post the same line again to get an answer; with a key a retry returns the original job.
curl -X POST https://api.sume.com/v1/tts-1.0/generate \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: greeting-001" \
-d '{
"transcript": "Welcome back.",
"avatar_handle": "@narrator",
"mode": "sync",
"wait_timeout_seconds": 30
}'When should I skip sync entirely?
For long scripts and for batches. Use async or a webhook so no HTTP connection is held open. Sync is for a single short line where you want one round trip.
Sources
Related posts
More in Developers
- Azure word boundaries in ms vs Sume TTS timestamps in seconds
Azure writes word timings as AudioOffset and Duration in milliseconds, in a separate file. Sume returns words[] with start and end seconds on the job result.
- Azure Long Audio API retires April 2027: long audio on Sume
Azure says the Long Audio API retires April 1, 2027 in favor of batch synthesis. Sume TTS 1.0 handles long text as async jobs capped at 1,200 seconds of audio.
- BFL 24 concurrent requests, 6 for flux-kontext-max, vs Sume
BFL caps concurrent requests at 24 (6 for flux-kontext-max). Sume treats concurrency as a dispatch limit: extra jobs queue until you hit 429 queue_full.
- BFL 402 and 429 retry rules, and the same split on Sume
BFL raises on 402 and backs off on 429. Sume splits the same way: 402 insufficient_credits is a stop, 429 queue_full or rate_limited means wait and retry.
Written by Sume