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.

Azure's batch synthesis page says the Long Audio API "will be retired on April 1st, 2027" and points users to batch synthesis, which can synthesize audio longer than 10 minutes. If you are looking for a replacement for long-form speech, Sume TTS 1.0 is an async job too, but it caps one job at 1,200 seconds (20 minutes) of audio and 20,000 characters, so a long book is several jobs joined afterward.
Azure's statements are from its batch synthesis page, read 2026-10-01; Sume's from the API reference and Timeline audio.
What changes for a long-audio caller on Azure?
The page describes batch synthesis as asynchronous: you submit text, poll the status until it is Succeeded or Failed, and download a ZIP from the result URL. Plain text or SSML is accepted. It also lists a Speech SDK route that synthesizes longer audio by iterating over the text in chunks.
How does that map to Sume?
| Need | Azure batch synthesis | Sume TTS 1.0 |
|---|---|---|
| Submit | PUT with your own id | POST /v1/tts-1.0/generate |
| Learn the outcome | Poll GET until Succeeded or Failed | Poll status_url or take a signed webhook |
| Length | Longer than 10 minutes allowed | 1,200 seconds per job |
| Input format | Plain text or SSML | Plain transcript, 20,000 characters |
How do I produce an hour of audio?
Split at sentence ends so each chunk is under both limits, submit one job per chunk, then join the results. Timeline audio concat takes 1 to 20 ordered parts, joins them in the sample domain with no silence at the seams, and returns one durable file. That means up to 20 chunks per join, each up to 1,200 seconds.
Does Sume accept SSML?
The TTS request in the OpenAPI schema has a plain transcript field and no SSML option. Controls are generation_config volume, speed and emotion, plus pronunciation_dict_id. If your Azure scripts depend on SSML markup, plan to rewrite them, not paste them.
Sources
Related posts
More in Developers
- 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.
- BFL polling_url on api.bfl.ai vs Sume status_url
BFL says to always poll the polling_url it returns. Sume's job envelope carries status_url and result_url for the same reason: follow them, do not build URLs.
- BFL webhooks vs polling_url, and Sume webhook mode with polling
BFL says webhook users need no polling_url change. On Sume, webhook mode still returns status_url, so verify the signed callback and keep polling as a backup.
Written by Sume