TTS cost per minute of speech: OpenAI, ElevenLabs and Sume

Cartesia counts a minute of speech as 750 to 800 characters. A minute is $0.011 to $0.064 on OpenAI and ElevenLabs lists, $0.036 to $0.038 on Sume.

5 min readSume
All posts

Text-to-speech vendors quote per character or per million characters, but buyers think in minutes of audio. Cartesia's pricing page (read 2026-10-03) gives a conversion for its Sonic model: one minute of audio generation takes 750 to 800 credits, and one credit is one character. Speaking rates vary by voice and language, so treat 750 to 800 characters per minute as a working assumption and apply it to every row below.

Prices come from each vendor's own page, read 2026-10-03: OpenAI lists tts-1 at $15 and tts-1-hd at $30 per 1M characters, and ElevenLabs lists $0.04 per 1,000 characters for Flash/Turbo, $0.08 for v3, and a launch price of $0.022 on v4 through October 12 (list $0.08). Sume's TTS is $0.0475 per 1,000 characters, spaces and punctuation included.

Cost of one minute

Multiply the per-1,000-character price by 0.75 to 0.80.

Cost of one minute of speech at 750 to 800 characters (vendor lists read 2026-10-03)
OptionPer 1,000 charactersOne minute
OpenAI tts-1$0.015$0.0112 to $0.012
OpenAI tts-1-hd$0.03$0.0225 to $0.024
ElevenLabs Flash/Turbo$0.04$0.03 to $0.032
ElevenLabs v3$0.08$0.06 to $0.064
ElevenLabs v4 (launch price to Oct 12)$0.022$0.0165 to $0.0176
ElevenLabs v4 (list)$0.08$0.06 to $0.064
Sume TTS$0.0475$0.0356 to $0.038

What it means for a project

A 10-minute narration is 7,500 to 8,000 characters. On Sume that is $0.36 to $0.38. On OpenAI tts-1-hd it is $0.225 to $0.24, and on ElevenLabs v3 it is $0.60 to $0.64. The spread across vendors is more than fivefold from the cheapest (tts-1) to the dearest (ElevenLabs v3 or v4 list), but at this scale the largest figure is still under a dollar.

Voice cost only becomes a real line item at volume or next to cheap video. A 10-second video clip on Sume at $1.00 costs about 170 times a 10-second voice line (about $0.0059 for 125 characters, a 10-second line at 750 characters a minute).

Script it

Price any script length with this snippet; swap in your own characters per minute.

rates = {'openai tts-1': 0.015, 'openai tts-1-hd': 0.030, 'elevenlabs v3': 0.08, 'sume tts': 0.0475}
chars_per_minute = 775  # midpoint of 750 to 800
minutes = 10
for name, per_1k in rates.items():
    cost = per_1k * chars_per_minute * minutes / 1000
    print(f'{name}: ${cost:.3f} for {minutes} min')

Sources

Related posts

More in Pricing

All Pricing posts

Written by Sume