<?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: RAGHUL P </title>
    <description>The latest articles on DEV Community by RAGHUL P  (@raghul_p23itr122_8708ad5).</description>
    <link>https://dev.to/raghul_p23itr122_8708ad5</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%2F4078542%2F02c4982f-d9a3-4560-bc8d-c66741f359aa.png</url>
      <title>DEV Community: RAGHUL P </title>
      <link>https://dev.to/raghul_p23itr122_8708ad5</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/raghul_p23itr122_8708ad5"/>
    <language>en</language>
    <item>
      <title>Building Samar: My 10-Day Voice AI Agent Journey with Murf Falcon</title>
      <dc:creator>RAGHUL P </dc:creator>
      <pubDate>Sat, 15 Aug 2026 06:22:37 +0000</pubDate>
      <link>https://dev.to/raghul_p23itr122_8708ad5/building-samar-my-10-day-voice-ai-agent-journey-with-murf-falcon-41no</link>
      <guid>https://dev.to/raghul_p23itr122_8708ad5/building-samar-my-10-day-voice-ai-agent-journey-with-murf-falcon-41no</guid>
      <description>&lt;h1&gt;
  
  
  Building Samar: My 10-Day Voice AI Agent Journey with Murf Falcon
&lt;/h1&gt;

&lt;p&gt;Over the past 10 days, I built &lt;strong&gt;Samar&lt;/strong&gt;, a multilingual AI voice agent for a Bharat Digital Bank use case as part of the &lt;strong&gt;10 Days of Voice Agents – VoiceForBharat Edition&lt;/strong&gt; challenge.&lt;/p&gt;

&lt;p&gt;The project started as a simple voice assistant and gradually evolved into a more complete Voice AI system capable of remembering users, using real-time tools, making outbound calls, escalating sensitive situations to humans, analyzing calls, and handing specialized conversations to another AI agent.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎯 The Problem
&lt;/h2&gt;

&lt;p&gt;Banking can sometimes be difficult to navigate, especially when users need quick information or assistance without going through multiple screens and menus.&lt;/p&gt;

&lt;p&gt;I wanted to build a voice-first banking assistant that could provide natural conversations while also maintaining security and knowing when it should involve a human.&lt;/p&gt;

&lt;p&gt;That's where Samar comes in.&lt;/p&gt;

&lt;h2&gt;
  
  
  🤖 What is Samar?
&lt;/h2&gt;

&lt;p&gt;Samar is a multilingual banking voice agent designed to help users with general banking-related queries.&lt;/p&gt;

&lt;p&gt;It can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Answer general banking questions&lt;/li&gt;
&lt;li&gt;Provide financial information&lt;/li&gt;
&lt;li&gt;Remember returning users with consent&lt;/li&gt;
&lt;li&gt;Fetch real-time information using tools&lt;/li&gt;
&lt;li&gt;Find nearby branches&lt;/li&gt;
&lt;li&gt;Provide exchange-rate information&lt;/li&gt;
&lt;li&gt;Make outbound reminder calls&lt;/li&gt;
&lt;li&gt;Escalate sensitive issues to human support&lt;/li&gt;
&lt;li&gt;Track call analytics&lt;/li&gt;
&lt;li&gt;Hand specialized conversations to a specialist agent&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The voice experience is powered by &lt;strong&gt;Murf Falcon&lt;/strong&gt;, the fastest TTS API used in this challenge.&lt;/p&gt;

&lt;h2&gt;
  
  
  🏗️ How the System Works
&lt;/h2&gt;

&lt;p&gt;At a high level, the voice interaction follows this flow:&lt;/p&gt;

&lt;p&gt;User Speech&lt;br&gt;
↓&lt;br&gt;
Speech-to-Text&lt;br&gt;
↓&lt;br&gt;
LLM / Agent Logic&lt;br&gt;
↓&lt;br&gt;
Memory or Tool Calling&lt;br&gt;
↓&lt;br&gt;
Text-to-Speech&lt;br&gt;
↓&lt;br&gt;
User hears the response&lt;/p&gt;

&lt;p&gt;The system uses real-time voice communication through LiveKit, an LLM for reasoning and conversation, speech recognition for understanding the user, and Murf Falcon for natural voice generation.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Important Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Voice AI with Guardrails
&lt;/h3&gt;

&lt;p&gt;Samar has a clear banking role and follows safety rules.&lt;/p&gt;

