<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Arpit Chauhan</title>
    <description>The latest articles on DEV Community by Arpit Chauhan (@arpit005c).</description>
    <link>https://dev.to/arpit005c</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4079291%2F3e2c7e9f-c4c3-4b1c-aa88-d5356f8cfe0c.png</url>
      <title>DEV Community: Arpit Chauhan</title>
      <link>https://dev.to/arpit005c</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/arpit005c"/>
    <language>en</language>
    <item>
      <title>Building HealthSaathi: A Voice Health Agent with Murf Falcon &amp; LiveKit</title>
      <dc:creator>Arpit Chauhan</dc:creator>
      <pubDate>Sat, 15 Aug 2026 17:56:12 +0000</pubDate>
      <link>https://dev.to/arpit005c/building-healthsaathi-a-voice-health-agent-with-murf-falcon-livekit-52em</link>
      <guid>https://dev.to/arpit005c/building-healthsaathi-a-voice-health-agent-with-murf-falcon-livekit-52em</guid>
      <description>&lt;p&gt;Building HealthSaathi AI: A Multilingual Voice Health Agent with Murf Falcon &amp;amp; LiveKit&lt;/p&gt;

&lt;p&gt;10 Days of Voice Agents — VoiceForBharat Edition&lt;/p&gt;

&lt;p&gt;What if people could simply speak naturally with an AI health assistant instead of typing their symptoms into a chatbot?&lt;/p&gt;

&lt;p&gt;During the 10 Days of Voice Agents — VoiceForBharat Edition, I built HealthSaathi AI, a real-time voice health assistant designed around natural conversations in English, Hindi, and Hinglish.&lt;/p&gt;

&lt;p&gt;The project combines real-time voice AI, multilingual interaction, safety guardrails, human escalation, and analytics into one application.&lt;/p&gt;

&lt;p&gt;🩺 What is HealthSaathi AI?&lt;/p&gt;

&lt;p&gt;HealthSaathi AI is a voice-first health assistant that allows users to speak about:&lt;/p&gt;

&lt;p&gt;Symptoms&lt;br&gt;
General health questions&lt;br&gt;
Wellness concerns&lt;br&gt;
Follow-up needs&lt;br&gt;
Other non-emergency health-related questions&lt;/p&gt;

&lt;p&gt;Instead of forcing users to type, the system allows them to talk naturally with an AI voice agent.&lt;/p&gt;

&lt;p&gt;The goal was not to build an AI doctor.&lt;/p&gt;

&lt;p&gt;The goal was to explore how voice AI can make health-related digital interactions more accessible and natural, while keeping appropriate safety boundaries and providing a path to human assistance when needed.&lt;/p&gt;

&lt;p&gt;⚠️ HealthSaathi is a technical demonstration, not a replacement for professional medical advice or emergency medical services.&lt;/p&gt;

&lt;p&gt;🎙️ Why Voice?&lt;/p&gt;

&lt;p&gt;Typing isn't always the most natural way to explain a problem.&lt;/p&gt;

&lt;p&gt;Voice makes it possible to communicate using the same interaction pattern people already use every day: speaking.&lt;/p&gt;

&lt;p&gt;This becomes particularly interesting when supporting:&lt;/p&gt;

&lt;p&gt;Hindi-speaking users&lt;br&gt;
Hinglish conversations&lt;br&gt;
Users who are more comfortable speaking than typing&lt;br&gt;
Users who want a conversational interface&lt;br&gt;
Voice-based follow-ups and assistance&lt;/p&gt;

&lt;p&gt;For this project, I wanted the experience to feel less like filling out a form and more like having a conversation.&lt;/p&gt;

&lt;p&gt;🖥️ The HealthSaathi Interface&lt;/p&gt;

&lt;p&gt;The application starts with a simple voice-first interface.&lt;/p&gt;

&lt;p&gt;Users can immediately see that the agent supports English, Hindi, and Hinglish, then start a consultation using the microphone.&lt;/p&gt;

