Architecture Phase 7 STT implémentée mais bloquée par conflits de macros
entre GroveEngine (JsonDataNode.h) et spdlog/fmt.
## Nouveau contenu
### Interfaces & Services
- ISTTService.hpp: Interface service STT (modes passive/active, callbacks)
- STTService.{hpp,cpp}: Implémentation service STT avec factory pattern
- VoskSTTEngine.{hpp,cpp}: Engine STT local Vosk (~50MB model)
### Factory Pattern
- STTEngineFactory: Support multi-engines (Vosk, Whisper API, auto-select)
- Fallback automatique Vosk -> Whisper API
### Configuration
- config/voice.json: Config Phase 7 (passive_mode, active_mode, whisper_api)
- Support modèles Vosk locaux + fallback cloud
### Intégration
- VoiceService: Nouvelle méthode configureSTT(json) pour Phase 7
- main.cpp: Chargement config STT depuis voice.json
- CMakeLists.txt: Ajout fichiers + dépendance optionnelle Vosk
## Problème de Compilation
**Bloqué par conflits de macros**:
- JsonDataNode.h (GroveEngine) définit des macros qui polluent 'logger' et 'queue'
- Cause erreurs dans VoiceService.cpp et STTService.cpp
- Voir plans/PHASE7_COMPILATION_ISSUE.md pour diagnostic complet
## Fonctionnalités Implémentées
✅ Architecture STT complète (service layer + engines)
✅ Support Vosk local (modèles français)
✅ Factory pattern avec auto-selection
✅ Configuration JSON Phase 7
✅ Callbacks transcription/keywords
❌ Ne compile pas (macro conflicts)
## Prochaines Étapes
1. Résoudre conflits macros (fixer GroveEngine ou isolation namespace)
2. Phase 7.2: PocketSphinxEngine (keyword spotting "Celuna")
3. Tests intégration STT
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
37 lines
996 B
JSON
37 lines
996 B
JSON
{
|
|
"tts": {
|
|
"enabled": true,
|
|
"engine": "auto",
|
|
"rate": 0,
|
|
"volume": 80,
|
|
"voice": "fr-fr"
|
|
},
|
|
"stt": {
|
|
"passive_mode": {
|
|
"enabled": false,
|
|
"engine": "pocketsphinx",
|
|
"keywords": ["celuna", "hey celuna", "ok celuna"],
|
|
"threshold": 0.8,
|
|
"model_path": "/usr/share/pocketsphinx/model/en-us"
|
|
},
|
|
"active_mode": {
|
|
"enabled": true,
|
|
"engine": "vosk",
|
|
"model_path": "./models/vosk-model-small-fr-0.22",
|
|
"language": "fr",
|
|
"timeout_seconds": 30,
|
|
"fallback_engine": "whisper-api"
|
|
},
|
|
"whisper_api": {
|
|
"api_key_env": "OPENAI_API_KEY",
|
|
"model": "whisper-1"
|
|
},
|
|
"microphone": {
|
|
"device_id": -1,
|
|
"sample_rate": 16000,
|
|
"channels": 1,
|
|
"buffer_size": 1024
|
|
}
|
|
}
|
|
}
|