Skip to contentMatera Digital

Convo-AI

Project Write-up

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.
Problem

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.

Solution

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
My Role

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
What's in the Repo

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.json for 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).
Tech Stack

Technologies used

PythonFastAPIfaster-whisperOllamaSQLiteCoqui TTS (XTTS v2)ReactTailwind CSSDockerWebSockets