Commit Graph
4 Commits
Author SHA1 Message Date
Claude 1e72e82965 Qualité de transcription : audio propre pour le moteur (corrige les erreurs)
L'AGC sur-amplifiait (jusqu'à x60) l'audio envoyé au moteur -> signal
déformé/bruité -> mauvaise reconnaissance. Désormais :
- Le VAD détecte sur l'audio amplifié, mais le segment stocke l'audio BRUT
- Le segment est normalisé proprement (mise à l'échelle linéaire unique vers
  crête ~22000, sans saturation) juste avant le moteur
- Segment max ramené de 25 s à 15 s pour un retour plus rapide
Validé bout en bout : micro faible -> détecté -> audio propre -> transcrit.

https://claude.ai/code/session_01YHMp3EKzr4s6o8w1ygxuUe
2026-06-13 15:45:33 +00:00
Claude 55ccef1340 Fiabilité : la diarisation ne peut plus bloquer ni casser la transcription
- Timeout de 5 s sur l'identification du locuteur (asyncio.wait_for) : si le
  modèle ECAPA tarde ou se bloque sur CPU, on ignore le locuteur mais le
  texte est transcrit et affiché quand même
- AGC du segmenteur protégé : une trame problématique renvoie l'audio brut
  au lieu d'interrompre le découpage
Testé : texte transcrit malgré un diariseur qui se bloque indéfiniment.

https://claude.ai/code/session_01YHMp3EKzr4s6o8w1ygxuUe
2026-06-13 15:37:23 +00:00
Claude 0fa8455f8f Micro : amplification serveur avant le VAD + diarisation stabilisée
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
2026-06-13 09:30:14 +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