Concurrent Voice Sessions Per GPU: The Real Numbers

Connor Blier
Founding GTM

Connected squares representing multiple concurrent voice sessions sharing a single GPU

Concurrent Voice Sessions Per GPU: The Real Numbers

On our own fleet, a single A10 GPU handles roughly 160 to 180 concurrent speech-to-text connections, and a comparable A10 serves about 180 concurrent conversations for text-to-speech at $1.2 per hour. Those two numbers, not the GPU's spec sheet, are what capacity planning for a voice agent actually rests on.

Ask about concurrent voice sessions per GPU and you will usually get a spec sheet back: memory, FLOPs, tensor cores. None of that answers the question, because a voice agent is not one model on one GPU. It is a pipeline — speech-to-text, an LLM, text-to-speech — and each stage has its own concurrency ceiling, its own latency budget, and its own failure mode when you exceed it.

In our testing the ceiling is set per stage, and the stages are not symmetrical. On Cerebrium, a Deepgram speech-to-text service running on an A10 GPU handles roughly 160 to 180 connections concurrently. Text-to-speech models typically want an A10 as well, and one serves about 180 concurrent conversations at $1.2 per hour. The speech-to-text instance runs $1.44 per hour. Those are the real planning units.

Why "sessions per GPU" is the wrong unit on its own

A concurrency number is only meaningful next to a latency budget. You can push far more sessions onto a GPU than the numbers above if you are willing to let time-to-first-audio drift — and for a voice agent, drifting is the same as failing. Humans notice conversational latency well below a second.

So the honest framing is: how many sessions fit while the pipeline still responds fast enough to feel like a conversation. That reframes the whole exercise, because it means the ceiling depends on where each stage runs, not just how big the GPU is.

Where the latency budget actually goes

This is the part that surprises teams. Co-locating the models with your orchestration buys more than tuning the models does.

For speech-to-text, the time-to-first-byte from the Deepgram API is typically around 250ms, while hosting the same model on Cerebrium gives about 110ms — a 140ms saving for a change that involves no model work at all. Text-to-speech behaves the same way: roughly 80ms when deployed locally against about 150ms through a hosted API, a further ~90ms. We measured a comparable figure independently on Orpheus TTS, at about 100ms time-to-first-byte, which matters because it means the band is a property of co-location rather than of one vendor's model.

The LLM stage is the largest single line. OpenAI's 4o-mini varies from 700ms to 1.5s time-to-first-token, whereas a self-hosted Llama 3 8B or 70B consistently achieves around 300ms. Assembled end to end, we have measured a complete Ultravox and Cartesia pipeline at 600ms first-time-to-audio.

StageHosted APICo-locatedWhat it costs you
Speech-to-text~250ms TTFB~110ms TTFB~140ms
Text-to-speech~150ms TTFB~80ms TTFB~90ms
LLM700ms–1.5s TTFT~300ms TTFT400ms–1.2s

Read that table as a concurrency document rather than a latency one. Every millisecond you win back is headroom you can spend on packing more sessions onto the same GPU before the conversation starts to feel wrong.

Turning concurrency into cost per session

Once you have a concurrency ceiling and an hourly rate, per-session economics are arithmetic. A text-to-speech A10 at $1.2 per hour serving 180 concurrent conversations is two-thirds of a cent per conversation-hour at full packing. The speech-to-text instance at $1.44 per hour across 160–180 connections lands in the same neighbourhood.

The number that matters operationally, though, is per-minute-per-call across the whole pipeline, because that is what scales with your traffic rather than with your fleet. On the global-scale voice architecture we published, the assembled total came to $0.02932 per minute per call. We broke that figure down stage by stage in the voice agent cost-per-minute analysis.

The trap is planning against peak concurrency. Per-session cost is instance cost divided by average concurrency, and on real traffic average sits well below peak. Size for peak and bill for average, and the two numbers diverge quickly.

What changes the ceiling

Four things move these numbers, roughly in order of leverage:

  1. Where the stage runs. Co-location is the single biggest lever, as the table above shows, and it requires no model changes.

  2. Which model you pick. A smaller speech-to-text or text-to-speech model raises the ceiling directly; multilingual transcription changes the calculation again, because language coverage and model size trade against each other.

  3. Where your users are. Regional placement moves round-trip time more than model choice does for anything interactive — which is why we built multi-region deployments and a distributed router for real-time workloads.

  4. What else is in the pipeline. Retrieval, tool calls and web search each add a stage. A low-latency architecture with real-time web search and a realtime RAG voice agent show what the budget looks like once those are in.

How to measure this on your own stack

Do not inherit our numbers. Measure the same three things, in this order:

  1. Time-to-first-byte per stage, in isolation, before assembling the pipeline. Stage-level regressions are invisible end to end.

  2. The concurrency at which time-to-first-byte starts to degrade — not the concurrency at which the GPU runs out of memory. The first is your real ceiling and it arrives earlier.

  3. Average concurrency on production traffic, over a full weekly cycle. That is your cost divisor.

