<?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: Nilanchal Pradhan</title>
    <description>The latest articles on DEV Community by Nilanchal Pradhan (@nilanchal_pradhan_98).</description>
    <link>https://dev.to/nilanchal_pradhan_98</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%2F4078550%2Fdb9f6b6d-9c40-4873-a3d2-3b16d97a8493.png</url>
      <title>DEV Community: Nilanchal Pradhan</title>
      <link>https://dev.to/nilanchal_pradhan_98</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nilanchal_pradhan_98"/>
    <language>en</language>
    <item>
      <title>Building Bharat Finance Saathi: My 10-Day Voice AI Journey with Murf AI, LiveKit &amp; Gemini API !</title>
      <dc:creator>Nilanchal Pradhan</dc:creator>
      <pubDate>Sat, 15 Aug 2026 07:51:12 +0000</pubDate>
      <link>https://dev.to/nilanchal_pradhan_98/building-bharat-finance-saathi-my-10-day-voice-ai-journey-with-murf-ai-livekit-gemini-api--4c90</link>
      <guid>https://dev.to/nilanchal_pradhan_98/building-bharat-finance-saathi-my-10-day-voice-ai-journey-with-murf-ai-livekit-gemini-api--4c90</guid>
      <description>&lt;p&gt;Over the last 10 days, I built &lt;strong&gt;Bharat Finance Saathi&lt;/strong&gt;, a voice-first AI assistant designed to help Indian users understand financial and government loan schemes more easily.&lt;/p&gt;

&lt;p&gt;This project was part of &lt;strong&gt;10 Days of Voice Agents — VoiceForBharat Edition&lt;/strong&gt;, and it gave me the opportunity to go beyond building a simple chatbot. During the challenge, I worked with real-time voice communication, memory, tools, outbound calling, human escalation, analytics, and specialist agent handoffs.&lt;/p&gt;

&lt;p&gt;More importantly, I learned that building a voice agent is not just about making an AI talk. The real challenge is making the conversation &lt;strong&gt;useful, natural, reliable, and easy for people to interact with.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  1. The Problem I Wanted to Solve
&lt;/h2&gt;

&lt;p&gt;Many first-time entrepreneurs need financial support but may not know:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which government scheme is suitable for them&lt;/li&gt;
&lt;li&gt;Whether they are eligible&lt;/li&gt;
&lt;li&gt;What documents they need&lt;/li&gt;
&lt;li&gt;How much funding they may qualify for&lt;/li&gt;
&lt;li&gt;What they should do next&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Traditional websites and forms can be difficult to navigate, especially for users who are more comfortable speaking than typing.&lt;/p&gt;

&lt;p&gt;So I chose the &lt;strong&gt;Financial Services&lt;/strong&gt; track and built Bharat Finance Saathi as a voice-first assistant.&lt;/p&gt;

&lt;p&gt;The idea was simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Instead of making users search through complicated information, let them simply ask.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The agent can communicate naturally, understand the user's request, provide relevant guidance, and involve a human when necessary.&lt;/p&gt;




&lt;h1&gt;
  
  
  2. What Bharat Finance Saathi Does
&lt;/h1&gt;

&lt;p&gt;Bharat Finance Saathi is designed as a multilingual financial 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%2Fgcam8cepuqm0fjha2vha.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%2Fgcam8cepuqm0fjha2vha.png" alt=" " width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some of its main capabilities include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Natural voice conversations using &lt;strong&gt;Murf Falcon&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;English and code-mixed conversations&lt;/li&gt;
&lt;li&gt;MUDRA eligibility checking&lt;/li&gt;
&lt;li&gt;Loan document guidance&lt;/li&gt;
&lt;li&gt;User memory&lt;/li&gt;
&lt;li&gt;Web/data lookup&lt;/li&gt;
&lt;li&gt;Outbound calling&lt;/li&gt;
&lt;li&gt;Human-help escalation&lt;/li&gt;
&lt;li&gt;Call analytics&lt;/li&gt;
&lt;li&gt;Specialist agent handoff&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I also focused heavily on the &lt;strong&gt;user experience&lt;/strong&gt;. The frontend provides a clean interface where users can easily see the agent state and interact with it without needing technical knowledge.&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%2Fnc9rwyoqfjs6kalttxtt.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%2Fnc9rwyoqfjs6kalttxtt.png" alt=" " width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  3. How the System Works
&lt;/h1&gt;

