TTS cost per 1,000 words: Sume $0.29, with a Python estimator

A 1,000-word script is about 6,000 characters, which Sume TTS quotes at $0.29 and about 8 minutes of speech. A short Python function prices any script.

5 min readSume
All posts

A 1,000-word script is about 6,000 characters, which Sume text to speech prices at $0.285, rounded up to a $0.29 quote, and roughly 8 minutes of speech at 750 characters a minute. The six-characters-per-word figure is my assumption for English prose including spaces and punctuation; your script will differ, so count the real characters before budgeting.

The rate is $0.0475 per 1,000 characters, each quote rounded up to whole cents. Cartesia's pricing page, read 2026-10-03, says one minute of audio generation takes 750 to 800 credits; Sume TTS uses about 1 credit per character, so this post treats that as 750 to 800 characters a minute.

Common script sizes

Minutes use 750 characters a minute for the longer figure and 800 for the shorter. Each row is one request.

Sume TTS cost by word count at 6 characters a word (as of 2026-10-03)
WordsCharactersQuoteMinutes of speech
2501,500$0.081.9 to 2.0
1,0006,000$0.297.5 to 8.0
2,40014,400$0.6918.0 to 19.2
3,00018,000$0.8622.5 to 24.0 (over the 1,200 s cap)

Two limits decide the split

One request accepts up to 20,000 characters, and synthesized audio longer than 1,200 seconds fails with tts_duration_exceeded without charging credit. At 750 to 800 characters a minute, 1,200 seconds is 15,000 to 16,000 characters, so the duration limit bites first. The last row above exceeds it even though 18,000 characters is under 20,000. Keep parts near 14,400 characters, about 2,400 words, to leave headroom.

The cap is stated in the model schema in the API reference.

An estimator you can run

This function returns the quote in dollars for a script of a given word count, and the number of requests needed at 14,400 characters each. It uses integer arithmetic so rounding never drifts.

import math

CHARS_PER_WORD = 6      # assumption, measure your own
PART_CHARS = 14_400     # keeps each part under 1,200 s

def cents(chars):
    return math.ceil(chars * 475 / 100_000)

def estimate(words):
    chars = words * CHARS_PER_WORD
    full, rest = divmod(chars, PART_CHARS)
    total = full * cents(PART_CHARS) + (cents(rest) if rest else 0)
    return total / 100, full + (1 if rest else 0)

for w in (250, 1000, 2400, 80000):
    dollars, parts = estimate(w)
    print(f'{w} words: ${dollars:.2f} in {parts} request(s)')

Three small jobs

Short scripts round up to the cent, so many small requests cost more than one long one. Thirty product descriptions of 120 words are 720 characters each, a $0.0342 raw price that quotes at $0.04, so $1.20 for the set. One hundred 60-word voiceovers are 360 characters each, quoted at $0.02, $2.00 in all. An 800-word newsletter is 4,800 characters, a $0.23 quote.

If the cent rounding matters at your volume, join small scripts into one request where the voice is the same, within the character and duration limits.

What Sume does and does not do

Sume text to speech is $0.0475 per 1,000 characters, each quote rounded up to whole cents, up to 20,000 characters or 1,200 seconds of audio per request. Speech to text is $0.01 per minute of audio, up to 600 seconds per job.

It does not edit your script, check pronunciation or guarantee the exact number of minutes; the audio length comes back with the result. For long narration see long text and audiobooks.

Sources

Related posts

More in Pricing

All Pricing posts

Written by Sume