If you are weighing this against a managed realtime API, our comparison of self-hosting versus the OpenAI Realtime API covers the trade directly. Current per-second rates for the GPU classes referenced here are on the pricing page — we have not quoted list prices in the body, because they move and a stale price is worse than no price.

The short version

One A10 carries roughly 160–180 concurrent speech-to-text connections, or about 180 concurrent text-to-speech conversations. But the ceiling that binds in production is the latency budget, not the GPU, and co-locating your models buys back more headroom than tuning them does.

Frequently asked questions

How many concurrent voice sessions can one GPU handle?
On our fleet, a single A10 GPU handles roughly 160 to 180 concurrent speech-to-text connections, and a comparable A10 serves about 180 concurrent conversations for text-to-speech. A voice agent is a pipeline, so the practical ceiling is set per stage, and the binding constraint is usually the latency budget rather than GPU memory.
What limits concurrency for a voice agent — memory or latency?
Latency, almost always. You can pack far more sessions onto a GPU than the figures above if you accept slower time-to-first-audio, but conversational latency is noticeable well below a second. The real ceiling is the concurrency at which time-to-first-byte starts to degrade, and that arrives before the GPU runs out of memory.
Does hosting speech models yourself actually reduce latency?
Measurably. Deepgram speech-to-text has a time-to-first-byte of about 250ms through the API against roughly 110ms co-located on Cerebrium, a 140ms saving. Text-to-speech runs about 80ms locally versus 150ms via an API. We measured about 100ms independently on Orpheus TTS, which suggests the band comes from co-location rather than a single model.
What does a concurrent voice session cost?
A text-to-speech A10 at $1.2 per hour serving about 180 concurrent conversations, and a speech-to-text instance at $1.44 per hour across 160-180 connections. Assembled across the whole pipeline, the global-scale voice architecture we published totalled $0.02932 per minute per call. Divide by average concurrency, not peak.
How much latency does the LLM stage add to a voice pipeline?
It is usually the largest single line. OpenAI 4o-mini ranges from 700ms to 1.5s time-to-first-token, while a self-hosted Llama 3 8B or 70B consistently reaches about 300ms. Assembled end to end, we measured an Ultravox and Cartesia pipeline at 600ms first-time-to-audio.

Sources

  1. cerebrium.ai
    “On Cerebrium, a Deepgram service can run on an A10 GPU and can handle roughly 160-180 connections concurrently.”

    The concurrency ceiling for speech-to-text on a single mid-range GPU, measured on our own fleet. This is the number the whole capacity calculation rests on.

  2. cerebrium.ai
    “They usually require an A10 GPU which will cost $1.2 per hour for 180 concurrent conversations.”

    The matching text-to-speech figure: the same class of GPU, the same concurrency band, with the hourly cost that makes per-session economics computable.

  3. cerebrium.ai
    “Therefore the cost for this on Cerebrium is $1.44 per hour per instance and Cerebrium manages all autoscalling.”

    Hourly cost of the speech-to-text instance, the other half of the per-session divisor.

  4. cerebrium.ai
    “- Total: $0.02932 per minute per call.”

    The fully-assembled per-minute cost of one voice call across the whole pipeline — what the concurrency numbers actually buy you.

  5. cerebrium.ai
    “Typically, the TTFB (time-to-first-byte) from the Deepgram API is ~250ms whereas the TTFB hosting it locally on Cerebrium is ~110ms which is a 140ms saving.”

    Why teams colocate speech-to-text rather than calling a hosted API: the latency difference that co-location buys, measured on the same model.

  6. cerebrium.ai
    “By deploying these models locally on Cerebrium, you can achieve ~80ms TTFB as opposed to APIs that typically respond in ~150ms, leading to a ~90ms saving.”

    The same colocation comparison for text-to-speech, showing the effect is not specific to one vendor or one stage.

  7. cerebrium.ai
    “The TTFT (time-to-first-token) of OpenAI 4o-mini varies from 700ms - 1.5s whereas if you deploy a llama-3-8b model or llama-3-70b, you can consistently achieve ~300ms.”

    The LLM stage's contribution to the latency budget that concurrency planning has to fit inside.

  8. cerebrium.ai
    “Using this pipeline, we are able to achieve an end-to-end latency (First time to audio, in just 600 ms).”

    An end-to-end figure for a complete voice pipeline, bounding the budget the per-stage numbers have to add up to.

  9. cerebrium.ai
    “From our testing this endpoints has a TTFB (Time-to-first-byte) of ~100ms which is perfect for low latency voice applications.”

    A second, independently-measured text-to-speech latency figure from a different model, corroborating the ~80-100ms band rather than resting on a single measurement.


Related resources

See all
NVIDIA logo representing B200 inference throughput and time-to-first-token measurements
NVIDIA B200 Inference: Measured Throughput and TTFT
Compute cluster icon representing alternatives to AWS for running AI inference workloads
AWS Alternatives for AI Workloads: What Actually Changes
Voice agent icon representing the per-minute cost of running a production voice AI agent on serverless GPUs
What a Voice AI Agent Really Costs Per Minute