&lt;p&gt;The basic flow of the voice agent looks like this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;User speaks → LiveKit → Gemini → Python tools → Murf Falcon → User&lt;/strong&gt;&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%2Fav22h7zs30yeohb05jee.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%2Fav22h7zs30yeohb05jee.png" alt=" " width="800" height="561"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The user speaks through the browser.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LiveKit Agents&lt;/strong&gt; handles the real-time audio communication between the user and the agent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Google Gemini&lt;/strong&gt; understands the conversation and generates the response.&lt;/p&gt;

&lt;p&gt;When the agent needs additional information or needs to perform an action, it can use Python function tools.&lt;/p&gt;

&lt;p&gt;Finally, &lt;strong&gt;Murf Falcon&lt;/strong&gt; converts the response into natural speech and delivers it back to the user.&lt;/p&gt;

&lt;p&gt;This combination allowed me to build the complete voice interaction instead of simply generating text responses.&lt;/p&gt;




&lt;h1&gt;
  
  
  4. The Technology Behind It
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Backend
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;LiveKit Agents&lt;/li&gt;
&lt;li&gt;Google Gemini API&lt;/li&gt;
&lt;li&gt;SQLite&lt;/li&gt;
&lt;li&gt;Murf Falcon&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Frontend
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Next.js&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;SQLite was used for lightweight persistence and memory-related functionality.&lt;/p&gt;

&lt;p&gt;The frontend was built with Next.js and TypeScript, while LiveKit Agents handled the real-time voice-agent workflow.&lt;/p&gt;




&lt;h1&gt;
  
  
  5. Important Features I Built
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Memory for Returning Users
&lt;/h2&gt;

&lt;p&gt;One of the early goals was to make the agent remember useful information.&lt;/p&gt;

&lt;p&gt;For example, if a user previously mentioned their business type or loan requirement, the agent could use that information later instead of asking the same questions repeatedly.&lt;/p&gt;

&lt;p&gt;This made the interaction feel more like a continuing conversation rather than a fresh chatbot session every time.&lt;/p&gt;




&lt;h2&gt;
  
  
  Financial Tools
&lt;/h2&gt;

&lt;p&gt;The agent can use Python function tools to perform specific tasks instead of relying only on the LLM.&lt;/p&gt;

&lt;p&gt;Some examples include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MUDRA eligibility checking&lt;/li&gt;
&lt;li&gt;Document checklist generation&lt;/li&gt;
&lt;li&gt;Web/data lookup&lt;/li&gt;
&lt;li&gt;User memory&lt;/li&gt;
&lt;li&gt;Human-help escalation&lt;/li&gt;
&lt;li&gt;Outbound calling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This separation between the LLM and actual tools helped make the system more practical and controlled.&lt;/p&gt;




&lt;h2&gt;
  
  
  Human Escalation
&lt;/h2&gt;

&lt;p&gt;Not every financial question should be handled entirely by an AI agent.&lt;/p&gt;

&lt;p&gt;I added a human-help escalation flow so that when the conversation requires human assistance, the system can create a request instead of forcing the AI to answer something outside its scope.&lt;/p&gt;

&lt;p&gt;This was an important lesson in designing AI systems:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A good AI agent should know when it needs help.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Call Analytics Dashboard
&lt;/h2&gt;

&lt;p&gt;For Day 8, I built a call analytics dashboard connected to actual call data.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Total Calls&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Successful Calls&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Failed Calls&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Success Rate&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&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%2F199rtr9bzh1c6bhr2qka.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%2F199rtr9bzh1c6bhr2qka.png" alt=" " width="799" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The dashboard uses real call outcomes rather than hardcoded numbers.&lt;/p&gt;

&lt;p&gt;I also made sure that sensitive information such as OTPs, PINs, account numbers, phone numbers, and full conversation transcripts is not exposed.&lt;/p&gt;




&lt;h2&gt;
  
  
  Specialist Agent Handoff
&lt;/h2&gt;

&lt;p&gt;For Day 9, I added a dedicated &lt;strong&gt;Government Scheme Specialist&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The main agent handles general financial assistance, while the specialist focuses on more detailed government-scheme questions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PMEGP&lt;/li&gt;
&lt;li&gt;Stand-Up India&lt;/li&gt;
&lt;li&gt;CGTMSE&lt;/li&gt;
&lt;li&gt;Scheme comparisons&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, if a user asks:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Which is better for my manufacturing business, PMEGP or MUDRA?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;the main agent can explain that it will connect the user to the Government Scheme Specialist.&lt;/p&gt;

&lt;p&gt;The specialist then continues the conversation without asking the user to repeat everything.&lt;/p&gt;

&lt;p&gt;This made the architecture more modular and showed me why one agent should not try to be an expert at everything.&lt;/p&gt;




&lt;h1&gt;
  
  
  6. Challenges I Faced
&lt;/h1&gt;

&lt;p&gt;The most valuable part of this challenge was probably the problems I encountered.&lt;/p&gt;

&lt;p&gt;Things did not always work on the first attempt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Outbound Calling Issues
&lt;/h2&gt;

&lt;p&gt;Around Day 7, I worked on the outbound calling functionality.&lt;/p&gt;

&lt;p&gt;The browser-based agent could work, but making the calling workflow reliable was more difficult. I had to deal with the interaction between the agent session, LiveKit, and the calling setup.&lt;/p&gt;

&lt;p&gt;Sometimes the call did not connect as expected, which taught me that real-time calling involves much more than simply triggering a function.&lt;/p&gt;




&lt;h2&gt;
  
  
  Linphone Connection Problems
&lt;/h2&gt;

&lt;p&gt;While testing the calling functionality, I also faced &lt;strong&gt;Linphone connection errors&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The agent could be running correctly while the phone-side connection was still failing.&lt;/p&gt;

&lt;p&gt;This forced me to debug the complete chain instead of assuming that the problem was in the agent code.&lt;/p&gt;

&lt;p&gt;It helped me understand the importance of checking:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent → LiveKit → SIP/Calling layer → Phone client&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Slow Agent Responses
&lt;/h2&gt;

&lt;p&gt;Another major challenge was response latency.&lt;/p&gt;

&lt;p&gt;Sometimes the user finished speaking and had to wait before the agent responded.&lt;/p&gt;

&lt;p&gt;In a normal chatbot, waiting a few seconds may not feel like a major problem. In a voice conversation, however, silence feels much more noticeable.&lt;/p&gt;

&lt;p&gt;This made me pay more attention to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prompt size&lt;/li&gt;
&lt;li&gt;Conversation flow&lt;/li&gt;
&lt;li&gt;API response time&lt;/li&gt;
&lt;li&gt;External service latency&lt;/li&gt;
&lt;li&gt;How much information the agent processes before speaking&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I learned that a voice agent needs to be designed for &lt;strong&gt;speed as well as accuracy&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Gemini API Timeouts and Rate Limits
&lt;/h2&gt;

&lt;p&gt;During testing, I also encountered Gemini API errors such as:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;504 Gateway Timeout&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;and&lt;/p&gt;

&lt;p&gt;&lt;code&gt;DEADLINE_EXCEEDED&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;At one point, I also reached the API rate limit.&lt;/p&gt;

&lt;p&gt;The important lesson was that an application can be correctly implemented and still fail because an external API is temporarily unavailable or a quota has been exceeded.&lt;/p&gt;

&lt;p&gt;Instead of immediately changing working code, I learned to inspect the logs first and identify whether the issue was coming from my application, the network, or the external API.&lt;/p&gt;




&lt;h2&gt;
  
  
  Managing Multiple Features
&lt;/h2&gt;

&lt;p&gt;Another challenge was combining everything without breaking existing functionality.&lt;/p&gt;

&lt;p&gt;Over the 10 days, the project grew to include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Memory&lt;/li&gt;
&lt;li&gt;Tools&lt;/li&gt;
&lt;li&gt;Eligibility checks&lt;/li&gt;
&lt;li&gt;Document guidance&lt;/li&gt;
&lt;li&gt;Outbound calls&lt;/li&gt;
&lt;li&gt;Human escalation&lt;/li&gt;
&lt;li&gt;Analytics&lt;/li&gt;
&lt;li&gt;Specialist handoffs&lt;/li&gt;
&lt;li&gt;Dark/light mode&lt;/li&gt;
&lt;li&gt;A user-friendly frontend&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Adding one feature was usually manageable.&lt;/p&gt;

&lt;p&gt;Making sure the new feature did not break an existing one was the harder part.&lt;/p&gt;

&lt;p&gt;This taught me to make small changes, test frequently, inspect logs, and preserve working functionality whenever possible.&lt;/p&gt;




&lt;h1&gt;
  
  
  7. How You Can Build Your Own Voice Agent
&lt;/h1&gt;

&lt;p&gt;A basic voice agent can be understood as four main components:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Speech-to-Text
&lt;/h3&gt;

&lt;p&gt;Converts what the user says into text.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. LLM
&lt;/h3&gt;

&lt;p&gt;Understands the request and decides what the agent should do.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Text-to-Speech
&lt;/h3&gt;

&lt;p&gt;Converts the AI response back into natural speech.&lt;/p&gt;

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

&lt;p&gt;Moves audio between the user and the agent with low latency.&lt;/p&gt;

