Convo-AI · Local-first voice-enabled conversational AI assistant
A local-first, voice-enabled conversational AI assistant that listens with faster-whisper, thinks with local Ollama LLM, remembers with RAG over SQLite, and speaks with Coqui TTS (XTTS v2). No cloud API keys, no telemetry. Python 3.8+, FastAPI WebSocket server, React + Tailwind web UI, Docker support.User need
I wanted a conversational AI assistant that worked entirely locally — no cloud API keys, no telemetry, no data leaving my machine. It needed to listen to voice input, think with a local LLM, remember context across conversations with RAG, and speak responses back out loud. The kind of thing you could run on your own hardware and trust.
What I built
Convo-AI is a local-first, voice-enabled conversational AI assistant with a full pipeline: it listens with faster-whisper, thinks with a local Ollama LLM, remembers with RAG over SQLite, and speaks with Coqui TTS (XTTS v2). No cloud API keys and no telemetry. The server is a FastAPI WebSocket backend in Python, with a Python CLI client and a React + Tailwind web UI. Configuration lives in config.json for voice model, speed and pitch, WebSocket URL, and LLM settings.
Voice pipeline
- Speech-to-text with faster-whisper
- Text-to-speech output with Coqui TTS (XTTS v2)
- Voice and text input modes
- Press 'r' to record in the CLI client
- Configurable voice model, speed, and pitch via
config.json
Brain & infrastructure
- Local Ollama LLM for reasoning — no cloud API keys
- RAG memory over SQLite for conversation context
- FastAPI WebSocket server (
python server.py) - Python CLI client (
python talk.py) - React + Tailwind web UI
- Docker support for containerized setup
- Privacy-first: no telemetry, no data leaves the machine
What I did
- Solo developer — built the entire voice pipeline and infrastructure
- Integrated faster-whisper for speech-to-text
- Connected Ollama as the local LLM backend
- Implemented RAG memory over SQLite for conversation context
- Integrated Coqui TTS (XTTS v2) for text-to-speech output
- Built the FastAPI WebSocket server and Python CLI client
- Built the React + Tailwind web UI
- Added Docker support for containerized deployment
Real artifacts you can verify
- GitHub repo: github.com/BradleyMatera/Convo-Ai
- Live demo: bradleymatera.github.io/Convo-Ai
- Created: April 16, 2025
- Commits: 15 commits
- License: MIT
- Requirements: Python 3.8+, FFmpeg, Ollama, microphone for voice input
- Usage:
python server.py(start server),python talk.py(run client), 'r' to record - Config:
config.jsonfor voice model, speed & pitch, WebSocket URL, LLM settings - Honest limitations: Requires local installation of Ollama and FFmpeg. Requires microphone for voice input. No cloud deployment — local-only setup. Small project (15 commits).
