mirror of
https://github.com/R0m1k3/LiveFlow.git
synced 2026-10-11 17:27:19 +02:00
3.0 KiB
3.0 KiB
LiveFlow — Diarisation des locuteurs
Context
LiveFlow est une application de transcription de réunions en temps réel. Nous y ajoutons la diarisation (identification automatique des locuteurs) via SpeechBrain ECAPA-TDNN et un clustering incrémental, ainsi qu'un sélecteur de microphone dans l'interface utilisateur.
Current Focus
Vérification de la cohérence de tous les fichiers (backend et frontend) et tests d'intégration/fonctionnalité.
Master Plan
- Créer
app/diarizer.py— module SpeakerDiarizer (embeddings + clustering) - Modifier
app/segmenter.py— ajouter le champspeakerà la dataclass Segment - Modifier
app/main.py— intégrer la diarisation dans le worker, le schéma de base de données, l'API et les exports - Modifier
app/static/app.js— affichage des badges locuteurs, toggle, copie et intégration du sélecteur de micro - Modifier
app/static/index.html— toggle diarisation et sélecteur de micro dans les contrôles - Modifier
app/static/style.css— styles pour les badges locuteurs, le toggle et le sélecteur de micro - Modifier
app/requirements.txt— ajouter speechbrain, torch, torchaudio - Modifier
app/Dockerfile— installer PyTorch CPU-only - Modifier
.env.example— variables DIARIZATION et DIARIZATION_THRESHOLD - Modifier
docker-compose.yml— passer les variables d'environnement de diarisation - Vérification de la cohérence de tous les fichiers et validation
- Correction de tout bug ou problème détecté
- Rendre configurable le nombre maximal de locuteurs (DIARIZATION_MAX_SPEAKERS, défaut 8) dans main.py, .env.example et docker-compose.yml
Progress Log
- Création du module
diarizer.pypour l'extraction des embeddings et le clustering. - Modification de
segmenter.pypour stocker le locuteur. - Mise à jour de
main.pypour la gestion de la session de diarisation, l'API et la persistance en base de données. - Développement du frontend (styles, boutons, sélecteur de micro, badges).
- Validation et commit des modifications pour le sélecteur de micro et la diarisation.
- Amélioration du frontend pour rafraîchir les noms des micros après autorisation d'accès, commit et push sur main.
- Correction de l'affichage de la liste des micros : demande initiale d'autorisation au chargement de la page et filtrage des périphériques sans identifiant.
- Ajout de la variable d'environnement DIARIZATION_MAX_SPEAKERS (défaut 8) et intégration dans l'instanciation de SpeakerDiarizer.
- Résolution des problèmes de synchronisation de la liste des réunions (rechargement systématique dans stopRecording), détection des contextes non sécurisés (affichage d'un bandeau d'erreur si HTTP) et gestion des erreurs de connexion WebSocket.
- Sécurisation globale de startRecording() et stopRecording() (bloc try/catch global, nettoyage complet et guards pour éléments null) et changement de contrainte de micro de 'exact' à 'ideal' pour éviter de bloquer la captation.