Building a Multilingual Voice AI Pipeline with Bhashini for Public Welfare Surveys
A real-time speech pipeline on Bhashini covering 14 Indian languages, running speech recognition, translation, and synthesis end to end in under two seconds.
<2s
Pipeline latency
14
Languages supported
0
Human translators needed
WhatsApp messaging gets complicated at scale.
A public welfare program needed to run large-scale citizen surveys across several Indian states. The system it had only worked in English, which meant the majority of the people it was meant to reach could not take part without someone sitting beside them to interpret. Human interpreters were the existing workaround, and they did not scale. A pool of translators could handle a few hundred calls a day against a target measured in the hundreds of thousands, and every additional language meant recruiting for it separately. Survey quality suffered too: an interpreter paraphrasing a question in real time introduces variation that makes responses harder to compare across states. The commercial alternatives did not solve it either. Speech recognition and synthesis from the large cloud providers is strong in English and thin across Indian regional languages, particularly outside the handful with the largest speaker counts. Where coverage existed, per-minute pricing made a survey run at national scale financially unviable before it started.
Challenge 1
English-only surveys excluded the majority of the target population
Challenge 2
Human translators created bottlenecks and couldn't scale beyond a few hundred calls per day
Challenge 3
Commercial speech APIs lacked reliable support for most Indian regional languages
Challenge 4
Per-minute pricing from commercial providers made large-scale deployment financially unviable
Challenge 5
No unified pipeline existed that could handle speech recognition, translation, and synthesis in a single flow
Bhashini provides viable, production-ready speech AI for Indian languages, but the serviceId you route each language to matters as much as the pipeline you build around it.
Pre-generating static audio through a queue moves TTS cost and latency off the critical path entirely. Fixed content is synthesized once per language, not once per call.
Dynamic variable support is what makes pre-generation usable. Without it you either give up personalization or give up the latency win.
Error isolation across pipeline stages is critical when three models sit behind one HTTP call and only one of them failed.
The pipeline config call is a capability negotiation, not just authentication. It reports which models can serve a language pair, and it belongs in a cache rather than on every request.
Bhashini's published terms scope the free API to proof-of-concept use. Anything running in production, or charging end users, needs a conversation with the Bhashini team about a paid plan.
Built with technologies we trust.
Project Goals
The Outcome
We built a real-time speech pipeline on Bhashini, the Government of India's national language technology platform, that takes a citizen's spoken answer in their own language, transcribes it, translates it, and replies in synthesized speech, in under two seconds end to end. Fourteen Indian languages went live. No human translator sits anywhere in the loop. Static survey content is synthesized ahead of time and served from storage, so the audio a citizen hears has no synthesis latency at all, while personalized fragments are generated on demand and stitched in. The wider point is that production-grade multilingual voice for India does not require expensive commercial APIs or a compromise on which languages you support. Bhashini's models are open, publicly funded, and good enough to ship on, provided you route requests to the right model for each language and design for the failure modes of a three-stage pipeline that depends on an external service.
Conclusion & Impact
"This project demonstrated that building production-grade multilingual voice systems for India does not require expensive commercial APIs or a compromise on language coverage. Fourteen languages, under two seconds end to end, and no human translator anywhere in the loop, on a platform that is publicly funded and open to any registered integrator. What it costs you instead is care in the places the API does not cover: choosing the right model for each language, keeping language codes aligned across three chained stages, and designing for the failure of an external dependency you do not control."
Have a project in mind?
Let's discuss how we can help you build your next big thing.
Reach out and our team will be in touch.
Building systems that
hold up in production.
Bring up the problem others won't attempt.