feat: initial voice assistant implementation

5-state machine (LAUSCH/AUFNAHME/GENERATOR/VORLESE/DIALOG) with:
- Wake-word detection via openwakeword (hey_jarvis)
- Speech-to-text via faster-whisper large-v3 (GPU)
- LLM streaming via OpenAI-compatible backends (llama.cpp/ollama/openai)
- TTS via piper with automatic language detection and voice selection
- Selectable mic input (ReSpeaker, MOTU M2, camera, bluetooth, index)
- Selectable audio output sink
- Control words during playback (Stopp/Pause/Weiter/Noch einmal/…)
- "Stopp" abort in all active states → LAUSCH

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Dieter Schlüter 2026-06-16 00:43:02 +02:00
commit 53b0dd4055
5 changed files with 1442 additions and 0 deletions

40
.gitignore vendored Normal file
View file

@ -0,0 +1,40 @@
# Python
__pycache__/
*.py[cod]
*.pyo
*.pyd
.Python
*.egg-info/
dist/
build/
*.egg
.eggs/
# Virtuelle Umgebungen
.venv/
venv/
env/
.env
# IDE / Editor
.idea/
.vscode/
*.swp
*.swo
*~
# Claude Code
.claude/
# Piper TTS — Sprachmodelle (groß, nicht versionieren)
*.onnx
*.onnx.json
# Audio-Testdateien
*.wav
*.mp3
*.flac
*.ogg
# Logs
*.log