Init commit
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
# Alfred — Interface mise à jour depuis interface.zip (24/10/2026)
|
||||
|
||||
## Modifications
|
||||
|
||||
- Coin supérieur gauche : état réel de l'agent (`idle`, `listening`, `thinking`, `speaking`, `error`) avec libellé en français. Le titre « Alfred » est supprimé de la page.
|
||||
- Coin supérieur droit : bouton « réglages audio » ouvrant un panneau flottant (volume sortie, sensibilité micro ALSA, mute micro), et bouton « couper/réactiver le son » (mute haut-parleur).
|
||||
- Coin inférieur droit : transcription Vosk partielle puis finale, conservée pendant le retour à la veille. Les données arrivent des événements Socket.IO `alfred_state` existants (`partial` et `transcript`).
|
||||
- Coin inférieur gauche : prévisualisation webcam MJPEG en direct. La caméra s'ouvre **uniquement sur clic** pour ne pas occuper en permanence la caméra utilisée par le MCP facial, et s'arrête lorsque l'onglet devient invisible.
|
||||
- Protection supplémentaire : le texte d'Hermes est rendu sans injection de code HTML dans la page.
|
||||
|
||||
## Installation
|
||||
|
||||
À effectuer sur la machine Alfred après transfert du ZIP, en étant dans son dossier parent `/opt/alfred` :
|
||||
|
||||
```bash
|
||||
sudo systemctl stop alfred
|
||||
sudo cp -a /opt/alfred/app /opt/alfred/app.sauvegarde-$(date +%Y%m%d-%H%M%S)
|
||||
cd /opt/alfred
|
||||
sudo unzip -o /tmp/Alfred_Interface_Reorganisation_V1.zip
|
||||
python3 -m py_compile /opt/alfred/app/app.py /opt/alfred/app/services/camera.py
|
||||
sudo systemctl start alfred
|
||||
sudo journalctl -u alfred -n 50 --no-pager
|
||||
```
|
||||
|
||||
Le ZIP remplace uniquement :
|
||||
|
||||
```
|
||||
app/app.py
|
||||
app/templates/index.html
|
||||
app/static/css/alfred.css
|
||||
app/static/css/alfred-controls.css
|
||||
app/static/js/alfred.js
|
||||
app/static/js/alfred-controls.js
|
||||
app/static/js/alfred-camera.js (nouveau)
|
||||
app/services/camera.py
|
||||
```
|
||||
|
||||
## Webcam
|
||||
|
||||
- Index de la caméra par défaut : 0, réglable avec `CAMERA_INDEX=1` (ou autre) dans l'environnement du service Alfred.
|
||||
- Options facultatives : `CAMERA_WIDTH=640`, `CAMERA_HEIGHT=480`, `CAMERA_FPS=8`, `CAMERA_JPEG_QUALITY=75`.
|
||||
- `cv2` / OpenCV doit être installé dans **l'environnement Python d'Alfred**, par exemple `python -m pip install opencv-python-headless` depuis son venv (uniquement si absent).
|
||||
- Tester le périphérique : `ls -l /dev/video*`.
|
||||
- URL du flux : `http://IP_ALFRED:54321/api/camera/stream`.
|
||||
- Si le MCP de reconnaissance faciale utilise déjà la webcam en exclusivité, le flux peut échouer. Désactiver la prévisualisation avant une capture MCP si nécessaire. Cette version ne partage pas les images entre les processus.
|
||||
- Attention : le flux est actuellement accessible à toute personne ayant accès au serveur Flask (aucune authentification intégrée à l'application de départ). Ne pas exposer le port 54321 sur Internet sans contrôle d'accès.
|
||||
|
||||
## Audio
|
||||
|
||||
Le bouton « Mute » en haut à droite agit sur **le haut-parleur**. Le mute du **microphone** se trouve dans le popup audio. Tous les réglages utilisent l'API POST `/api/audio/settings` existante.
|
||||
|
||||
## Tests réalisés
|
||||
|
||||
- Compilation syntaxique de `app.py` et `camera.py`.
|
||||
- Vérification syntaxique des trois scripts JavaScript au moyen de `node --check`.
|
||||
- Validation des identifiants des contrôles de l'interface.
|
||||
- Test du générateur MJPEG, du verrou d'accès à la caméra et de sa libération sur fermeture, avec une caméra simulée.
|
||||
|
||||
Non testés : affichage en conditions réelles sous Chromium, accès à la caméra physique du MINISFORUM, intégration réelle à Vosk/ALSA. L'environnement de test empêche la navigation Chromium locale.
|
||||
Reference in New Issue
Block a user