Funk-lab/stt/client/stt
ALI YESILKAYA 767a94b1d0
fix(stt-client): stt --stop détecte le process lancé via pipx (#26)
`_running_stt_pids` ne regardait que argv[0], or pipx lance
`python -E /…/bin/stt --window app` → argv[0] est l'interpréteur, pas `stt`
(et le `-E` décale encore le chemin). Du coup `stt --stop` ne trouvait jamais
l'instance vocale (« Aucun service ni instance en cours ») alors qu'elle
tournait — confirmé en conditions réelles.

Désormais on cherche un token qui est un *chemin* vers `stt` (slash + basename
`stt`) dans toute la ligne de commande, ce qui écarte aussi le `stt` nu d'un
`journalctl -u stt` (faux positif), et on ignore toujours les sous-commandes
utilitaires.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 21:53:15 +02:00
..
hud feat(stt): boutons stop/mute (HUD) + stt --stop + RAG funk-docs nettoyé (#24) 2026-06-19 21:17:32 +02:00
memory feat(stt): assistant vocal Jarvis — client pipx + STT-server in-cluster (#4) 2026-06-17 12:08:58 +02:00
ui feat(stt): boutons stop/mute (HUD) + stt --stop + RAG funk-docs nettoyé (#24) 2026-06-19 21:17:32 +02:00
voice feat(stt): boutons stop/mute (HUD) + stt --stop + RAG funk-docs nettoyé (#24) 2026-06-19 21:17:32 +02:00
__init__.py feat(stt): assistant vocal Jarvis — client pipx + STT-server in-cluster (#4) 2026-06-17 12:08:58 +02:00
api.py feat(stt): mémoire court-terme de session côté serveur (5a) (#8) 2026-06-17 16:15:57 +02:00
cli.py fix(stt-client): stt --stop détecte le process lancé via pipx (#26) 2026-06-19 21:53:15 +02:00
config.py feat(stt): lancement & cycle de vie du client — auto-start, app de bureau, auto-update (#18) 2026-06-19 00:05:02 +02:00
README.md feat(stt): assistant vocal Jarvis — client pipx + STT-server in-cluster (#4) 2026-06-17 12:08:58 +02:00

stt/stt — package backend

Cœur Python de la commande stt. Réutilise le moteur vocal de tools/hermes-voice.py.

stt/
├── cli.py        # entrypoint `stt` (--setup, --mode, --no-tts)           ✅ phase 1
├── config.py     # défauts embarqués + chargement ~/.config/stt/stt.toml  ✅ phase 1
├── voice/        # wake word + VAD, STT faster-whisper, TTS Piper         ✅ phase 1
├── brain/        # routeur 3 modes hermes/local/claude + auto-détect LAN  ✅ phase 2
├── server/       # HTTP statique (HUD) + websocket (états → HUD)          ✅ phase 1
└── memory/       # tier local SQLite ✅ ; Qdrant s01 + sync GitHub        ⏳ phase 4

États exposés au HUD (via websocket)

idle (veille) → listening (écoute) → thinking (réflexion cerveau) → speaking (TTS) → idle. Le HUD anime le visualiseur selon l'état et affiche transcript utilisateur + réponse.

Point de départ

Le module voice/ part de tools/hermes-voice.py (déjà fonctionnel : wake word « Ok Hermès », faster-whisper, Piper, webrtcvad). À refactorer en classe + callbacks d'état pour le websocket, puis brancher brain/ (routeur) à la place de l'appel direct actuel.