TTS price per audio hour: $15, $22 and $47.50 per 1M characters

Per-million-character prices hide the hourly cost. At a stated 900 characters a minute, Flash, MAI-Voice-2.1 and Sume come to $0.81, $1.19 and $2.57 an hour.

6 min readSume
All posts

At 900 characters of speech per minute, one hour of audio is 54,000 characters, which costs $0.81 on MAI-Voice-2.1-Flash ($15 per 1M characters), $1.19 on MAI-Voice-2.1 ($22 per 1M) and $2.57 through Sume's TTS Router ($47.50 per 1M). Those are Microsoft's prices from its model page (read 2026-10-03) and Sume's catalog rate of the provider list price times 1.25.

The 900 figure is an assumption, not a vendor number, so this post shows how to change it. If your narration is faster or slower, the hourly price scales with it, and the ordering of the three prices does not change.

Why per-character prices are hard to compare

Text-to-speech vendors quote per character, per thousand characters, per minute of audio or per hour. Speech-to-text vendors quote per hour. When you build a pipeline that transcribes and then re-voices, you end up with two different units and a spreadsheet nobody trusts. Microsoft's own launch post mixes them: transcription at $0.54 per hour of audio as an introductory rate through the end of the year, voice at $22 and $15 per 1M characters (Microsoft AI, read 2026-10-03).

The bridge is characters per minute of speech. A common rule for English narration is 150 words a minute. Counting an average word as five letters plus a space gives 900 characters a minute. Fast ad reads and slow audiobook reads move this number by a third in either direction, and other languages differ again, so measure a sample of your own scripts before you rely on it.

The conversion table

Per hour, the gap between the cheapest and the dearest row is about $1.76. For a 10-minute explainer it is under 30 cents. The unit conversion matters less than the other costs in the pipeline: a rendered video, captions and music usually cost more than the voice.

Per-million prices from Microsoft's MAI-Voice-2.1 page, read 2026-10-03, and Sume's TTS Router rate (list × 1.25). Hourly figures assume 900 characters per minute.
ModelPer 1M charactersPer minute (900 chars)Per audio hour (54,000 chars)
MAI-Voice-2.1-Flash$15.00$0.0135$0.81
MAI-Voice-2.1$22.00$0.0198$1.19
Sume TTS Router (Cartesia Sonic ids)$47.50$0.0428$2.57

Convert your own numbers

The script below turns any per-million price into per-minute and per-hour figures, using characters per minute you measure from your own scripts. Replace the sample text with a real script and the assumption with your measured rate.

PRICES_PER_MILLION = {
    "MAI-Voice-2.1-Flash": 15.00,
    "MAI-Voice-2.1": 22.00,
    "Sume TTS Router": 47.50,
}

sample_script = (
    "Meet the new travel mug. It keeps drinks hot for twelve hours, "
    "fits every cup holder, and survives a drop from a kitchen counter."
)
sample_seconds = 11.0  # time the read took when you timed it

chars_per_minute = len(sample_script) / sample_seconds * 60
print("measured chars per minute: %.0f" % chars_per_minute)

for name, per_million in PRICES_PER_MILLION.items():
    per_minute = chars_per_minute * per_million / 1_000_000
    print("%-22s $%.4f/min  $%.2f/hour" % (name, per_minute, per_minute * 60))

Three worked budgets

A twenty-lesson course with eight minutes of narration per lesson is 160 minutes of audio, or 144,000 characters at the assumed rate. That is $2.16 on Flash, $3.17 on MAI-Voice-2.1 and $6.84 through Sume. A weekly podcast intro-to-outro read of 40 minutes is 36,000 characters a week: $0.54, $0.79 and $1.71 respectively. A single 30-second product ad is 450 characters, so the voice is under two cents even at Sume's rate ($0.021).

Seen this way, the per-million number only matters at volume. Someone generating 10,000 localized product clips a month, at 450 characters each, is buying 4.5 million characters: $67.50 on Flash, $99 on MAI-Voice-2.1, $213.75 on Sume. Then a difference of a few dollars per million is real money, and it is worth running your own scripts through each engine and listening before you pick on price alone.

A note on rounding

Every figure above is rounded to the cent or to a fraction of a cent. Sume's reserve rounds up to the cent per job, so many tiny jobs cost slightly more in total than one long job of the same characters. If you generate hundreds of short lines, price them as jobs, not as a pro-rated character count.

What the hourly figure leaves out

Three things change the real bill. First, whitespace and punctuation count as characters on Sume, so a script with long stage directions costs more than its spoken length suggests; strip anything the voice should not read. Second, retakes: a line you regenerate twice is billed three times. Third, other stages. Sume bills captions at $0.20 per job for videos up to 60 seconds (Video captions), audio detach and timeline audio at $0.01 per job each (Audio detach, Timeline audio), and music has its own fixed per-generation price.

Microsoft's prices are introductory or list prices as of the read date; Flash's $15 is described on the launch post as about 60 percent cheaper than comparable models, a claim I have not independently checked. Re-read the vendor page before you commit to a budget, and keep the date next to the number in your sheet.

Sources

Related posts

More in Pricing

All Pricing posts

Written by Sume