Table of Contents
Per-minute vs. per-character vs. concurrency: how voice AI pricing actually works
Voice AI pricing pages usually meter four units: audio minutes, text characters, concurrent sessions, and committed volume. Each unit measures a different cost driver: speech runtime, generated text, simultaneous live sessions, or prepaid usage. Those differences determine where costs hide inside each model.
That framework matters because the units don't line up. Pricing pages can mix speech minutes with text-character blocks, while a voice-agent platform's per-minute rate may cover only its own layer. Without a shared standard, you're comparing denominators that don't match. With one, you can hold any pricing page to the same test.
From here, we'll walk through why the units diverge, break down all four pricing models, show where hidden costs typically hide, and give you a checklist for evaluating any vendor's page against your own traffic.
Key takeaways
Here's the short version before you dig into the full breakdown:
- Vendors meter STT by audio duration and TTS by characters. Voice-agent plans often add conversation minutes and concurrency.
- The billing unit usually points to the vendor's cost driver, so a unit mismatch often signals an architecture difference.
- Hidden costs cluster in four places: orchestration markup, unbundled add-ons, rounding rules, and overage surcharges.
- Convert everything to an all-in cost per conversation minute, using your own traffic profile, before comparing vendors.
Pricing Model Comparison at a Glance
Per-minute, per-character, concurrency, and committed-volume pricing each meter a different cost driver, so the "cheapest" rate depends entirely on your traffic pattern.
| Dimension | Per-Minute | Per-Character | Concurrency | Committed Volume |
|---|---|---|---|---|
| What it meters | Audio duration | Generated text length | Simultaneous live sessions or channels | Prepaid usage tier |
| Typical layer | STT and voice-agent conversation time | TTS | Voice-agent sessions, SIP trunking | Any layer, negotiated |
| Cost driver | Recognition or session compute over time | Synthesis compute per character | Reserved capacity, whether idle or active | Forecasted usage |
| What it rewards | Dense, continuous speech | Concise scripts | Steady, high-utilization traffic | Accurate usage forecasting |
| What it penalizes | Silence, hold time, idle streams | Verbose text, unfiltered SSML or whitespace | Spiky, low-utilization peaks | Under- or over-committing |
| Example | Deepgram STT and Voice Agent API | Deepgram Aura-2 TTS | Elastic SIP trunking, Voice Agent concurrency caps | Deepgram's Growth tier |
Use this table to identify which unit governs each layer of your stack, then apply the checklist below to the specific vendor page you're evaluating.
Why voice AI pricing is confusing
Across the stack, vendors meter different layers of the same stack in different units, then bundle or unbundle features inconsistently. Each choice has an operational reason, but together they make headline rates nearly impossible to compare directly.
Different units for different layers
A production voice agent runs a speech recognition API, an LLM, a text-to-speech API, and telephony at the same time. Each layer bills in its own unit: duration for recognition, characters or tokens for synthesis, tokens for the LLM, and minutes for telephony. A quote for one layer covers only that layer. Convert before adding minutes to characters.
Bundled rates vs. line-item add-ons
Two vendors can quote similar numbers and include different things in them. One folds speaker separation into its transcription rate; another bills it hourly on top. The headline figure becomes useful only after you know exactly which features sit inside it.
Deployment model changes the math
Running an OpenAI Whisper model on your own GPUs replaces metered fees with fixed infrastructure spend, which only pays off at sustained high load.
Licensed on-prem containers can flip the structure again: annual commitments and upfront capacity planning replace pure pay-as-you-go usage. The same workload can be a variable cost, a fixed cost, or a prepaid obligation depending on where it runs.
The four pricing models, one by one
Most pricing pages can be mapped to four axes: per-minute, per-character, concurrency, or committed volume. Each rewards a different usage pattern because each reflects a vendor cost driver.
Per-minute pricing
Voice-agent platforms extend the per-minute logic to the whole conversation, so session infrastructure stays live for the full call. Streaming rates typically run higher per minute than pre-recorded rates for the same model, since real-time compute can't batch across requests the way batch processing can.
When a vendor lists separate real-time and batch rates, use the real-time line for live agents. For contact-center platforms like Sharpen, even small rounding rules can matter once live calls replace tidy demo audio.
Multi-leg calls compound this further: a transferred or conferenced call can bill each leg separately, so a single customer interaction may generate more billable minutes than the call's wall-clock length suggests.
Per-character pricing
Before comparing per-character rates, check whether the vendor counts SSML markup, whitespace, or multibyte characters in the billable total, since non-Latin scripts can consume more bytes per character than the sticker rate implies.
Voice tier also moves the price, so compare the exact standard or premium voice you'll call. Static or repeated phrases add up fast too: a "please hold" prompt played on every call bills as fresh characters each time unless the vendor caches common phrases, so a script with heavy boilerplate can cost more than its word count suggests.
Concurrency-based pricing
Elastic SIP trunking pages price capacity by channel, with each channel reserved continuously whether or not a call on it is active.
Voice-agent platforms apply the same idea as session caps: plans include a set number of simultaneous sessions because each open session holds a live WebSocket connection and reserved inference capacity.
Concurrency limits are usually scoped to the whole account or project rather than to a single API key, so a reconnect storm spread across many keys can hit the cap faster than a per-key traffic estimate would suggest.
Volume and committed-use pricing
Published tiers can kick in as monthly usage grows, and negotiated commitments trade prepaid spend for lower rates, the way Deepgram's Growth tier trades prepaid annual credits for rates below pay-as-you-go.
Commitments cut your unit cost but shift risk onto your forecast: unused prepaid credits don't always roll over past the contract term, so committing early in the year can leave more usable runway than committing the same amount late in the year.
Where hidden costs actually live
Orchestration layers, unbundled add-ons, rounding rules, and overage surcharges each push the invoice above the sticker rate, and each is visible in advance if you know where to look.
Orchestration and pass-through markup
A single voice agent in production can generate up to five invoices per deployment, according to Hermes. Those invoices cover orchestration, STT, LLM, TTS, and telephony. The orchestration platform's headline per-minute rate covers only the first. Model costs can pass through on top, and the cost per minute can climb when longer conversation history gets re-sent on each turn.
Add-on features billed separately
When a page itemizes diarization, redaction, entity detection, or content moderation, price those features separately from the base transcription rate. Stack three or four and your effective rate sits well above the advertised one.
Itemized add-ons are legitimate. The trouble starts when you price the base rate and only find the line items at integration time. Late line items can derail an integration sprint.
Overage tiers and minimums
For a concurrency cap, check whether exceeding it reprices the overrun only or the entire call. Twilio rounding rules compound quietly too: simple arithmetic shows that 100,000 calls averaging 45 seconds bill as 100,000 minutes under per-minute rounding but 75,000 minutes under per-second billing, a 33% difference. Add monthly platform minimums, and a quiet month can still produce a real bill.
What transparent pricing should actually mean
A readable page lists the exact model rate and add-on prices so you can forecast spend as usage grows without a sales call. An opaque page blocks at least one of those.
Model-level clarity
When a blended rate doesn't name the model behind it, you can't reproduce the average. You should be able to use the specific model or voice tier rate on the page to recompute your bill from your own traffic logs. A page showing only a starting-at figure, with real rates gated behind a sales conversation, leaves that math out of your reach.
Itemized add-ons over buried bundles
You should see what each feature costs before you commit, even when the answer is zero. On Deepgram's own pricing page, Redaction, Keyterm Prompting, Speaker Diarization, and Smart Formatting all appear with their pricing treatment: the first three are separately priced add-ons, and Smart Formatting is included at no charge.
Fully published bundles also work. Deepgram publishes bundled per-minute rates for its Voice Agent API across Standard and Advanced tiers, which removes LLM pass-through as a variable on those fully bundled plans; BYO LLM and BYO TTS tiers price those components separately. Avoid a headline rate plus unpredictable pass-throughs.
No surprise markup at volume
Growth should make your unit cost easier to predict as usage grows. Published volume tiers or discount thresholds let you model spend before you sign, and an overage rate expressed as a multiplier of the base rate tells you the price of a bad forecast.
When either number exists only inside a negotiated contract, budget for the gap. Production customer data matters here too: Five9 doubled user authentication rates after integrating Deepgram speech recognition into its IVR system, which makes predictable unit costs part of production planning.
A pricing page evaluation checklist
Five minutes with these questions surfaces most billing surprises before the invoice does. Bring your own traffic profile, with call-length distribution tied to monthly volume and peak concurrent sessions.
Questions about the base rate
- What exactly is one billable unit, and is that definition written down anywhere binding?
- What's the rounding increment, and is there a minimum duration per request?
- Do silence, hold time, and idle connections bill at the full rate?
- Is stereo or multichannel audio billed per channel or per stream?
Questions about add-ons and overages
- Which features from the demo are paid add-ons, and what does each cost?
- What's the overage rate, expressed as a multiplier of the base rate?
- When you exceed a cap, does the surcharge apply to the overrun only or the entire session?
Questions about scale and commitment
- At what thresholds do volume discounts activate, and are they automatic or negotiated?
- Do unused prepaid credits roll over, and for how long?
- What's your effective per-unit cost at 3x and 10x current volume?
Reading any vendor's pricing page from here
Whatever page you open next, decompose it the same way. Identify the unit at each layer, then fold required add-ons, rounding, and overage rules into the same total. Then convert everything into one all-in number built from your own traffic. For the volume math in detail, see our cost-at-volume guide, and to line vendors up side by side, use our pricing comparison hub.
Apply the same pricing test to Deepgram, which is built as production-grade voice AI infrastructure for teams embedding speech-to-text, text-to-speech, and voice agents inside their own products and enterprise workflows.
It publishes per-model rates for Nova-3 speech-to-text and Aura-2 text-to-speech, plus bundled Voice Agent API pricing across Standard and Advanced tiers, though BYO LLM and BYO TTS options price those components separately.
You can also plan across cloud, self-hosted, and private cloud deployments, then test real workloads before spending anything. After new-account credits are consumed, usage-based pricing applies.
Sign up, confirm the current $200 new-account offer, grab free credits, and put your own audio through the math.
FAQ
What's the fastest way to estimate per-minute versus per-character cost?
Two formulas cover the estimate. STT cost equals billable audio minutes times the minute rate. TTS cost equals generated characters times the character rate. Use production logs for both numbers; demo scripts distort the estimate.
How should I size concurrency before signing a contract?
Peak simultaneous sessions in five-minute windows are the starting point. Use the 95th percentile for normal capacity, then model your worst launch-day spike separately. Keep the normal-capacity and spike scenarios separate.
What's a practical test for hidden costs?
A practical test is to ask the vendor to fill five columns for every feature: unit, rounding rule, included quota, trigger condition, and overage rate. Any blank cell becomes a contract question.
When does fixed concurrency beat metered pricing?
Break-even minutes equal monthly slot fee divided by the comparable per-minute rate. If your expected used minutes sit above that number consistently, reserved capacity can win.
How do I compare vendors with different units?
Export request ID, layer, start time, end time, billable duration, generated characters, token count, add-on flags, and status. Put one vendor formula per column. Use the same traffic sample for every vendor so outliers don't get averaged away.