&lt;p&gt;📸 Screenshot 1 — HealthSaathi Voice Assistant&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr7r0w1ta6orrp5ajoxry.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr7r0w1ta6orrp5ajoxry.png" alt=" " width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The interface also provides access to:&lt;/p&gt;

&lt;p&gt;Analytics Dashboard&lt;br&gt;
Human Help&lt;br&gt;
Voice consultation&lt;br&gt;
Privacy/security indicators&lt;/p&gt;

&lt;p&gt;The focus was intentionally kept simple: start a conversation without unnecessary complexity.&lt;/p&gt;

&lt;p&gt;🏗️ How the Voice Agent Works&lt;/p&gt;

&lt;p&gt;At a high level, the architecture looks like this:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;             User
               │
               │ Voice
               ▼
      ┌─────────────────┐
      │    LiveKit      │
      │ Real-time Audio │
      └────────┬────────┘
               │
               ▼
      ┌─────────────────┐
      │ Speech-to-Text  │
      └────────┬────────┘
               │
               ▼
      ┌─────────────────┐
      │   LLM / Agent   │
      │                 │
      │ Guardrails      │
      │ Memory          │
      │ Tools           │
      │ Escalation      │
      └────────┬────────┘
               │
               ▼
      ┌─────────────────┐
      │   Murf Falcon   │
      │  Text-to-Speech │
      └────────┬────────┘
               │
               ▼
          User hears
           response
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The core idea is a continuous pipeline:&lt;/p&gt;

&lt;p&gt;Speech → STT → Agent → LLM reasoning/tools → Murf Falcon → Speech&lt;/p&gt;

&lt;p&gt;LiveKit handles the real-time communication layer while Murf Falcon provides the voice output.&lt;/p&gt;

&lt;p&gt;⚡ Murf Falcon for Voice Generation&lt;/p&gt;

&lt;p&gt;One of the important parts of the project was using Murf Falcon for text-to-speech.&lt;/p&gt;

&lt;p&gt;The goal was to make the assistant's responses feel natural enough for a real conversation rather than sounding like traditional robotic TTS.&lt;/p&gt;

&lt;p&gt;The project uses the voice agent stack to connect:&lt;/p&gt;

&lt;p&gt;Real-time audio&lt;br&gt;
Agent logic&lt;br&gt;
LLM responses&lt;br&gt;
Murf Falcon TTS&lt;/p&gt;

&lt;p&gt;This made voice the primary interaction method instead of simply adding voice as an extra feature.&lt;/p&gt;

&lt;p&gt;🌐 English, Hindi &amp;amp; Hinglish&lt;/p&gt;

&lt;p&gt;India has a huge variety of languages and communication styles.&lt;/p&gt;

&lt;p&gt;For HealthSaathi, I specifically designed the experience around:&lt;/p&gt;

&lt;p&gt;English&lt;/p&gt;

&lt;p&gt;Hindi&lt;/p&gt;

&lt;p&gt;Hinglish&lt;/p&gt;

&lt;p&gt;Code-mixed conversations are particularly interesting because users don't always switch languages in a clean way.&lt;/p&gt;

&lt;p&gt;A real conversation can naturally move between Hindi and English.&lt;/p&gt;

&lt;p&gt;That makes multilingual voice agents an interesting engineering challenge.&lt;/p&gt;

&lt;p&gt;🛡️ Safety Guardrails&lt;/p&gt;

&lt;p&gt;Healthcare is a high-stakes domain, so simply making an AI that can answer questions isn't enough.&lt;/p&gt;

&lt;p&gt;HealthSaathi was designed with safety boundaries around the conversation.&lt;/p&gt;

&lt;p&gt;The agent should avoid behaving like a doctor and should recognize situations where continuing a normal AI conversation isn't appropriate.&lt;/p&gt;

&lt;p&gt;One of the important design principles was:&lt;/p&gt;

&lt;p&gt;AI should assist the user, not replace professional medical care.&lt;/p&gt;

&lt;p&gt;For situations requiring human attention, the system can create an escalation request.&lt;/p&gt;

