feat: configurer le nombre max de locuteurs via DIARIZATION_MAX_SPEAKERS (défaut 8)

This commit is contained in:
Michael committed 2026-06-12 16:23:38 +02:00
1 parent 8dbc657d7d
commit a343c90340
4 files changed
+9

No files matched your search

+3
View File
@@ -19,3 +19,6 @@ DIARIZATION=off
# Seuil de similarité cosinus pour regrouper deux segments au même locuteur. # Seuil de similarité cosinus pour regrouper deux segments au même locuteur.
# Plus bas = plus permissif (risque de fusion), plus haut = plus strict (risque de split). # Plus bas = plus permissif (risque de fusion), plus haut = plus strict (risque de split).
DIARIZATION_THRESHOLD=0.70 DIARIZATION_THRESHOLD=0.70
# Nombre maximum de locuteurs à identifier (défaut : 8) pour éviter les faux positifs.
DIARIZATION_MAX_SPEAKERS=8
+2
View File
@@ -21,6 +21,7 @@ ASR_API_KEY = os.environ.get("ASR_API_KEY", "sk-local")
ASR_LANGUAGE = os.environ.get("ASR_LANGUAGE", "").strip() ASR_LANGUAGE = os.environ.get("ASR_LANGUAGE", "").strip()
DIARIZATION = os.environ.get("DIARIZATION", "off").strip().lower() == "on" DIARIZATION = os.environ.get("DIARIZATION", "off").strip().lower() == "on"
DIARIZATION_THRESHOLD = float(os.environ.get("DIARIZATION_THRESHOLD", "0.70")) DIARIZATION_THRESHOLD = float(os.environ.get("DIARIZATION_THRESHOLD", "0.70"))
DIARIZATION_MAX_SPEAKERS = int(os.environ.get("DIARIZATION_MAX_SPEAKERS", "8"))
db: aiosqlite.Connection | None = None db: aiosqlite.Connection | None = None
http: httpx.AsyncClient | None = None http: httpx.AsyncClient | None = None
@@ -149,6 +150,7 @@ async def ws_transcribe(ws: WebSocket):
diarizer = SpeakerDiarizer( diarizer = SpeakerDiarizer(
model=embedding_model, model=embedding_model,
threshold=DIARIZATION_THRESHOLD, threshold=DIARIZATION_THRESHOLD,
max_speakers=DIARIZATION_MAX_SPEAKERS,
) )
while True: while True:
+1
View File
@@ -16,6 +16,7 @@ services:
# Diarisation des locuteurs (off par défaut pour rétrocompatibilité) # Diarisation des locuteurs (off par défaut pour rétrocompatibilité)
- DIARIZATION=${DIARIZATION:-off} - DIARIZATION=${DIARIZATION:-off}
- DIARIZATION_THRESHOLD=${DIARIZATION_THRESHOLD:-0.70} - DIARIZATION_THRESHOLD=${DIARIZATION_THRESHOLD:-0.70}
- DIARIZATION_MAX_SPEAKERS=${DIARIZATION_MAX_SPEAKERS:-8}
volumes: volumes:
- liveflow-data:/data - liveflow-data:/data
depends_on: depends_on:
+3
View File
@@ -19,6 +19,8 @@ Vérification de la cohérence de tous les fichiers (backend et frontend) et tes
- [x] Modifier `docker-compose.yml` — passer les variables d'environnement de diarisation - [x] Modifier `docker-compose.yml` — passer les variables d'environnement de diarisation
- [x] Vérification de la cohérence de tous les fichiers et validation - [x] Vérification de la cohérence de tous les fichiers et validation
- [x] Correction de tout bug ou problème détecté - [x] Correction de tout bug ou problème détecté
- [x] Rendre configurable le nombre maximal de locuteurs (DIARIZATION_MAX_SPEAKERS, défaut 8) dans main.py, .env.example et docker-compose.yml
## Progress Log ## Progress Log
- Création du module `diarizer.py` pour l'extraction des embeddings et le clustering. - Création du module `diarizer.py` pour l'extraction des embeddings et le clustering.
@@ -28,3 +30,4 @@ Vérification de la cohérence de tous les fichiers (backend et frontend) et tes
- Validation et commit des modifications pour le sélecteur de micro et la diarisation. - 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. - 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. - 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.