Voice AI-infrastructuur: Real-time spraakagenten bouwen
Bijgewerkt 11 december 2025
Update december 2025: Deepgram STT op 150ms, ElevenLabs TTS op 75ms—toch hebben de meeste agents 800ms-2s nodig door opstapelende stack-latentie. Menselijke conversatie vereist een responsvenster van 300-500ms. Pipeline-latentie: STT (100-500ms) + LLM (350ms-1s+) + TTS (75-200ms). Elke milliseconde telt voor productie-spraakagenten.
Deepgram levert speech-to-text in 150 milliseconden. ElevenLabs synthetiseert spraak in 75 milliseconden. Toch hebben de meeste voice AI-agents nog steeds 800 milliseconden tot twee seconden nodig om te reageren—omdat latentie zich opstapelt over de hele stack.¹ Het verschil tussen componentcapaciteiten en end-to-end prestaties onthult de infrastructuuruitdaging in het hart van voice AI: het orkestreren van spraakherkenning, taalmodellen en synthese in pipelines die aansluiten bij menselijke conversatietiming.
Menselijke conversatie werkt binnen een responsvenster van 300-500 milliseconden.² Vertragingen boven de 500 milliseconden voelen onnatuurlijk aan. Boven de 1,2 seconden hangen gebruikers op of onderbreken ze. Het bouwen van spraakagenten die aan deze drempels voldoen vereist begrip van elke laag van de stack, het selecteren van geschikte componenten en het ontwerpen van systemen waarin elke milliseconde telt.
De voice AI-stack
Elke spraakagent vertrouwt op vier componenten die samenwerken:³
Speech-to-Text (STT/ASR): De "oren" die gesproken audio transcriberen naar tekst. Latentie varieert van 100-500 milliseconden afhankelijk van streamingconfiguratie.
Large Language Model (LLM): Het "brein" dat getranscribeerde tekst verwerkt en antwoorden genereert. Latentie varieert van 350 milliseconden voor geoptimaliseerde modellen tot meer dan één seconde voor frontier-modellen.
Text-to-Speech (TTS): De "stem" die antwoordtekst synthetiseert naar audio. Moderne streaming TTS bereikt 75-200 milliseconden time-to-first-audio.
Orchestratie: De "dirigent" die de real-time flow tussen componenten beheert, beurtwisseling, onderbrekingen en sessiestatus afhandelt.
De latentievergelijking
Voice AI-latentie accumuleert over de pipeline:⁴
Totale latentie = STT + LLM + TTS + Netwerk + Verwerking
= 200ms + 500ms + 150ms + 50ms + 100ms
= 1000ms (typisch)
Het bereiken van responsen onder de 500 milliseconden vereist ofwel compressie van elk component, ofwel parallellisatie van de pipeline door streaming—spraaksynthese starten voordat het LLM klaar is met genereren, partiële transcripties verwerken voordat gebruikers klaar zijn met spreken.
Speech-to-text-infrastructuur
De ASR-laag converteert audiostreams naar tekst die taalmodellen kunnen verwerken. Providerselectie omvat het balanceren van latentie, nauwkeurigheid en kosten.
Providervergelijking
Deepgram Nova-3:⁵ - Time-to-first-token: ~150ms (VS), 250-350ms (wereldwijd) - Woordfoutpercentage: 18,3% - Geoptimaliseerd voor streaming met real-time factor 0,2-0,3x - Prijs: $0,0043/minuut (pay-as-you-go) - Best voor: Lage-latentie spraakagenten die snelheid prioriteren
AssemblyAI Universal-2:⁶ - Latentie: 300-600ms - Woordfoutpercentage: 14,5% (beste nauwkeurigheid onder streamingmodellen) - Sterke domeinspecifieke prestaties in medische en sales contexten - Prijs: $0,00025/seconde - Best voor: Toepassingen die nauwkeurigheid boven ruwe snelheid vereisen
Whisper (self-hosted):⁷ - Latentie: 1-5 seconden (batch), 380-520ms (WhisperX geoptimaliseerd) - Hoogste nauwkeurigheid voor offline transcriptie - Vereist significante engineering voor productie-streaming - Best voor: Batchverwerking, hybride architecturen
Groq-versnelde Whisper: - Latentie: Onder 300ms op LPU-hardware - Combineert Whisper-nauwkeurigheid met streaminglatentie - Beperkte beschikbaarheid via GroqCloud - Best voor: Kwaliteitsgerichte real-time toepassingen
ASR-infrastructuurpatronen
Streamingarchitectuur: Begin transcriptie onmiddellijk wanneer audio binnenkomt in plaats van te wachten op complete uitingen. Partiële resultaten voeden downstream-componenten voordat gebruikers klaar zijn met spreken.
# Streaming ASR-patroon
async def transcribe_stream(audio_stream):
async for chunk in audio_stream:
partial = await asr_client.transcribe_chunk(chunk)
if partial.is_final:
yield partial.text
else:
# Stuur tussentijdse resultaten voor voorspelling
yield partial.interim_text
Voice Activity Detection (VAD): Detecteer wanneer gebruikers beginnen en stoppen met spreken. Slechte VAD creëert ofwel premature afkappingen (gebruikers onderbreken) of excessieve vertragingen (wachten op stilte die al voorkwam).
Endpointing: Bepaal wanneer een gebruiker zijn beurt heeft afgerond. Agressieve endpointing vermindert latentie maar riskeert het afkappen van sprekers. Conservatieve endpointing zorgt voor volledigheid maar voegt vertraging toe.
GPU-vereisten voor self-hosted ASR
Self-hosted Whisper-implementaties vereisen GPU-acceleratie:⁸
| Werklastniveau | GPU | Gelijktijdige streams |
|---|---|---|
| Ontwikkeling | RTX 3060/4060 | 5-10 |
| Productie | A100 40GB | 50-100 |
| Enterprise | H100 | 200+ |
Productie speech-to-text draait typisch op A100 of RTX 6000 Ada in plaats van H100—de werklast profiteert meer van geheugenbandbreedte dan van ruwe rekenkracht.
Large Language Model-laag
Het LLM verwerkt getranscribeerde spraak en genereert antwoordtekst. Modelselectie beïnvloedt dramatisch zowel latentie als conversatiekwaliteit.
Modellatentieprofielen
Ultrasnel (onder 350ms):⁹ - Gemini Flash 1.5: ~300ms time-to-first-token - Groq-geserveerde Llama: ~200ms op LPU - Best voor: Maximale responsiviteit, eenvoudigere queries
Snel (350-700ms): - GPT-4o-mini: ~400ms - Claude 3.5 Haiku: ~350ms - Best voor: Gebalanceerde snelheid en capaciteit
Standaard (700ms-1s+): - GPT-4o: ~700ms - Claude 3.5 Sonnet: ~800ms - Best voor: Complex redeneren, kwaliteitskritische toepassingen
Optimalisatiestrategieën
Streaming generatie: Begin TTS-synthese wanneer LLM-tokens binnenkomen in plaats van te wachten op complete antwoorden. Moderne orkestratiepipelines streamen tokens direct naar spraaksynthese.
Speculatieve uitvoering: Voorspel waarschijnlijke antwoorden gebaseerd op partiële transcripties. Begin met het genereren van antwoorden voordat gebruikers klaar zijn met spreken, verwerp voorspellingen die niet overeenkomen met de uiteindelijke intentie.
Modelroutering: Routeer eenvoudige queries naar snelle modellen, complexe queries naar capabele modellen. Een classifier bepaalt querycomplexiteit in enkele milliseconden.
# Modelrouteringspatroon
def route_query(transcript, context):
complexity = classify_complexity(transcript)
if complexity == "simple":
return "gemini-flash"
elif complexity == "moderate":
return "gpt-4o-mini"
else:
return "gpt-4o"
Promptoptimalisatie: Kortere prompts verminderen verwerkingstijd. Cache systeemprompts waar providers prompt caching ondersteunen (Anthropic bereikt 90% kostenreductie op gecachete prefixen).
Text-to-speech-infrastructuur
TTS converteert door LLM gegenereerde tekst naar natuurlijk klinkende spraak. De laag is getransformeerd van een bottleneck (2-3 seconden historisch) naar een sterk punt (75-150ms met moderne providers).
Providervergelijking
ElevenLabs Flash v2.5:¹⁰ - Time-to-first-audio: 75ms - Spraakkwaliteit: Toonaangevende natuurlijkheid - Emotioneel bereik: Uitstekende expressiviteit - Prijs: $0,050/1.000 tekens - Best voor: Kwaliteitskritische toepassingen
Cartesia Sonic:¹¹ - Time-to-first-audio: 40-95ms - Speciaal gebouwd voor real-time conversatie - Consistente lage latentie onder belasting - Prijs: $0,038/1.000 tekens - Best voor: Latentiekritische toepassingen
Deepgram Aura-2:¹² - Time-to-first-audio: Onder 150ms - Enterprise-grade betrouwbaarheid - Kosteneffectief op schaal - Prijs: $0,030/1.000 tekens - Best voor: Enterprise-implementaties met hoog volume
PlayHT: - Latentie: ~300ms - Uitgebreide stemmenbibliotheek - Voice cloning-mogelijkheden - Lagere prijspunt - Best voor: Budgetbewuste toepassingen
TTS-infrastructuurpatronen
Streaming synthese: Genereer audio progressief terwijl tekst van het LLM binnenkomt. Stuur audiochunks naar gebruikers voordat complete zinnen klaar zijn met synthetiseren.
Audio buffering: Behoud kleine buffers om afspelen te smoothen ondanks variabele synthesetiming. Buffer te veel en latentie lijdt. Buffer te weinig en audio hapert.
Voice caching: Cache veelgebruikte zinnen (begroetingen, veelvoorkomende antwoorden) als voorgesynthetiseerde audio. Elimineert TTS-latentie volledig voor gecachete content.
Orkestratieplatforms
Orkestratielagen verbinden ASR-, LLM- en TTS-componenten terwijl ze telefonie, beurtwisseling en sessiebeheer afhandelen. Platformselectie bepaalt ontwikkelsnelheid en productiebetrouwbaarheid.
Platformvergelijking
Vapi:¹³ - Focus: Turnkey spraakagentplatform - Telefonie: Native SIP/PSTN-integratie - Aanpassing: Modulaire componentselectie - Prijs: $0,05/minuut + componentkosten - Best voor: Snelle deployment, telefoongerichte toepassingen
LiveKit:¹⁴ - Focus: Open-source real-time infrastructuur - Architectuur: WebRTC-native met agent-framework - Aanpassing: Volledige controle, self-hostable - Prijs: Gratis tier (100 gelijktijdig, 5.000 minuten/maand), betaald vanaf $50/maand - Best voor: Aangepaste toepassingen, teams die volledige controle nodig hebben
Retell AI:¹⁵ - Focus: Natuurlijke conversatieflow - Onderscheidend kenmerk: Geoptimaliseerde beurtwisseling en onderbrekingsafhandeling - Compliance: HIPAA en SOC 2 Type II - Prijs: $0,07+/minuut - Best voor: Prioriteit voor conversatiekwaliteit, enterprise compliance
Pipecat: - Focus: Open-source agent-framework - Integratie: Werkt met grote cloudproviders - Aanpassing: Zeer flexibele pipelineconstructie - Best voor: Ontwikkelaars die framework willen zonder platformlock-in
Selectiecriteria
| Factor | Vapi | LiveKit | Retell |
|---|---|---|---|
| Telefonie-integratie | Uitstekend | Goed (via SIP) | Uitstekend |
| Aanpassing | Hoog | Hoogst | Matig |
| Setupcomplexiteit | Laag | Matig | Laag |
| Self-hosting | Nee | Ja | Nee |
| Enterprise-functies | Goed | Groeiend | Uitstekend |
Architectuurpatronen
Cascading pipeline (ASR → LLM → TTS)
De traditionele architectuur verwerkt audio door discrete stadia:¹⁶
Audio → ASR → Tekst → LLM → Antwoordtekst → TTS → Audio
Voordelen: - Componentmodulariteit (eenvoudig providers wisselen) - Volwassen tooling en debugging - Voorspelbare kostenstructuur (~$0,15/minuut ongeacht conversatielengte) - Transparante tussenrepresentaties (tekst is inspecteerbaar)
Uitdagingen: - Latentieaccumulatie over stadia - Informatieverlies in tekstrepresentatie (prosodie, emotie) - Complexe streamingcoördinatie
Speech-to-speech (S2S)
End-to-end modellen verwerken audio direct naar audio:¹⁷
Audio → Multimodaal model → Audio
Voorbeelden: - GPT-4o voice mode - Moshi (Kyutai Labs) - Ultravox
Voordelen: - Behoudt prosodische informatie - Potentieel lagere latentie (enkel model) - Handelt overlappende spraak natuurlijk af
Uitdagingen: - Hogere kosten (~$0,30-1,50/minuut voor langere conversaties) - Beperkte aanpassing (kan geen componenten wisselen) - Debugging-opaciteit (geen tussenliggende tekst)
Hybride benaderingen
Productiesystemen combineren steeds vaker architecturen:
Cascading met S2S-fallback: Gebruik cascading voor standaardinteracties, schakel over naar S2S voor complexe overlappende dialoog.
Parallelle verwerking: Voer ASR en intentievoorspelling gelijktijdig uit. Begin antwoordgeneratie gebaseerd op voorspelde intentie terwijl ASR voltooit.
Speculatieve TTS: Genereer vooraf waarschijnlijke antwoordaudio. Speel gecachete audio onmiddellijk af als voorspelling klopt; val anders terug op synthese.
Voice AI-infrastructuur schalen
Capaciteitsplanning voor gelijktijdigheid
Voice AI schaalt anders dan tekstgebaseerde AI. Elke gelijktijdige oproep vereist dedicated verwerkingsresources over de hele pipeline.¹⁸
Capaciteit per GPU (self-hosted):
| GPU | ASR-streams | LLM gelijktijdig | TTS-streams |
|---|---|---|---|
| L4 | 50 | 20-30 | 100 |
| L40S | 100 | 50-75 | 200 |
| A100 | 100 | 75-100 | 250 |
| H100 | 200+ | 150-200 | 400+ |
Managed service-capaciteit: Cloudproviders handelen schaling automa
[Content afgekapt voor vertaling]