Commit Graph
18 Commits
Author SHA1 Message Date
LogiFlow 8ad7cf042e Fix pause, mobile transcription, and diarization 2026-06-12 17:29:02 +02:00
LogiFlow a402fac8fc Fix pause, mobile transcription, and diarization 2026-06-12 17:28:33 +02:00
LogiFlow 5a9c2a6239 Fix pause, mobile transcription, and diarization 2026-06-12 17:26:04 +02:00
Michael 52fda48e5f feat: gestion de pause/reprise de reunion et correction du bug de sigles chinois (ASR francais par defaut) 2026-06-12 16:53:24 +02:00
Michael 6d1419492f fix: forcer le rechargement de app.js et style.css via cache-busting (?v=2) 2026-06-12 16:39:39 +02:00
Michael c06b490a0c feat: indicateur visuel de volume micro en temps réel et boîte de diagnostic des erreurs JS 2026-06-12 16:35:17 +02:00
Michael e59bdd1feb fix: sécuriser startRecording, stopRecording et utiliser la contrainte de micro ideal 2026-06-12 16:32:39 +02:00
Michael dd31090d3f fix: gestion des contextes non sécurisés, erreurs websocket et rechargement liste des réunions 2026-06-12 16:27:34 +02:00
Michael a343c90340 feat: configurer le nombre max de locuteurs via DIARIZATION_MAX_SPEAKERS (défaut 8) 2026-06-12 16:23:38 +02:00
Michael 8dbc657d7d fix: correction de la détection et du listing des micros au chargement 2026-06-12 16:21:13 +02:00
Michael d46ba02b39 fix: rafraîchir les étiquettes des micros après autorisation getUserMedia 2026-06-12 16:18:08 +02:00
Michael 86f94fc22c feat: sélecteur de microphone dans l'interface
- Select dropdown peuplé via enumerateDevices() au chargement
- Mise à jour automatique quand un périphérique est branché/débranché (devicechange)
- Le deviceId sélectionné est passé à getUserMedia() via exact constraint
- Option 'Micro par défaut' pour le comportement d'origine
2026-06-12 16:15:51 +02:00
Michael 284011428a feat: diarisation des locuteurs en temps réel (ECAPA-TDNN + clustering incrémental)
- Nouveau module diarizer.py : EmbeddingModel (SpeechBrain ECAPA-TDNN) + SpeakerDiarizer par session
- Backend : chargement modèle au lifespan, migration DB (colonne speaker), worker enrichi, exports avec locuteur
- Frontend : badges locuteurs colorés (8 couleurs), toggle activation, copie avec [Locuteur X]
- Config : DIARIZATION=on/off, DIARIZATION_THRESHOLD=0.70, PyTorch CPU-only dans Dockerfile
- Rétrocompatible : désactivé par défaut (DIARIZATION=off)
2026-06-12 16:03:43 +02:00
Claude 80176e9f82 ASR : repli automatique sans le paramètre language refusé par certains moteurs
vLLM avec Qwen3-ASR peut répondre 400 quand 'language' est fourni. L'app
retente alors en détection automatique, et les erreurs ASR remontent
désormais avec le corps de la réponse pour faciliter le diagnostic.
Ajout du favicon (404 dans la console).

https://claude.ai/code/session_01YHMp3EKzr4s6o8w1ygxuUe
2026-06-12 09:33:40 +00:00
Claude 16f41d6303 Option LIVEFLOW_TLS=off pour servir en HTTP derrière un reverse proxy existant
https://claude.ai/code/session_01YHMp3EKzr4s6o8w1ygxuUe
2026-06-12 09:01:26 +00:00
Claude 71ee13f845 Frontend : message d'erreur micro détaillé selon la cause (NotReadableError, etc.)
https://claude.ai/code/session_01YHMp3EKzr4s6o8w1ygxuUe
2026-06-12 09:00:15 +00:00
Claude 3c83b67538 Suppression de Caddy : l'app sert directement le HTTPS auto-signé
Un conteneur de moins. Le HTTPS reste nécessaire pour l'accès micro
(getUserMedia) depuis un autre appareil : certificat auto-signé généré au
démarrage pour LIVEFLOW_HOST, servi par uvicorn.

https://claude.ai/code/session_01YHMp3EKzr4s6o8w1ygxuUe
2026-06-11 22:52:41 +00:00
Claude a8517c3597 Implémentation complète de LiveFlow (proposition 2, moteur Qwen3-ASR)
- docker-compose : Caddy (HTTPS local) + app FastAPI + Qwen3-ASR via vLLM (GPU)
- Backend : WebSocket audio, segmentation VAD (WebRTC), appel ASR compatible
  OpenAI, stockage SQLite, exports TXT/MD/SRT/JSON
- Frontend : capture micro (AudioWorklet, rééchantillonnage 16 kHz),
  transcription live, historique des réunions, copie et téléchargement
- README : démarrage, prérequis GPU, changement de moteur ASR

https://claude.ai/code/session_01YHMp3EKzr4s6o8w1ygxuUe
2026-06-11 16:28:17 +00:00