---
Date: 2026-07-10
Author: Hermes
Tags: [journal]
---

# 2026-07-10 - Jarvis v2 rebuild

Built Jarvis v2 from scratch for iMac (i3 550 Ubuntu 26.04). Original v1 was mlx-whisper macOS-only monolith. New v2:

- **Audio**: PipeWire pw-record backend (no PortAudio) - tested live, chunks 512 samples OK
- **VAD**: Energy + Silero fallback
- **Wakeword**: openWakeWord 0.4.0 TFLite hey_jarvis_v0.1.onnx - fixed API from wakeword_models to wakeword_model_paths, 9 models found, silence correctly not triggering
- **STT**: faster-whisper base INT8 CPU loads OK (needs HuggingFace download on first run)
- **SpeakerID**: fallback stats embedding works (enroll -> identify 1.0 match), ECAPA speechbrain pending (heavy, not in venv yet)
- **Vision**: Camera /dev/video0 640x480 OK, FaceStore empty, Haar detector ready
- **LLM**: Echo placeholder works with speaker context fusion (voice_conf + face_conf -> fused_conf)
- **TTS**: Echo + spd-say available, Piper pending download

Pushed to Gitea Jarvis branch v2. Fixed openWakeWord API bug, pipeline runs idle 60s waiting for Hey Jarvis.

Pipeline: Mic -> VAD -> Wake -> pre-roll 0.8s -> recording silence 800ms -> STT -> Speaker+Face fusion -> LLM -> TTS -> followup 12s.

Next: enroll Adolfo/Grace/Elias voices+faces, install Ollama qwen2.5:3b, Piper voice.

See [[jarvis_v2_always_listening]] for full doc.
