MB Voice
An AI that picks up the phone — in 11 Indian languages.
- Status
- In production · proprietary
- Role
- AI Engineer, Medikabazaar — built the full pipeline
- Stack
- Python + LiveKit · Sarvam Saaras (ASR) · Bulbul (TTS) · Gemini Live speech-to-speech · ChromaDB + Cohere Embed v4 on AWS Bedrock · FastAPI · Next.js · Docker
- Links
- Proprietary — no public links
A multilingual voice-calling platform that autonomously places and answers live phone calls — real speech in, real speech out. India doesn't speak one language, so the system detects what the caller actually speaks and switches to it, across eleven Indian languages. This is the project I'm proudest of.
The full pipeline, not a wrapper
Telephony and media over LiveKit. Speech recognition via Sarvam Saaras, synthesis via Sarvam Bulbul, and speech-to-speech through Gemini Live. Automatic language detection picks the caller's language mid-conversation and the agent follows.
Answers are grounded with RAG — ChromaDB with Cohere Embed v4 on AWS Bedrock — so the agent speaks from the catalog and policy corpus, not from vibes.
The call is only half the product
On top of the calls sits a GenAI analytics layer: call summarization, three-class sentiment, BANT hot/warm/cold lead scoring, and entity extraction — served from a FastAPI backend with a Next.js dashboard, all containerized.
Every call is metered. Per-call cost tracking runs through the same discipline as the rest of my stack: if nobody watches the meter, the meter runs.
Proprietary system — described with permission, no public links.
Language detection that can't lag
A caller who switches from Hindi to Marathi mid-sentence won't wait for a model to catch up. Detection has to happen fast enough that the reply comes back in the right language on the very next turn.
Latency budgets in speech
Voice is the least forgiving AI interface: every stage — ASR, retrieval, generation, TTS — eats into a silence budget measured in hundreds of milliseconds before the call feels broken.