Text-to-Speech Cost Calculator
Characters into dollars, with SSML markup counted or not counted, an audio cache for your fixed phrases, and retakes billed in full.
42,000 syntheses for 50,000 delivered utterances — $0.0085 each.
- Spoken characters per request
- 600
- SSML markup characters
- 72 — billed
- Billable characters per synthesis
- 672
- Syntheses per month
- 42,000
- Characters billed
- 28,224,000
- Rate per 1,000 characters
- $0.01
- Cost of the markup
- $45.36
- Avoided by the audio cache
- $105.84
- Monthly total
- $423.36
- Cost per delivered utterance
- $0.0085
- Annual
- $5,080
Text-to-speech is billed on what you send, not on what the listener hears, and that one fact produces every surprise on the invoice. SSML is the clearest case: a paragraph wrapped in break tags, emphasis and phoneme hints can be a third longer than the words inside it, and if your provider bills the raw input then a third of your synthesis budget is being spent on angle brackets. Whether that is true of your provider is a documented fact you can check in a minute, and it is worth checking before you optimise anything else.
The second lever is that most voice products say the same things over and over. Greetings, confirmations, error messages, the twelve responses your IVR gives ninety per cent of the time — these are fixed strings, and a fixed string should be synthesised once and stored as audio. The cache field above is usually the largest single saving available, and unlike prompt caching it never expires, because the text does not change.
What this leaves out: latency, which for a conversational product is the actual constraint and which pushes you toward streaming synthesis that you cannot cache; storage and delivery of the audio, which for long-form content dwarfs the synthesis charge; and licensing, if the voice you want is not one of the free ones. If you are comparing TTS against recording a human, note that the human is a one-time cost per script and TTS is a per-request one — the break-even is a volume question, and it moves the moment your copy changes.