500 flashcard phrases on Sume TTS: $5.00 per job, $1.43 batched

500 phrases of 60 characters: one job each bills $5.00 because each rounds up to a cent; batches of 100 bill $1.45 and two capped jobs $1.43.

5 min readSume
All posts

A 500-phrase flashcard deck at 60 characters per phrase costs $5.00 on Sume TTS if you send one job per phrase, and $1.43 if you send two jobs that fill the 20,000-character cap. The raw character cost is the same in both cases, $1.425, because Sume TTS 1.0 bills $0.0475 per 1,000 characters. The gap is rounding: every job rounds up to a whole cent, and a 60-character phrase is 0.285 of a cent.

That makes batch size a pricing decision for any app that speaks many short strings: flashcards, quiz prompts, IVR menus, game barks. Microsoft's MAI-Voice-2.1 lists $22 per million characters and the Flash variant $15 (read 2026-10-06). Neither list price says how a vendor rounds a tiny request, so compare the rounding rule before you compare the rate.

Sume TTS 1.0 at $0.0475 per 1,000 characters, jobs rounded up to the cent, read 2026-10-06
BatchCharacters per jobJobsBilled per jobTotal for 500 phrases
1 phrase per job60500$0.01$5.00
5 phrases per job300100$0.02$2.00
10 phrases per job60050$0.03$1.50
20 phrases per job1,20025$0.06$1.50
100 phrases per job6,0005$0.29$1.45
Whole deck, 20,000-character cap30,0002$0.95 + $0.48$1.43

What batching costs you

Fewer jobs means fewer audio files. If your app plays one phrase per card, a batched file has to be cut apart again, and that is more work than it saves at these prices. Cutting is cheap in money but costs work. Sume's timeline audio split is $0.01 per job and takes up to 20 ranges, so 500 phrases are 25 split jobs, $0.25, but you need the start and end time of every phrase first (TTS has a timestamps option) and you manage the extra job. Batching pays off most when the deck plays as a lesson track, with the phrases back to back.

A middle path groups phrases by lesson (see the timeline audio docs if you later need to split a lesson file). Ten phrases make 600 characters, which bills three cents, so 50 lesson jobs cost $1.50 and you keep 50 files rather than one.

  • Need one file per card: send one job per phrase, and budget $0.01 each ($5.00 for 500).
  • Need one track per lesson: group 10 to 20 phrases, and budget about $1.50 for 500 phrases.
  • Need one long listening file: send up to 20,000 characters per job, and budget about $1.43.
  • Keep every job's text under 20,000 characters, the per-job ceiling.

Price any deck before you submit

The function below uses integer arithmetic, so a 60-character phrase never turns into a floating-point surprise. Change PHRASES, CHARS and the group size to cost your own deck.

RATE_MILLICENTS = 475  # $0.0475 per 1,000 characters, in cents per 100,000 chars
CAP = 20_000


def job_cents(chars: int) -> int:
    assert 1 <= chars <= CAP
    return -(-chars * RATE_MILLICENTS // 100_000)


def deck_cents(phrases: int, chars: int, per_job: int) -> int:
    jobs, rest = divmod(phrases, per_job)
    total = jobs * job_cents(per_job * chars)
    if rest:
        total += job_cents(rest * chars)
    return total


for group in (1, 5, 10, 20, 100):
    print(group, deck_cents(500, 60, group) / 100)

The same deck at MAI-Voice list prices

MAI-Voice-2.1 is not a Sume model, and Sume does not route to it, so this is a list-price comparison only. At $22 per million characters the 30,000-character deck is $0.66 in raw characters, and on the Flash variant at $15 per million it is $0.45 (read 2026-10-06). Sume TTS 1.0 is $0.0475 per 1,000 characters, so on raw price alone it is the more expensive of the three, by a factor of about 2.2 against MAI-Voice-2.1.

What Sume adds is the rest of the workflow behind one key and one balance: the same job envelope, balance reads and usage ledger as video, captions and the timeline render. If a flashcard app also needs a spoken clip, a caption burn and a short render, one invoice line is easier to reason about than three vendors. If you only need cheap character-metered speech at scale, the list prices above are the honest comparison.

Where the minimum bites

The one-cent floor is invisible for a 600-character voice-over and obvious for a 20-character button label. A 20-character label is 0.095 of a cent, so you pay about ten times the raw cost. If your app generates labels at run time, cache the audio by text and voice, so each distinct string is billed once.

Read the live rate on the API pricing page before you commit a budget, and keep the batch size in a config value so it can change with the rate.

Sources

Related posts

More in Pricing

All Pricing posts

Written by Sume