ProjectBuild an AI Voice Receptionist: the explanation · Module 9: Speech to text with Whisper · part 11 of 23
Part 11 · Module 9: Speech to text with Whisper

Module 9: Speech to text with Whisper

20 min read·
About 35 minutes · Needs: Module 8 (how the VAD cuts a turn), Module 3 (choosing models and infrastructure) · Code: backend/app/voice/stt.py, backend/app/voice/session.py, backend/app/voice/audio.py

Where this fits

WHERE THIS FITS The Medilane voice receptionist this module CLIENT React API LAYER FastAPI SAFETY SPEECH IN BRAIN LangGraph SPEECH OUT KNOWLEDGE AND DATA pgvector OPERATIONS Langfuse, Prometheus Caller app browser mic Staff app desk and admin REST API staff, sessions Voice socket audio both ways Auth + RBAC staff roles, voice tokens Guardrails emergency, PII VAD Silero, turns Whisper speech to text Language en, hi, Hinglish Agent tools, confirm Open models Groq: gpt-oss, Qwen Kokoro TTS en + hi voices Retrieval multilingual Ingestion clinic documents PostgreSQL clinic, calls, vectors Redis events, limits Front desk live events, hand-offs Observability traces, metrics Evaluation WER, safety, latency
Whisper (blue: this module) takes each finished turn from the VAD and turns it into text and a language for the agent.

The VAD hands over one finished turn of caller audio at a time. Before the agent can do anything, those sounds have to become words. This module sends each turn to Whisper large-v3 on Groq and gets back the text and the language the caller spoke. Everything after it, from language detection to booking, works on that text, so a misheard time here becomes a wrong appointment later.

The rest of this project is yours to keep

This project is bought on its own, once, and stays readable afterwards, including the parts added to it later.

Or open everything with a plan