- Wake Lock pendant l'enregistrement : empêche le téléphone de se mettre en
veille (qui suspendait micro/WebSocket) ; repris au retour au premier plan
- La liste des réunions se rafraîchit au retour sur l'onglet/fenêtre et toutes
les 20 s : une réunion faite sur l'iPhone apparaît sur le PC sans recharger
- Diarisation : seuil par défaut rééquilibré (0.40) — avait été rendu trop
conservateur, ne séparait plus deux personnes ; règle NEW_SPEAKER assouplie
https://claude.ai/code/session_01YHMp3EKzr4s6o8w1ygxuUe
Captation micro :
- Plus AUCUN test/bascule de micro automatique (choix manuel uniquement)
- Amplification adaptative (AGC) déplacée dans le segmenteur, AVANT la
détection de parole : un micro faible (casque) était sous le seuil du VAD,
aucune phrase n'était détectée. Validé : signal crête 1473 -> 16600, capté.
- Le client envoie l'audio brut (plus de gain navigateur qui se battait avec) ;
vumètre affiché amplifié pour rester lisible
Diarisation (locuteurs éclatés en 3, 4, 5... pour une même personne) :
- Seuil abaissé (0.70 -> 0.35) + zone morte large : un nouveau locuteur n'est
créé que si le score est nettement bas ET le segment assez long (>=1.2s)
- Centroïde plus stable (EMA alpha 0.15) + adhérence au dernier locuteur
- Validé : 1 personne reste 1 locuteur même très bruitée ; 2-3 voix séparées
https://claude.ai/code/session_01YHMp3EKzr4s6o8w1ygxuUe
- diarizer.py (ECAPA-TDNN + clustering incrémental) repris tel quel de main
- Hooks dans le pipeline : colonne speaker, identification par segment dans
un thread, locuteur dans l'interface (étiquettes colorées) et les exports
- Pause/reprise : bouton ⏸, le client coupe l'envoi, le serveur clôt le
segment en cours
- Case « Locuteurs » pour désactiver la diarisation par réunion
- DIARIZATION=on par défaut dans les compose, PyTorch CPU dans l'image
https://claude.ai/code/session_01YHMp3EKzr4s6o8w1ygxuUe