Skip to main content
AI & Automation

Voice Recognition & NLP on Cloud: Build vs Buy

Speech-to-text and language understanding used to mean a months-long ML project. Now it means a decision — which API, hosted or self-run, and what it will cost when the traffic scales.

John Lane 2023-03-31 6 min read
Voice Recognition & NLP on Cloud: Build vs Buy

Five years ago, building a voice interface meant hiring a machine learning team, labeling thousands of hours of audio, and spending six months on a model that was worse than whatever Apple and Google were shipping for free. That era is over. Today, speech recognition and natural language understanding are API calls, and the question has shifted from "can we build this" to "which provider, hosted or self-run, and what is the per-request cost when we scale."

Here is how we think about the build-vs-buy decision for voice and NLP on cloud, and the seven places teams get the tradeoffs wrong.

Strategy One: Default to Hosted APIs for the First Version

If you have not shipped voice or NLP in production before, use a hosted API. The cloud-native ones (Azure AI Speech, Amazon Transcribe, Google Speech-to-Text) and the specialists (Deepgram, AssemblyAI, ElevenLabs for the inverse direction) all work out of the box, scale without effort, and cost almost nothing at low volume.

The temptation to "just run Whisper yourself because it is free" is real and usually wrong for the first version. You will spend weeks on GPU provisioning, batching, container orchestration, and latency tuning — weeks that would be better spent figuring out whether the feature is worth building at all. Ship the hosted version first, measure usage, and then decide whether to self-host based on actual numbers.

Strategy Two: Self-Host When Per-Request Cost Dominates

The break-even point for self-hosting speech-to-text is surprisingly high. At hosted API rates in the $0.004 to $0.02 per audio minute range, a workload processing 10,000 minutes a day runs $40 to $200. A self-hosted Whisper or NVIDIA Riva deployment on a GPU instance costs around $300 to $800 per month for the compute alone, plus engineering time for the pipeline. The math only starts favoring self-hosting somewhere above roughly 50,000 to 100,000 minutes per day, and only if you are willing to own the operational work.

There is one exception: regulated data. If the audio contains PHI, PII, or regulated content that cannot leave your environment, the per-request math is irrelevant — self-hosting is the only option. Plan accordingly.

Strategy Three: Measure Word Error Rate on Your Actual Audio

Every provider's marketing page shows a WER number. Every one of those numbers is measured on a clean academic dataset that does not resemble your audio. Before you commit to a provider, send 20 to 50 samples of your real audio through each of the candidates and measure WER against a human transcription. The results will surprise you.

In our experience, accuracy ranking varies by audio type. Deepgram and AssemblyAI tend to win on clean conversational audio. Azure and Google tend to win on telephony. Whisper large-v3 is competitive with everything on clean audio and handles accents and code-switching better than most. But none of these generalizes — the right answer for your audio is only visible after you test on your audio.

Strategy Four: Diarization Is Harder Than Transcription

Turning audio into words is mostly solved. Figuring out who said which words is still hard, and provider quality varies more on this axis than on raw transcription. If your use case depends on speaker labels — meeting summarization, call center analytics, podcast transcripts with speaker attribution — test diarization specifically, not just transcription accuracy.

The common failure mode is diarization that is 85 percent correct on average but catastrophically wrong on specific conversations. Two people with similar voices, a three-way conversation with interruptions, or a speakerphone recording with crosstalk can all produce output where speaker labels are scrambled. If your downstream workflow assumes speaker labels are reliable, build in a verification step or accept that you will need human review.

Strategy Five: For NLU, Separate the Easy Part From the Hard Part

Modern LLMs are astonishingly good at the "understand what the user said" part of NLU. Give GPT-4, Claude, or a similarly capable model a transcript and a prompt explaining what you want extracted, and it will do the job without training data. The hard part is everything around the LLM: routing, grounding, validation, fallback, and latency.

The mistake is treating the LLM as a black box that does "NLP" and wiring it directly to production. The pattern that works is to decompose the NLU task into steps: intent classification (small model or rules), entity extraction (LLM with structured output constraints), business logic (code, not the LLM), response generation (LLM or template). Each step can be monitored, tested, and replaced independently. A single prompt doing all of it is unmaintainable within a month.

Strategy Six: Latency Budgets for Voice Are Unforgiving

If you are building a real-time voice interface — an IVR, a voice agent, a live captioning system — the latency budget is brutal. Users perceive anything over 400 to 500 ms as "slow" and anything over a second as broken. That budget has to cover audio capture, streaming to the STT service, STT processing, NLU, business logic, text-to-speech, and playback. Spend 200 ms in STT and 300 ms in the LLM and you are already over budget before the TTS starts.

The architectural implications are significant. Use streaming STT, not batch. Start TTS on the first token from the LLM, not after the whole response is generated. Keep everything in one region. Pre-warm the LLM or use a provider that actually supports low-latency streaming (not all of them do, despite what the docs say). If the round-trip budget does not fit the user experience, the product is broken — this is a thing to figure out in the prototype, not after launch.

Strategy Seven: Plan for the Cost of Logs and Evals

Voice and NLP systems drift more than traditional applications. A new slang term, a new product name, a change in how users phrase requests — all of these degrade accuracy over time. The only way to catch drift is to log the inputs and outputs, review them regularly, and maintain an evaluation set that you run against candidate model versions.

Budget for this from day one. Storage for audio logs is cheap but not free, and the labeling work to maintain an eval set takes human hours. Teams that skip this step end up with systems that were great at launch and are mediocre two years later, and nobody can explain why because there is no historical data to look back at.

What We Would Actually Build

For a typical mid-market use case — a customer service voice bot, a meeting transcription tool, or a document analysis pipeline — here is the default stack we recommend.

  • STT: hosted API with streaming support, chosen after testing WER on real audio samples. Deepgram, Azure, or AssemblyAI are the usual finalists.
  • NLU: an LLM behind a structured-output layer, with clear separation between intent routing, extraction, and response generation. Use the smallest model that passes the accuracy bar.
  • TTS: hosted API, with streaming for interactive use cases. ElevenLabs for quality, Azure or Google for cost.
  • Orchestration: a small stateful service that manages the conversation, not a prompt chain inside the LLM.
  • Observability: log everything, evaluate weekly, and maintain a test set that grows with the product.

The honest answer on build vs buy is that "buy" is the right default for 90 percent of teams, "self-host Whisper or Riva" is the right answer when per-request cost dominates or data sovereignty requires it, and the decision should be revisited annually as prices and model quality continue to move. What you do not want is to be on a two-year roadmap to build something that was not a real problem in the first place.

Talk with us about your infrastructure

Schedule a consultation with a solutions architect.

Schedule a Consultation
Talk to an expert →