Project Info
Inspiration
Imagine slowly forgetting the people and moments that made your life meaningful. More than 10 million people are diagnosed with dementia every year, and that number continues to grow. It's heartbreaking, especially for families experiencing dementia for the first time. With HeatherAI, I wanted to bridge the gap so families don't have to bear such a heavy burden alone, while ensuring patients still receive meaningful companionship and care.
What it does
HeatherAI is a Voice AI Agent designed to help patients in elder care, specifically those with dementia, reconnect with their memories through the simple act of speaking with their younger self. Before diagnosis: HeatherAI helps you plan and prepare by recording your life story through natural text-to-speech or speech-to-text conversations. It learns your history as you go and creates a voice clone that sounds just like you. After diagnosis: When dementia sets in, you can open up and converse with HeatherAI. You might or might not realize it's your younger self speaking—but either way, it provides comfort, familiarity, and connection to your past. Core Features: Voice Cloning - Preserves your voice before memory loss begins Memory Lane - AI-powered recall of personal history and cherished moments Smart Tools - Emergency calling, safety monitoring, and dynamic agentic tool creation for personalized needs
How we built it
HeatherAI is built on a robust stack of cutting-edge technologies: ChromaDB - Vector database for semantic memory storage and retrieval LiveKit Agents - Voice AI framework with advanced VAD and turn detection ElevenLabs - Voice cloning and natural text-to-speech Twilio - Emergency calling capabilities Mailjet - Email notifications for caregivers Groq - High-speed LLM inference for natural conversations
Challenges we ran into
Multi-voice switching: I wanted users to hear from multiple loved ones—not just their own voice, but also their children, spouse, or friends. While I successfully created two voice clones with ElevenLabs, I couldn't figure out how to dynamically switch between different voice models during runtime. Hallucinations and background noise: The agent initially struggled with accuracy and was sensitive to background sounds. I solved this by refining prompts to be clear and concise, providing specific examples, and adjusting the temperature parameter. I also attended LiveKit's workshop and learned about their multilingual semantic turn detector, which layers on top of voice activity detection to filter out background noise. Connectivity issues: WiFi challenges at the hackathon made testing difficult, but persistence paid off!
Accomplishments we're proud of
✨ Getting it working end-to-end - Connecting everything to a LiveKit room and hearing the voice model respond for the first time was magical 🛠️ Dynamic tool calling - The agent can intelligently select from a variety of tools during conversation, making memory recall seamless with ChromaDB integration 🎭 Voice quality and empathy - Testing different TTS models and seeing the voice agent display genuine empathy and understanding for users 🤖 Agentic tool creation - The most ambitious feature: when a patient needs something not covered by existing tools (like checking weather or creating reminders), our LLM dynamically creates new tools on-the-fly. This means HeatherAI can adapt to each patient's unique needs without requiring code changes.
What we learned
I discovered a passion for voice AI and its incredible potential to make a real difference in people's lives. I learned about LiveKit's system design—how voice models work from VAD to STT and beyond. I gained hands-on experience with ChromaDB for building RAG pipelines with vector databases. Most importantly, I learned that technology can preserve what makes us human: our memories, our voices, and our stories.
What's next
Multi-voice support - Enable switching between different loved ones' voices (children, spouse, friends) Caregiver dashboard - Real-time insights and alerts for family members and medical staff Mobile app - Make HeatherAI accessible anywhere, anytime Advanced memory triggers - Use photos, music, and video clips to enhance memory recall Clinical trials - Partner with elder care facilities to validate HeatherAI's impact Multilingual support - Help dementia patients worldwide, regardless of language Integration with medical records - Seamless connection with healthcare providers for coordinated care
LiveKit Agents Starter - Python
A complete starter project for building voice AI apps with LiveKit Agents for Python and LiveKit Cloud.
The starter project includes:
- A simple voice AI assistant, ready for extension and customization
- A voice AI pipeline with models from OpenAI, Cartesia, and AssemblyAI served through LiveKit Cloud
- Easily integrate your preferred LLM, STT, and TTS instead, or swap to a realtime model like the OpenAI Realtime API
- Eval suite based on the LiveKit Agents testing & evaluation framework
- LiveKit Turn Detector for contextually-aware speaker detection, with multilingual support
- Background voice cancellation
- Integrated metrics and logging
- A Dockerfile ready for production deployment
This starter app is compatible with any custom web/mobile frontend or SIP-based telephony.
Coding agents and MCP
This project is designed to work with coding agents like Cursor and Claude Code.
To get the most out of these tools, install the LiveKit Docs MCP server.
For Cursor, use this link:
For Claude Code, run this command:
claude mcp add --transport http livekit-docs https://docs.livekit.io/mcp
For Codex CLI, use this command to install the server:
codex mcp add --url https://docs.livekit.io/mcp livekit-docs
For Gemini CLI, use this command to install the server:
gemini mcp add --transport http livekit-docs https://docs.livekit.io/mcp
The project includes a complete AGENTS.md file for these assistants. You can modify this file your needs. To learn more about this file, see https://agents.md.
Dev Setup
Clone the repository and install dependencies to a virtual environment:
cd agent-starter-python
uv sync
Sign up for LiveKit Cloud then set up the environment by copying .env.example to .env.local and filling in the required keys:
LIVEKIT_URLLIVEKIT_API_KEYLIVEKIT_API_SECRET
You can load the LiveKit environment automatically using the LiveKit CLI:
lk cloud auth
lk app env -w -d .env.local
Run the agent
Before your first run, you must download certain models such as Silero VAD and the LiveKit turn detector:
uv run python src/agent.py download-files
Next, run this command to speak to your agent directly in your terminal:
uv run python src/agent.py console
To run the agent for use with a frontend or telephony, use the dev command:
uv run python src/agent.py dev
In production, use the start command:
uv run python src/agent.py start
Frontend & Telephony
Get started quickly with our pre-built frontend starter apps, or add telephony support:
| Platform | Link | Description |
|---|---|---|
| Web | livekit-examples/agent-starter-react | Web voice AI assistant with React & Next.js |
| iOS/macOS | livekit-examples/agent-starter-swift | Native iOS, macOS, and visionOS voice AI assistant |
| Flutter | livekit-examples/agent-starter-flutter | Cross-platform voice AI assistant app |
| React Native | livekit-examples/voice-assistant-react-native | Native mobile app with React Native & Expo |
| Android | livekit-examples/agent-starter-android | Native Android app with Kotlin & Jetpack Compose |
| Web Embed | livekit-examples/agent-starter-embed | Voice AI widget for any website |
| Telephony | 📚 Documentation | Add inbound or outbound calling to your agent |
For advanced customization, see the complete frontend guide.
Tests and evals
This project includes a complete suite of evals, based on the LiveKit Agents testing & evaluation framework. To run them, use pytest.
uv run pytest
Using this template repo for your own project
Once you've started your own project based on this repo, you should:
-
Check in your
uv.lock: This file is currently untracked for the template, but you should commit it to your repository for reproducible builds and proper configuration management. (The same applies tolivekit.toml, if you run your agents in LiveKit Cloud) -
Remove the git tracking test: Delete the "Check files not tracked in git" step from
.github/workflows/tests.ymlsince you'll now want this file to be tracked. These are just there for development purposes in the template repo itself. -
Add your own repository secrets: You must add secrets for
LIVEKIT_URL,LIVEKIT_API_KEY, andLIVEKIT_API_SECRETso that the tests can run in CI.
Deploying to production
This project is production-ready and includes a working Dockerfile. To deploy it to LiveKit Cloud or another environment, see the deploying to production guide.
Self-hosted LiveKit
You can also self-host LiveKit instead of using LiveKit Cloud. See the self-hosting guide for more information. If you choose to self-host, you'll need to also use model plugins instead of LiveKit Inference and will need to remove the LiveKit Cloud noise cancellation plugin.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Analysis
View
Metric
- 4
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- PythonIn code
- PyTorchIn code
2 of 2 appear in the indexed code.
AI coding agents
- Claude CodeConfig
- CodexConfig
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
94 KB
Source files
22
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
wesleykieu/voice-ai
33 files · 1.5 MB · @ d4dad07
Structure
Application logic
12 files · 36%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- Python79%
- Markdown16%
- YAML4%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
pyproject.toml
pypi · 7- chromadb
- livekit-agents[elevenlabs,groq,silero,turn-detector]
- livekit-plugins-noise-cancellation
- mailjet-rest
- python-dotenv
- torch
- twilio
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.