My journey through the 10 Days of Voice Agents – VoiceForBharat Edition challenge.
Introduction
Natural voice interaction can make technology more accessible during emergencies. In stressful situations, people often don't have time to type long messages or search through websites. They simply need clear guidance.
To solve this problem, I built AapdaMitra, an AI-powered Disaster Response Voice Assistant designed for India.
AapdaMitra helps users during emergencies such as floods, cyclones, earthquakes, fires, landslides, storms, and heatwaves through natural voice conversations.
The project was built as part of the 10 Days of Voice Agents – VoiceForBharat Edition challenge using Murf Falcon, LiveKit Agents, Google Gemini, and Deepgram
Why Voice?
During disasters:
People may panic.
They may not be able to type.
Internet connectivity may be poor.
Quick spoken guidance can save valuable time.
Voice is the most natural interface during emergencies.
Meet AapdaMitra
AapdaMitra is a conversational AI assistant that provides:
Disaster safety guidance
Weather information
User memory
Human escalation
Outbound voice calls
Specialist agent handoffs
Call analytics dashboard
The assistant always prioritizes user safety while avoiding hallucinations through carefully designed guardrails.
Technology Stack
Frontend
- Next.js
- React
- Tailwind CSS
- LiveKit Components
Backend
- Python
- LiveKit Agents
- FastAPI
AI Models
- Murf Falcon (Text-to-Speech)
- Google Gemini (LLM)
- Deepgram Nova-3 (Speech-to-Text)
Database
- SQLite
Other
- LiveKit Cloud
- Linphone (SIP Calling)
System Architecture
User Voice
│
▼
Deepgram Speech-to-Text
│
▼
Google Gemini
│
├── Memory Tool
├── Weather Tool
├── Escalation Tool
├── Analytics
└── Specialist Agent
│
▼
Murf Falcon Text-to-Speech
│
▼
LiveKit
│
▼
User
Biggest Challenges
This project was far from straightforward.
One major challenge was designing prompts that made Gemini collect all required user information before triggering tools like human escalation. Initially, the model skipped questions and called tools with incomplete data.
The solution involved redesigning the workflow so the assistant gathered missing information one question at a time and only invoked the tool after every required field had been collected.
Another challenge was integrating outbound SIP calling. Configuring LiveKit, Linphone, SIP trunks, and testing outbound calls required careful setup and troubleshooting.
I also encountered issues with participant handling, webhook integration, session management, and UI synchronization before arriving at a stable implementation.
Running the Project
Clone the repository.
git clone https://github.com/nayabshah/murf-livekit-starter.git
Install dependencies.
uv sync
Configure environment variables.
LIVEKIT_URL=
LIVEKIT_API_KEY=
LIVEKIT_API_SECRET=
GOOGLE_API_KEY=
DEEPGRAM_API_KEY=
MURF_API_KEY=
Run the backend.
uv run python src/agent.py dev
Start the frontend.
npm install
npm run dev
Open the browser and begin a voice conversation.
Repository
Final Thoughts
The 10 Days of Voice Agents – VoiceForBharat Edition challenge provided an excellent opportunity to explore real-time conversational AI.
Building AapdaMitra helped me understand how voice, AI, and real-time communication can work together to create technology that has the potential to make a meaningful impact during emergencies.
A big thank you to Murf AI for organizing this challenge and providing the opportunity to build with Murf Falcon, along with the powerful ecosystem around LiveKit.
Top comments (0)