1. Your transcription needs
2. Comparison
| Provider and plan | Per month | Per year | 12-month spend with growth |
|---|
Where the cheapest option changes
| Audio hours per month (at your streaming and speaker-label needs) | Cheapest |
|---|
"n/a" means no listed plan covers that need. Self-hosting is cheapest at high volume on paper, but you run, patch and scale the GPU box yourself, and accuracy on your own audio can differ from the hosted models. Add-ons and discounts are not priced.
Plan tables (editable)
| Provider and plan | Price (USD/mo) | Hours included | Per extra hour | Streaming | Speaker labels |
|---|
Leave "per extra hour" at 0 for plans that cannot be topped up. Press Compare after changing a value.
Prefer a CLI, or want a budget gate in CI?
node cli.mjs compare --hours 500 --diarization --growth 5 node cli.mjs compare --hours 500 --diarization --provider aws --budget 400 # exit 1 over budget node cli.mjs crossover --diarization node cli.mjs compare --hours 500 --prices prices.json --json
Get cli.mjs and engine.mjs — Node 18+, nothing to install, no network call. More: how to choose a speech-to-text API.
Common questions
Does this transcribe my audio?
No. It uses only the hours and needs you type, and plan tables you can edit. It never receives audio and never contacts the vendors. Treat every figure as a way to compare options, never as what you will be charged.
Where do the prices come from?
They are approximate public list prices as best known in 2025 on pay-as-you-go billing, shown with an as-of line, and every plan is editable. Vendors change prices often, so check each pricing page before deciding.
What is not included?
Accuracy and language differences between models, word timestamps, redaction and other add-ons, volume or committed-use discounts, free credits, billing-increment rounding, taxes and, for self-hosting, engineering and on-call time. Accuracy on your own audio often matters more than a few cents an hour, so test two or three vendors on a sample.
Is my data uploaded anywhere?
No. The page calculates in your browser and sends nothing. The CLI reads local files and makes no network call.