Price a 12-script ad library: MAI-Voice-2.1, Flash and Sume TTS
Twelve ad scripts from 90 to 1,200 characters cost $0.35 on Sume, $0.1386 on MAI-Voice-2.1 and $0.0945 on Flash. The per-job rounding is where they differ.

A 12-script library totalling 6,300 characters costs $0.35 on Sume, about $0.14 on MAI-Voice-2.1 and about $0.09 on MAI-Voice-2.1-Flash. Sume's rate per character is higher and it rounds each job up to a whole cent, so the gap is mostly a short-script effect.
The inputs
Microsoft's model page lists $22 per million characters for MAI-Voice-2.1 and $15 per million for the Flash variant. Sume's list rate for the Cartesia-based TTS models is 38 micro-USD per character, times 1.25, which is $0.0475 per 1,000 characters. Sume rounds each job up to the next cent, with a one-cent minimum and a 95-cent maximum at 20,000 characters.
The twelve scripts
The library has scripts of 90, 150, 210, 240, 300, 360, 450, 600, 750, 900, 1,050 and 1,200 characters. Spaces and punctuation count.
| Characters | Sume (rounded up) | MAI-Voice-2.1 at $22/M | Flash at $15/M |
|---|---|---|---|
| 90 | $0.01 | $0.00198 | $0.00135 |
| 150 | $0.01 | $0.0033 | $0.00225 |
| 210 | $0.01 | $0.00462 | $0.00315 |
| 240 | $0.02 | $0.00528 | $0.0036 |
| 300 | $0.02 | $0.0066 | $0.0045 |
| 360 | $0.02 | $0.00792 | $0.0054 |
| 450 | $0.03 | $0.0099 | $0.00675 |
| 600 | $0.03 | $0.0132 | $0.009 |
| 750 | $0.04 | $0.0165 | $0.01125 |
| 900 | $0.05 | $0.0198 | $0.0135 |
| 1,050 | $0.05 | $0.0231 | $0.01575 |
| 1,200 | $0.06 | $0.0264 | $0.018 |
| Total 6,300 | $0.35 | $0.1386 | $0.0945 |
Check the arithmetic
The unrounded Sume figure for 6,300 characters would be 6,300 x $0.0475 / 1,000 = $0.29925. Per-job rounding adds about 5 cents. MAI-Voice-2.1 is 6,300 x $22 / 1,000,000 = $0.1386, and Flash is 6,300 x $15 / 1,000,000 = $0.0945.
import math
sizes = [90,150,210,240,300,360,450,600,750,900,1050,1200]
sume = sum(max(1, math.ceil(n * 38 * 1.25 / 10000 - 1e-9)) for n in sizes)
print("sume cents", sume)
print("mai", sum(sizes) * 22 / 1e6)
print("flash", sum(sizes) * 15 / 1e6)What the numbers do not include
Microsoft's figures are the list rates from its model page; I did not find a per-request minimum there, and I did not check what a Foundry or OpenRouter invoice adds. Sume's figure is the TTS charge only. Neither number includes video, captions or a review pass. The comparison also ignores that the products differ: Sume returns a finished audio file from an async job, and Flash is a low-latency model aimed at live agents.
When rounding matters
Because Sume rounds per job, packing several short lines into one script that fits in a single job reduces the bill; a 210-character job and a 211-character job cost 1 and 2 cents. If you need separate files, the penalty is at most one cent per file.
Sources
Related posts
More in Pricing
- Price a 20-prompt video regression suite: 360p, 3 seconds on Sume
A 20-prompt golden set rendered at 360p and 3 seconds on Gemini Omni costs $2.40 per run on Sume. The arithmetic, a Python cost check and the request body.
- Price before you pay: four places Sume shows a cost before a job runs
Video models list pricing_skus, Timeline plan returns an estimate, video-filter check is free, and the usage ledger shows the reserve. Where to look and when.
- Price per concurrency slot: Sume Pro $10, Startup $15, Scale $20
Sume plans sell parallelism, not clips. Pro is $40 for 4 slots, Startup $120 for 8, Scale $400 for 20. Compute the plan fee per slot and queue headroom.
- Product ad with sound: Omni Flash $1.88 or Wan 3.0 $2.50 at 1080p
A 10-second 1080p product clip with audio costs $1.88 on Gemini Omni Flash 1.1 and $2.50 on Wan 3.0 on Sume; Wan reaches 30 s and takes audio references.
Written by Sume