&lt;p&gt;👨‍⚕️ Human Help &amp;amp; Escalation&lt;/p&gt;

&lt;p&gt;This became one of the most important features of the project.&lt;/p&gt;

&lt;p&gt;Instead of expecting the AI to handle everything, HealthSaathi provides a Human Help Dashboard.&lt;/p&gt;

&lt;p&gt;The dashboard can display escalation requests with information such as:&lt;/p&gt;

&lt;p&gt;Reference ID&lt;br&gt;
Urgency&lt;br&gt;
Status&lt;br&gt;
Language&lt;br&gt;
Follow-up method&lt;br&gt;
Summary&lt;br&gt;
Creation timestamp&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;{&lt;br&gt;
  "reference_id": "HS-DEMO-1012",&lt;br&gt;
  "urgency": "EMERGENCY",&lt;br&gt;
  "language": "Hindi",&lt;br&gt;
  "follow_up_method": "call",&lt;br&gt;
  "status": "OPEN"&lt;br&gt;
}&lt;br&gt;
📸 Screenshot 2 — Human Help Dashboard&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz6kgbuvyi0qjh5xs2dzp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz6kgbuvyi0qjh5xs2dzp.png" alt=" " width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This reflects an important principle when building AI systems:&lt;/p&gt;

&lt;p&gt;The best AI system isn't necessarily the one that handles everything itself.&lt;/p&gt;

&lt;p&gt;Sometimes the correct behavior is to hand the conversation to a human.&lt;/p&gt;

&lt;p&gt;📊 Call Analytics Dashboard&lt;/p&gt;

&lt;p&gt;I also built an analytics dashboard to understand how the voice agent performs.&lt;/p&gt;

&lt;p&gt;The dashboard tracks information such as:&lt;/p&gt;

&lt;p&gt;Total calls&lt;br&gt;
Successful calls&lt;br&gt;
Failed calls&lt;br&gt;
Success rate&lt;br&gt;
Recent consultations&lt;br&gt;
Call duration&lt;br&gt;
Channel&lt;br&gt;
Call outcome&lt;/p&gt;

&lt;p&gt;During testing, the dashboard showed:&lt;/p&gt;

&lt;p&gt;Total Calls       14&lt;br&gt;
Successful Calls  13&lt;br&gt;
Failed Calls       1&lt;br&gt;
Success Rate     92.9%&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fykh401cw79vyr7zzf1hb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fykh401cw79vyr7zzf1hb.png" alt=" " width="800" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🔄 The Interesting Part: Connecting Everything&lt;/p&gt;

&lt;p&gt;Building an individual voice component isn't particularly useful by itself.&lt;/p&gt;

&lt;p&gt;The real challenge was connecting the different pieces into one workflow:&lt;/p&gt;

&lt;p&gt;User speaks&lt;br&gt;
     ↓&lt;br&gt;
Real-time audio transport&lt;br&gt;
     ↓&lt;br&gt;
Speech recognition&lt;br&gt;
     ↓&lt;br&gt;
Voice agent&lt;br&gt;
     ↓&lt;br&gt;
Safety / guardrails&lt;br&gt;
     ↓&lt;br&gt;
LLM response&lt;br&gt;
     ↓&lt;br&gt;
Murf Falcon&lt;br&gt;
     ↓&lt;br&gt;
Audio response&lt;br&gt;
     ↓&lt;br&gt;
Analytics&lt;br&gt;
     ↓&lt;br&gt;
Human escalation when required&lt;/p&gt;

&lt;p&gt;Each component has its own failure modes.&lt;/p&gt;

&lt;p&gt;The challenge was making them work together while keeping the user experience simple.&lt;/p&gt;

&lt;p&gt;🧩 Challenges I Faced&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Real-time voice is different from a normal chatbot&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A text chatbot can tolerate a small delay.&lt;/p&gt;

&lt;p&gt;Voice cannot.&lt;/p&gt;

