Audio version of an article with TTS: cost and the 20,000-char split

A 6,000-character article is one Sume TTS job at 29 cents. A 30,000-character one is two jobs plus a 1-cent concat, $1.45 total. Steps and code included.

4 min readSume
All posts

A 6,000-character article is a single Sume TTS job: 6,000 x $0.0475 per 1,000 characters is $0.285, billed as 29 cents. Anything over 20,000 characters needs several jobs, which you then join with one timeline audio concat job at a flat $0.01.

When does an article need more than one job?

The 20,000-character ceiling is in the OpenAPI schema for the transcript field. Cut at a paragraph boundary, keep each chunk under the ceiling, and pick the same voice, language and output format for all chunks so the parts match.

A 30,000-character article splits into two 15,000-character jobs: each is $0.7125, billed as 72 cents, so 144 cents. Add the concat job at 1 cent and the total is $1.45.

Cost by article size (Sume catalog rates: TTS $0.0475 per 1,000 characters, concat $0.01 per job)
ArticleJobsTTS chargeConcatTotal
6,000 characters129 centsnone29 cents
15,000 characters172 centsnone72 cents
30,000 characters (2 x 15,000)2144 cents1 cent145 cents

What should I clean first?

Strip what should not be spoken before you count: navigation text, image alt text you do not want read, footnote markers and URLs. The API counts spaces and punctuation, so every character left in the script is billed.

Set language for any non-English article. The OpenAPI says an omitted language defaults to English at the provider, with a fallback that infers Korean or Japanese from a Hangul-only or kana-only transcript.

How do I join the parts?

Concat takes 1 to 20 ordered parts, joins them in the sample domain, and adds no silence at the seams. See Timeline audio for the request body. Submit every paid job with its own Idempotency-Key so a retry does not bill twice.

Whether a listener hears a pace change at a seam depends on the voice, so listen to each joint once.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume