From “Make It Talk” to “Make It Think”: My 10-Day Voice AI Journey

From “Make It Talk” to “Make It Think”: My 10-Day Voice AI JourneyJhansi Lakshmi Sambhana

Building my first AI voice agent through the VoiceForBharat challenge — from real-time conversations...

Building my first AI voice agent through the VoiceForBharat challenge — from real-time conversations to memory, tools, specialist handoffs, human support, and analytics.

Ten days ago, I started building my first AI voice agent.

I had never worked with voice agents or agentic AI before. I had worked with AI/ML, but building a complete system where speech, an LLM, tools, memory, real-time communication, and multiple agents work together was completely new to me.

I started with one simple question:

“How do I make an AI talk?”

I ended with a much bigger one:

“How do I make an AI system handle a real conversation responsibly?”

That journey became ExpenseMate.

💰 The Problem

Expense tracking is usually a form-filling task.

I wanted to make it conversational.

A user can simply say:

“I spent ₹500 on groceries today.”

ExpenseMate can understand the request, record the expense, and answer questions about spending.

It is designed for users who want a faster and more natural way to manage everyday expenses, especially when typing or navigating an app is inconvenient.

For the challenge, I chose the expense-management and payment-support use case, building ExpenseMate as a voice-first financial assistant with a human-support path for payment-related issues.

🎙️ From Voice to a Complete Agent

The core flow looks like:

User Speech → STT → LLM → Memory & Tools → Murf Falcon TTS → LiveKit → User

  • Speech-to-Text (STT) converts the user's speech into text.
  • Gemini understands the request, reasons about the next action, and decides when tools are needed.
  • Memory allows approved user information to be used in returning conversations.
  • Tools connect the agent to real application data and actions.
  • Murf Falcon converts the response back into natural speech.
  • LiveKit provides the real-time communication layer.

The result isn't just a chatbot that speaks.

It's an agent that can understand, act, remember, and respond.

🧩 What I Built

During the challenge, ExpenseMate grew into a complete voice-agent workflow:

🎙️ Real-time voice conversations
🧠 Consent-based user memory
💰 Expense recording and spending summaries
🛠️ Tool-based actions
🌏 English, Hindi, Telugu, and code-mixed conversations
🛡️ Financial safety guardrails
📊 Custom Call Analytics Dashboard
📞 Outbound SIP calling
🤝 Human escalation
💳 Payment Support Specialist
🔄 Specialist-agent handoff
👩‍💻 Human Support Center
🎨 Redesigned frontend UI
🧪 Routing tests

The frontend also reflects the agent's state, including ready, connecting, active conversation, and completed states.

🤝 When the AI Knows It Needs Help

One of my favourite parts of ExpenseMate is the payment-support flow.

If a user says:

“My refund hasn't arrived.”

the main agent doesn't pretend it can solve everything.

Instead:

Main Agent → Payment Support Specialist → Support Case → Human Support

The specialist continues the conversation, collects the necessary information, and creates a support case.

I then went beyond the basic handoff requirement and built a Human Support Center where a support agent can move the case through:

🟡 Pending Review → 🔵 In Review → 🟢 Resolved

This turned a simple specialist handoff into a complete human-in-the-loop workflow.

📊 Making the Agent Measurable

I also built a custom Call Analytics Dashboard to understand what happens beyond the conversation.

It provides visibility into:

Total calls
Successful and failed calls
Call outcomes
Recent call activity

I also integrated outbound SIP calling, allowing the voice agent to participate in real telephonic conversations and track their outcomes.

Because getting an agent to work once isn't enough.

You need to know how it performs.

The Challenge I Didn't Expect

One of my biggest challenges was Telugu voice interaction.

When I spoke Telugu quickly, some words weren't recognized correctly and the response could become slow or inaccurate.

I tested different speaking speeds, voice/recognition settings, and prompt adjustments, then repeatedly tested the conversation until the experience became more reliable.

That taught me something important:

Voice AI isn't just an LLM problem.

Speech recognition, language, latency, prompts, tools, and responses all affect the final experience.

Going Beyond “Task Completed”

I didn't want to stop once the required functionality worked.

I kept asking:

“What would make this feel more like a real product?”

That led me to add improvements beyond the core task requirements, including:

🎨 A redesigned and more polished UI
📊 A custom Call Analytics Dashboard
👩‍💻 A Human Support Center
🔄 Support-case lifecycle tracking
🤝 A complete specialist handoff workflow
🧪 Routing tests for different user requests

Instead of treating the ten days as ten separate tasks, I connected them into one system.

🛠️ Want to Build Your Own Voice Agent?

The basic setup is:

git clone https://github.com/Jhansi48/murf-livekit-starter.git
cd murf-livekit-starter

Then:

Clone the repository

Create environment files

Add API keys

Install backend dependencies

Install frontend dependencies

Start the LiveKit agent

Start the frontend

Open the app and start a voice conversation

For my project, the backend uses uv and the frontend uses pnpm.

The project uses environment variables for credentials such as:

  • LIVEKIT_URL
  • LIVEKIT_API_KEY
  • LIVEKIT_API_SECRET
  • MURF_API_KEY
  • DEEPGRAM_API_KEY
  • GOOGLE_API_KEY

API keys should remain in environment files and never be committed to GitHub.

The same applies to phone numbers, caller data, OTPs, PINs, card details, UPI credentials, and other private information.

🔗 GitHub

GitHub logo Jhansi48 / murf-livekit-starter

ExpenseMate — a multilingual AI voice agent for conversational expense tracking, payment support, human escalation, and call analytics.

Voice Agent Starter — Powered by Murf Falcon

Build a production voice AI agent in 5 minutes. Powered by the fastest TTS on the market - swap the system prompt to build anything from customer support to language tutors.

License: MIT Murf Falcon LiveKit TypeScript Python


Why Murf Falcon

  • 55ms model latency - fastest production TTS
  • 130ms time-to-first-audio across 10+ global regions
  • $0.01/1000 characters - up to 10x cheaper than alternatives
  • 150+ voices across 35+ languages
  • 99.38% pronunciation accuracy

Architecture

flowchart LR
    A[🎙️ User speaks] -->|audio| B[Deepgram STT]
    B -->|text| C[LLM]
    C -->|response text| D[Murf Falcon TTS]
    D -->|audio| E[LiveKit]
    E -->|stream| F[🔊 User hears]

    style A fill:#444441,stroke:#888780,color:#fff
    style B fill:#185FA5,stroke:#85B7EB,color:#fff
    style C fill:#534AB7,stroke:#AFA9EC,color:#fff
    style D fill:#0F6E56,stroke:#5DCAA5,color:#fff
    style E fill:#D85A30,stroke:#F0997B,color:#fff
    style F fill:#444441,stroke:#888780,color:#fff
Loading

Quickstart

Prerequisites

  • Python 3.10+
  • uv - fast Python package manager
    # macOS/Linux
    curl -LsSf https://astral.sh/uv/install.sh | sh
    # Windows (PowerShell)
    powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
    Enter fullscreen mode Exit fullscreen mode
  • Node.js 18+
  • pnpm

The repository contains the project code so other developers can explore the implementation and build on it.

🎥 Demo

Watch the complete ExpenseMate demo:

The demo shows the complete workflow, including voice interaction, memory, multilingual conversation, specialist handoff, human support, case resolution, outbound SIP calling, and call analytics.

🚀 What's Next?

There is still a lot I would like to improve:

  • Better Telugu and other Indian-language recognition
  • More reliable fast-speech handling
  • Stronger specialist routing
  • Multi-agent handbacks
  • Failed-handoff recovery
  • Richer analytics and evaluation
  • Production-ready deployment

The goal is not simply to make the agent work.

It is to make it more reliable, useful, and natural in real conversations.

❤️What These 10 Days Taught Me

For someone who had never built a voice agent or worked with agentic AI before, this challenge gave me much more than a working project.

It changed the way I think about AI systems.

At the beginning, I thought a voice agent was:

Speech → LLM → Response
Now I see it as:

Listen → Understand → Remember → Act → Stay Safe → Escalate → Measure

I learned how speech recognition, LLM reasoning, memory, tools, safety guardrails, specialist agents, human support, telephony, and analytics can work together as one system.

And perhaps the most valuable part was realizing that building the first version is only the beginning.

The real work is testing it with real conversations, finding where it fails, understanding why it fails, and improving the experience.

Ten days ago, I had never built a voice agent.

Today, I don't just have a working project — I have a much clearer understanding of what it takes to build, test, debug, and improve an AI agent that interacts with real people.

The biggest lesson wasn't learning how to make an AI speak.

It was learning how to make it listen, remember, act, stay safe, know its limits, and ask for help when it needs to.

That is what ExpenseMate became during these 10 days. 🚀

10 Days of Voice Agents — VoiceForBharat Edition, complete.

Built using Murf Falcon — the fastest TTS API.

VoiceForBharat #MurfFalcon #VoiceAI #AIAgents #GenerativeAI #LiveKit #MurfAI