&lt;p&gt;When someone is talking to an AI, even small delays can make the conversation feel unnatural.&lt;/p&gt;

&lt;p&gt;This meant paying attention to:&lt;/p&gt;

&lt;p&gt;Audio streaming&lt;br&gt;
Response latency&lt;br&gt;
TTS generation&lt;br&gt;
Agent state&lt;br&gt;
Connection handling&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Multilingual conversations&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Supporting English is relatively straightforward.&lt;/p&gt;

&lt;p&gt;But real users don't necessarily speak in one language.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;"Doctor, mujhe since yesterday headache ho raha hai."&lt;/p&gt;

&lt;p&gt;This kind of Hinglish interaction makes voice-agent behavior more interesting because the system has to understand the meaning rather than simply matching a language.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Human escalation&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Another challenge was deciding what information should be passed to the human side.&lt;/p&gt;

&lt;p&gt;The escalation record needs enough context to be useful without exposing unnecessary private information.&lt;/p&gt;

&lt;p&gt;This resulted in a structured escalation model containing fields such as:&lt;/p&gt;

&lt;p&gt;{&lt;br&gt;
  "reference_id": "HS-DEMO-1012",&lt;br&gt;
  "urgency": "EMERGENCY",&lt;br&gt;
  "language": "Hindi",&lt;br&gt;
  "follow_up_method": "call",&lt;br&gt;
  "status": "OPEN"&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;For a real deployment, this would require significantly stronger privacy, authentication, auditing, access control, and clinical workflows.&lt;/p&gt;

&lt;p&gt;🛠️ Technology Stack&lt;/p&gt;

&lt;p&gt;The project is built around:&lt;/p&gt;

&lt;p&gt;Python — Voice agent/backend logic&lt;br&gt;
LiveKit — Real-time voice communication&lt;br&gt;
Murf Falcon — Text-to-speech&lt;br&gt;
LLM — Conversation intelligence&lt;br&gt;
Next.js / React — Frontend&lt;br&gt;
TypeScript — Frontend development&lt;br&gt;
Tailwind CSS — UI styling&lt;br&gt;
JSON-based storage — Development/demo data&lt;/p&gt;

&lt;p&gt;The architecture is intentionally modular so individual components can evolve independently.&lt;/p&gt;

&lt;p&gt;🚀 How to Run the Project&lt;/p&gt;

&lt;p&gt;If you want to experiment with the project, the general workflow is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Clone the repository
git clone YOUR_GITHUB_REPOSITORY_URL
cd your-project&lt;/li&gt;
&lt;li&gt;Install dependencies&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For the frontend:&lt;/p&gt;

&lt;p&gt;cd frontend&lt;br&gt;
pnpm install&lt;/p&gt;

&lt;p&gt;For the Python agent, install the project's Python dependencies according to the repository instructions.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Configure environment variables&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Create the appropriate .env files locally.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;MURF_API_KEY=your_key_here&lt;br&gt;
LIVEKIT_API_KEY=your_key_here&lt;br&gt;
LIVEKIT_API_SECRET=your_secret_here&lt;br&gt;
LIVEKIT_URL=your_livekit_url&lt;/p&gt;

&lt;p&gt;Never commit these values to GitHub.&lt;/p&gt;

&lt;p&gt;Use .env.local, .env, or your deployment platform's secret manager and keep them in .gitignore.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Start the frontend
cd frontend
pnpm dev&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Then open:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://localhost:3000" rel="noopener noreferrer"&gt;http://localhost:3000&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Start the voice agent&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Run the Python LiveKit agent using the commands defined in the repository.&lt;/p&gt;

&lt;p&gt;Once the agent and frontend are running, start a consultation and test the conversation.&lt;/p&gt;

&lt;p&gt;🔐 Security &amp;amp; Privacy&lt;/p&gt;

&lt;p&gt;Because this project deals with health-related conversations, security is especially important.&lt;/p&gt;

&lt;p&gt;For a public repository:&lt;/p&gt;

&lt;p&gt;Never commit API keys&lt;br&gt;
Never publish real phone numbers&lt;br&gt;
Never publish real caller IDs&lt;br&gt;
Never publish private conversation transcripts&lt;br&gt;
Never publish real patient information&lt;br&gt;
Use .env files for secrets&lt;br&gt;
Use demo/anonymized data for screenshots&lt;/p&gt;

&lt;p&gt;The screenshots and demo records shown in this article use demo-style data for presentation purposes.&lt;/p&gt;

&lt;p&gt;🔮 What I Would Improve Next&lt;/p&gt;

&lt;p&gt;There is still a lot I would like to add.&lt;/p&gt;

&lt;p&gt;Some of the next improvements would be:&lt;/p&gt;

&lt;p&gt;More Indian language support&lt;br&gt;
Better multilingual/code-mixed detection&lt;br&gt;
Persistent user memory&lt;br&gt;
More advanced agent handoffs&lt;br&gt;
Production-grade authentication&lt;br&gt;
Role-based access for human operators&lt;br&gt;
Secure database storage&lt;br&gt;
Better observability and tracing&lt;br&gt;
Real outbound calling workflows&lt;br&gt;
More detailed analytics&lt;br&gt;
Production deployment&lt;br&gt;
Stronger privacy and security controls&lt;/p&gt;

&lt;p&gt;The biggest next step would be moving from a development/demo architecture toward a properly secured production architecture.&lt;/p&gt;

&lt;p&gt;🎯 What I Learned&lt;/p&gt;

&lt;p&gt;The biggest lesson from this challenge wasn't simply how to connect an LLM to a TTS API.&lt;/p&gt;

&lt;p&gt;It was learning that a useful voice agent requires much more:&lt;/p&gt;

&lt;p&gt;Voice + intelligence + tools + state + safety + observability + human fallback&lt;/p&gt;

&lt;p&gt;A voice agent becomes much more interesting when it can do something useful beyond simply answering questions.&lt;/p&gt;

&lt;p&gt;🙌 10 Days of Voice Agents — VoiceForBharat Edition&lt;/p&gt;

&lt;p&gt;This project was built as part of 10 Days of Voice Agents — VoiceForBharat Edition.&lt;/p&gt;

&lt;p&gt;Over the challenge, I explored how to build voice agents that can:&lt;/p&gt;

&lt;p&gt;Have natural conversations&lt;br&gt;
Use Indian voices&lt;br&gt;
Work with multilingual interactions&lt;br&gt;
Follow safety guardrails&lt;br&gt;
Remember context&lt;br&gt;
Use tools&lt;br&gt;
Handle calls&lt;br&gt;
Escalate to humans&lt;br&gt;
Track outcomes&lt;br&gt;
Hand conversations to specialized agents&lt;/p&gt;

&lt;p&gt;Building HealthSaathi helped me understand how all of these pieces fit together into a real application.&lt;/p&gt;

&lt;p&gt;🔗 Project &amp;amp; Resources&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/arpit005c/HealthSaathi" rel="noopener noreferrer"&gt;https://github.com/arpit005c/HealthSaathi&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Murf Falcon: Murf AI&lt;/p&gt;

&lt;p&gt;LiveKit: LiveKit&lt;/p&gt;

&lt;p&gt;Voice AI Quickstart: LiveKit Voice AI&lt;/p&gt;

&lt;p&gt;🚀 Final Thoughts&lt;/p&gt;

&lt;p&gt;Voice AI is moving beyond simple voice assistants.&lt;/p&gt;

&lt;p&gt;The interesting opportunity is building systems that can listen, understand, act, measure, and know when to involve a human.&lt;/p&gt;

&lt;p&gt;HealthSaathi is my exploration of that idea.&lt;/p&gt;

&lt;p&gt;And this 10-day challenge gave me the opportunity to go from a basic voice agent to a much more complete system.&lt;/p&gt;

&lt;p&gt;Built with Python, LiveKit, Murf Falcon, React, and a lot of experimentation.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>voiceai</category>
      <category>python</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
