199f762616
- PipeWire/pw-record backend (no PortAudio needed) - tested mic live - VAD: Energy (immediate) + Silero (torch CPU) switchable - Wakeword: openWakeWord TFLite hey_jarvis 0.4 - STT: faster-whisper base int8 CPU - model loads OK on i3 - SpeakerID: ECAPA embeddings + fallback stats, enrollment store - Vision: OpenCV Haar + face_recognition + webcam cam0 640x480 verified - LLM: ollama/qwen2.5:3b, gemini_cli, hermes_api, echo strategies - TTS: Piper + espeak + echo fallbacks - Core pipeline: IDLE -> WAKE -> RECORDING -> STT -> SpeakerID/FaceID fusion -> LLM -> TTS -> followup window - Config via jarvis.yaml, soul.md persona - CLI tools: run, devices, enroll-speaker, enroll-face, test-vad, test-mic - Systemd user service ready - Tested on iMac 2010 i3 550 15GB Ubuntu 26.04 CPU-only
31 lines
567 B
TOML
31 lines
567 B
TOML
[project]
|
|
name = "jarvis-v2"
|
|
version = "0.2.0"
|
|
description = "Always-listening voice assistant - CPU optimized"
|
|
readme = "README.md"
|
|
requires-python = ">=3.10"
|
|
dependencies = [
|
|
"numpy<2",
|
|
"sounddevice",
|
|
"soundfile",
|
|
"openwakeword",
|
|
"faster-whisper",
|
|
"onnxruntime",
|
|
"torch",
|
|
"torchaudio",
|
|
"silero-vad",
|
|
"webrtcvad-wheels",
|
|
"scipy",
|
|
"piper-tts",
|
|
"scikit-learn",
|
|
"opencv-python-headless",
|
|
"pyyaml",
|
|
"requests",
|
|
"python-dotenv",
|
|
"ollama",
|
|
"tqdm",
|
|
]
|
|
|
|
[project.scripts]
|
|
jarvis = "jarvis.cli:main"
|