Voice assistant. Wake word → listen → reply → remember. Can web search and save long-term facts when needed.
- Wake word: livekit-wakeword (
computah.onnx) - STT: faster-whisper (
tiny) - LLM: Gemini via smolagents / LiteLLM (
gemini-3.1-flash-lite) - Tools: DuckDuckGo web search; long-term
remember/recall(Chroma) - TTS: Piper (
en_US-lessac-medium) - Memory: short-term chat history + persistent Chroma store (
data/chroma/)
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .envGEMINI_API_KEY=your_key_here
WAKEWORD_MODEL_PATH=models/wakeword/computah.onnx
PIPER_VOICE_PATH=models/tts/en_US-lessac-medium.onnx
LONG_TERM_MEMORY_PATH=data/chromaGet a key from Google AI Studio. Same key is used for the LLM and memory embeddings. Load env before running (export $(grep -v '^#' .env | xargs) or similar).
python main.pyCtrl+C to quit.
Loop: wake word → record → Whisper → Gemini (short-term memory + optional web search / remember / recall) → Piper → repeat.
Optional. Config: scripts/wakeword/configs/prod.yaml.
cd scripts/wakeword
python train.pyExports ONNX under models/wakeword/. Point WAKEWORD_MODEL_PATH at it.