&lt;p&gt;In my project, &lt;strong&gt;LiveKit Agents&lt;/strong&gt; handles the real-time voice workflow, &lt;strong&gt;Google Gemini&lt;/strong&gt; handles the LLM side, and &lt;strong&gt;Murf Falcon&lt;/strong&gt; provides the voice output.&lt;/p&gt;




&lt;h1&gt;
  
  
  8. Running the Project
&lt;/h1&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/Net-Ion/murf-livekit-voiceagent.git
&lt;span class="nb"&gt;cd &lt;/span&gt;murf-livekit-voiceagent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Install the backend dependencies and configure the required environment variables.&lt;/p&gt;

&lt;p&gt;Your API keys should be stored in environment variables, for example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GOOGLE_API_KEY=your_key
LIVEKIT_API_KEY=your_key
LIVEKIT_API_SECRET=your_secret
MURF_API_KEY=your_key
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Never commit your &lt;code&gt;.env&lt;/code&gt; file or API keys to GitHub.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Then start the backend using the project's existing LiveKit agent command.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;frontend
npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;you can run: uv run python src/agent.py dev&lt;br&gt;
Open the local Next.js application in your browser and start a voice session.&lt;/p&gt;

&lt;p&gt;You can test questions such as:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“What documents are required for a MUDRA loan?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;or:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Which government scheme is suitable for my business?”&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  9. What I Would Improve Next
&lt;/h1&gt;

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

&lt;p&gt;Some ideas for the next version include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Better Hindi and regional-language support&lt;/li&gt;
&lt;li&gt;Faster response times&lt;/li&gt;
&lt;li&gt;More robust calling and SIP handling&lt;/li&gt;
&lt;li&gt;Better interruption handling&lt;/li&gt;
&lt;li&gt;More advanced call analytics&lt;/li&gt;
&lt;li&gt;More government schemes&lt;/li&gt;
&lt;li&gt;Better error recovery&lt;/li&gt;
&lt;li&gt;More specialist agents&lt;/li&gt;
&lt;li&gt;WhatsApp integration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal would be to make Bharat Finance Saathi even more useful for people who prefer voice over traditional financial websites.&lt;/p&gt;




&lt;h1&gt;
  
  
  10. What I Learned
&lt;/h1&gt;

&lt;p&gt;This challenge changed the way I think about voice AI.&lt;/p&gt;

&lt;p&gt;At first, I thought the main challenge would be connecting an LLM with speech.&lt;/p&gt;

&lt;p&gt;But after building the project, I realized that the difficult part is everything around the model:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;conversation design, latency, memory, tools, networking, error handling, privacy, user experience, and reliability.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The problems I faced with calling, Linphone, API limits, and response delays were not just obstacles. They became some of the most useful learning experiences during the challenge.&lt;/p&gt;

&lt;p&gt;Bharat Finance Saathi started as an idea for a financial voice assistant and gradually became a complete voice AI application with memory, tools, human escalation, analytics, and specialist handoffs.&lt;/p&gt;




&lt;h1&gt;
  
  
  Final Thoughts
&lt;/h1&gt;

&lt;p&gt;Building Bharat Finance Saathi over these 10 days was a challenging but rewarding experience.&lt;/p&gt;

&lt;p&gt;I learned how to build a voice agent, but more importantly, I learned how to think about &lt;strong&gt;voice AI as a real product&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The experience showed me that a useful AI agent should not simply answer questions. It should understand the user, remember useful context, use the right tools, know its limitations, ask for human help when necessary, and provide a simple experience.&lt;/p&gt;

&lt;p&gt;I'm grateful to &lt;strong&gt;Murf AI&lt;/strong&gt; for creating the &lt;strong&gt;10 Days of Voice Agents — VoiceForBharat Edition&lt;/strong&gt; challenge and giving me the opportunity to build, test, break, debug, and improve a real voice AI application.&lt;/p&gt;

&lt;p&gt;🇮🇳 &lt;strong&gt;This is Bharat Finance Saathi.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Project
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/Net-Ion/murf-livekit-voiceagent" rel="noopener noreferrer"&gt;&lt;/a&gt;&lt;br&gt;
            : &lt;a href="https://github.com/Net-Ion/murf-livekit-voiceagent" rel="noopener noreferrer"&gt;https://github.com/Net-Ion/murf-livekit-voiceagent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Demo:&lt;/strong&gt;   : &lt;a href="https://murf-livekit-voiceagent.vercel.app/" rel="noopener noreferrer"&gt;https://murf-livekit-voiceagent.vercel.app/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>git</category>
      <category>fintech</category>
      <category>devchallenge</category>
    </item>
  </channel>
</rss>
