Switch wake word from Porcupine to openwakeword + training pipeline

- Add training/ pipeline (step_1..step_5) and own-samples flow
- record_wav.py with single-shot and long-record modes, RMS-based silence filter
- remove_silent.py to drop silent samples and renumber
- modes.py: openwakeword inference with reset() and quiet predictions; commented Lusya block for later
- stt.py: drop local faster-whisper fallback, Groq-only
- config.py: remove unused STT_PROVIDER/WHISPER_*
- llm.py: replace __import__("os") hack with proper import
- tts.py: remove debug traceback in play_error_sound
- requirements.txt: add openwakeword/sounddevice/scipy, drop faster-whisper
- deploy/setup.sh: validate ELEVENLABS_API_KEY and WAKE_WORD_COSMO presence
- README.md, CLAUDE.md, project_roadmap memory updated to reflect new architecture
This commit is contained in:
2026-04-13 15:40:44 +03:00
parent 0a89bf5105
commit 780f6f0084
13 changed files with 378 additions and 140 deletions

View File

@@ -11,15 +11,11 @@ LUSYA_AGENT=openclaw/main
LUSYA_VOICE_MODEL=openai/gpt-5.4-mini
# STT (Groq)
STT_PROVIDER=groq
GROQ_API_KEY=your_groq_api_key_here
WHISPER_MODEL=small
WHISPER_LANGUAGE=ru
# Picovoice Porcupine (wake word, только на Pi)
PORCUPINE_KEY=your_picovoice_key_here
WAKE_WORD_COSMO=cosmo_raspberry-pi.ppn
WAKE_WORD_LUSYA=lusya_raspberry-pi.ppn
# Wake word (openwakeword .onnx модели, обучаются через training/step_4.py)
WAKE_WORD_COSMO=data/models/cosmo.onnx
WAKE_WORD_LUSYA=data/models/lusya.onnx
# Audio (на Pi: bluez_sink.XX_XX_XX_XX_XX_XX.a2dp_sink)
AUDIO_SINK=