&lt;p&gt;It does not ask users for sensitive information such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PIN&lt;/li&gt;
&lt;li&gt;OTP&lt;/li&gt;
&lt;li&gt;CVV&lt;/li&gt;
&lt;li&gt;Passwords&lt;/li&gt;
&lt;li&gt;Full account credentials&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For sensitive requests, it knows its limits instead of pretending it can access protected information.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Multilingual Conversations
&lt;/h3&gt;

&lt;p&gt;Samar supports multilingual conversations and follows native-script requirements.&lt;/p&gt;

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

&lt;p&gt;Hindi → Devanagari&lt;/p&gt;

&lt;p&gt;English → Latin script&lt;/p&gt;

&lt;p&gt;This helped improve the naturalness and correctness of multilingual responses.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Persistent Memory
&lt;/h3&gt;

&lt;p&gt;Samar can remember returning users after receiving explicit permission.&lt;/p&gt;

&lt;p&gt;The system stores useful profile information and retrieves it during future conversations.&lt;/p&gt;

&lt;p&gt;This allows the experience to become more personalized instead of starting from zero every time.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Real-Time Tools
&lt;/h3&gt;

&lt;p&gt;I added tools that allow Samar to access useful information instead of relying only on the LLM.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Exchange-rate lookup&lt;/li&gt;
&lt;li&gt;Nearby branch lookup&lt;/li&gt;
&lt;li&gt;Banking-related information&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The agent decides when a tool is needed and presents the result naturally to the user.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Outbound Calls
&lt;/h3&gt;

&lt;p&gt;Samar can initiate outbound calls instead of only waiting for users to contact the agent.&lt;/p&gt;

&lt;p&gt;One use case is a banking reminder where Samar proactively contacts the user with an important update.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Human Escalation
&lt;/h3&gt;

&lt;p&gt;A good AI agent should know when it cannot safely handle something.&lt;/p&gt;

&lt;p&gt;For example, if a user reports potential fraud, Samar can ask for permission to create a support request and escalate the issue to human assistance.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Call Analytics
&lt;/h3&gt;

&lt;p&gt;I built a Call Analytics Dashboard to understand how the voice agent is performing.&lt;/p&gt;

&lt;p&gt;The dashboard can provide insights such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Total calls&lt;/li&gt;
&lt;li&gt;Completed calls&lt;/li&gt;
&lt;li&gt;Human escalations&lt;/li&gt;
&lt;li&gt;Average call duration&lt;/li&gt;
&lt;li&gt;Tool usage&lt;/li&gt;
&lt;li&gt;Call trends&lt;/li&gt;
&lt;li&gt;Language distribution&lt;/li&gt;
&lt;li&gt;Recent escalations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes it easier to understand user interactions and improve the agent.&lt;/p&gt;

&lt;h3&gt;
  
  
  8. Specialist Agent Handoff
&lt;/h3&gt;

&lt;p&gt;Finally, Samar does not have to be an expert in everything.&lt;/p&gt;

&lt;p&gt;For specialized questions, the main agent can hand the conversation to a specialist agent.&lt;/p&gt;

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

&lt;p&gt;User → Samar → Loan Specialist&lt;/p&gt;

&lt;p&gt;The specialist can then continue the conversation with more focused knowledge.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧩 A Major Challenge I Faced
&lt;/h2&gt;

&lt;p&gt;One of the challenges I faced was multilingual voice handling.&lt;/p&gt;

&lt;p&gt;The agent could understand Hindi, but the generated voice could sound like an English-accented response when the language configuration was not handled correctly.&lt;/p&gt;

&lt;p&gt;I addressed this by configuring multilingual speech recognition and dynamic voice/locale handling, while also enforcing the correct native script for each language.&lt;/p&gt;

&lt;p&gt;This taught me that multilingual Voice AI is not just about understanding different languages. Speech recognition, language detection, script generation, and voice synthesis all need to work together.&lt;/p&gt;

&lt;h2&gt;
  
  
  🛠️ How to Run the Project
&lt;/h2&gt;

&lt;p&gt;Clone the repository:&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
bash
git clone YOUR_GITHUB_REPOSITORY_URL
Backend
cd backend
uv sync
uv run python src/agent.py dev
Frontend

Open another terminal:

cd frontend
pnpm install
pnpm dev

Then open:

http://localhost:3000

Connect to Samar and start a conversation.

🔐 Environment Variables

Never publish API keys directly in your source code or GitHub repository.

Store credentials in environment variables such as:

MURF_API_KEY=your_key
DEEPGRAM_API_KEY=your_key
GOOGLE_API_KEY=your_key
LIVEKIT_API_KEY=your_key
LIVEKIT_API_SECRET=your_secret
LIVEKIT_URL=your_url
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

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