af6f926019bacc53726ccc5704aacefed406dc64
Jarvis v2 - Always-Listening Assistant (CPU)
Designed for Intel iMac Ubuntu 26.04, 15GB RAM, CPU-only.
Architecture
Mic 16kHz -> VAD (silero) -> Wakeword (openWakeWord TFLite) -> STT (faster-whisper int8) -> SpeakerID (ECAPA) + FaceID (OpenCV) -> LLM (ollama/gemini_cli/hermes) -> TTS (piper) -> Speaker
Quick start on iMac
cd ~/Projects/jarvis-v2
# install uv if not present
curl -LsSf https://astral.sh/uv/install.sh | sh
export PATH=$HOME/.local/bin:$PATH
uv venv .venv --python 3.14
source .venv/bin/activate
uv pip install -e .
# for audio libs you may need (if sudo works, otherwise pip wheels should work)
# sudo apt install portaudio19-dev libasound2-dev espeak
# configure
cp jarvis.yaml.example jarvis.yaml
# edit jarvis.yaml
# Test components
python scripts/test_mic.py
python scripts/test_wakeword.py
python scripts/test_stt.py
# Enroll family voices (3 samples each)
python scripts/enroll_speaker.py --name Adolfo --mic
python scripts/enroll_speaker.py --name Grace --mic
python scripts/enroll_speaker.py --name Elias --mic
# Enroll faces
python scripts/enroll_face.py --name Adolfo
python scripts/enroll_face.py --name Grace
# Run
jarvis run
# or
python -m jarvis.cli run --config jarvis.yaml
# Install as systemd user service (always-on)
./scripts/install_service.sh
Config
See jarvis.yaml.example - covers audio, VAD, wakeword, STT, speaker, vision, LLM, TTS.
LLM Providers
- ollama: local qwen2.5:3b (install ollama then
ollama pull qwen2.5:3b) - gemini_cli: uses existing gemini CLI + soul.md
- hermes_api: points to Hermes API
- echo: placeholder
Future
- voice trigger via small LLM gate (qwen0.5B decides if addressed)
- Face corroboration on wake
- Home Assistant / MCP tools
Description
Languages
Python
100%