Polydesk-logotype
Polydesk.ai — Header

Speaker Diarization (Diarisation des Locuteurs)

La speaker diarization est le processus qui segmente automatiquement un enregistrement audio pour déterminer « qui parle quand », en attribuant chaque portion de parole à un locuteur distinct sans connaître préalablement les identités des intervenants.

Imaginez la transcription d’une réunion de 8 personnes : sans diarization, vous obtenez un mur de texte sans savoir qui a dit quoi. Avec la diarization, chaque phrase est étiquetée (« Locuteur A », « Locuteur B »), ce qui rend la transcription exploitable pour des résumés, de l’analyse de sentiment par participant ou de la conformité réglementaire. Selon une étude récente, 76 % des entreprises intègrent désormais l’intelligence conversationnelle dans plus de la moitié de leurs interactions clients, et la diarization est un composant structurel de ces pipelines.

Speaker Diarization en bref
Question posée
« Qui parle quand ? » (sans connaître les locuteurs)
Métrique
DER (Diarization Error Rate)
Différent de
Speaker identification (qui est-ce ?), speech recognition (quoi est dit ?)
Modèles open source
Pyannote 4.0 / community-1, NVIDIA NeMo Sortformer, WhisperX, SpeechBrain
API commerciales
AssemblyAI, Gladia Solaria-1, Deepgram, pyannoteAI precision-2
Enrôlement requis
Non (fonctionne immédiatement sur tout audio)

Pourquoi la diarization est essentielle

La reconnaissance vocale convertit l’audio en texte. Mais sans attribution des locuteurs, ce texte est inexploitable dans la plupart des cas d’usage professionnels. La diarization est le composant qui transforme une transcription brute en donnée structurée et actionnable.

Sans diarization, impossible de savoir qui a formulé un engagement lors d’une réunion, quel agent a dit quoi à quel client dans un centre de contact, ou qui a posé telle question dans une interview. C’est pour cette raison que la diarization n’est pas une fonctionnalité cosmétique : c’est un composant structurel de tout pipeline vocal de production.

Comment fonctionne la speaker diarization

Le pipeline classique de diarization comporte quatre étapes, exécutées séquentiellement.

1. Détection d’activité vocale (VAD)

La première étape consiste à identifier les segments de l’audio qui contiennent de la parole et à éliminer les silences et le bruit de fond. Un modèle de Voice Activity Detection (VAD) parcourt l’audio et produit une timeline binaire : parole / pas de parole. Cette étape réduit considérablement la quantité de données à traiter dans les étapes suivantes.

2. Segmentation

L’audio est découpé en segments courts (typiquement 0,5 à 10 secondes) où un seul locuteur est supposé parler. Le modèle de segmentation détecte les points de changement de locuteur en analysant les variations dans les caractéristiques acoustiques. Les systèmes modernes comme Pyannote utilisent des réseaux de neurones (PyanNet) spécialement entraînés pour cette tâche, capables de détecter aussi la parole chevauchée (overlap), quand deux personnes parlent en même temps.

3. Extraction d’embeddings

Pour chaque segment, le système extrait un vecteur d’embedding qui capture les caractéristiques vocales du locuteur (timbre, pitch, patterns spectraux, style de parole). Ces embeddings sont produits par des réseaux de neurones profonds entraînés sur des tâches de vérification du locuteur. Pyannote 4.0 utilise les embeddings WeSpeaker, tandis que NVIDIA NeMo emploie des extracteurs basés sur les architectures TitaNet et ECAPA-TDNN.

La qualité des embeddings est critique : si deux locuteurs avec des voix similaires produisent des embeddings proches, le système aura du mal à les distinguer. La précision diminue significativement quand les segments font moins d’une seconde, car le modèle n’a pas assez de données pour extraire des caractéristiques discriminantes.

4. Clustering

Les embeddings sont regroupés en clusters, chaque cluster correspondant à un locuteur. Les algorithmes de clustering les plus utilisés sont le clustering hiérarchique agglomératif (AHC) et l’analyse discriminante linéaire probabiliste (PLDA). Le système doit estimer le nombre de locuteurs (qui n’est généralement pas connu à l’avance), ce qui est l’un des aspects les plus difficiles de la diarization.

La stratégie courante consiste à surestimer initialement le nombre de locuteurs, puis à fusionner les clusters trop similaires. Cette approche est préférable à la sous-estimation, car il est plus facile de combiner deux clusters qui auraient dû être un seul locuteur que de séparer un cluster contenant deux locuteurs mélangés.

Approche end-to-end vs pipeline Le pipeline classique (VAD → segmentation → embeddings → clustering) est encore dominant, mais des approches end-to-end émergent. NVIDIA NeMo a introduit Sortformer, une architecture Transformer à 18 couches qui traite la diarization comme un problème unifié, éliminant les étapes intermédiaires. La recherche récente SpeakerLM (arXiv, janvier 2026) combine diarization et ASR dans un seul LLM multimodal, ce qui pourrait devenir le standard à terme.

DER : la métrique de performance

Le Diarization Error Rate (DER) est la métrique standard pour évaluer les systèmes de diarization. Il combine trois types d’erreurs :

False alarm (fausse alarme) : le système détecte de la parole là où il n’y en a pas. Missed detection (détection manquée) : le système ne détecte pas de la parole là où il y en a. Speaker confusion (confusion de locuteur) : la parole est correctement détectée mais attribuée au mauvais locuteur.

Le DER est exprimé en pourcentage : plus il est bas, mieux c’est. Les meilleurs systèmes actuels atteignent un DER d’environ 10 à 11 % sur les benchmarks standards avec Pyannote 3.1/4.0. Le modèle premium pyannoteAI precision-2 est environ 20 % plus précis que la version open source.

Attention aux benchmarks : le DER varie énormément selon les conditions audio. Un système qui atteint 10 % DER sur des enregistrements de studio peut afficher 30 %+ sur des conversations téléphoniques bruitées ou des réunions avec beaucoup de parole chevauchée.

Les modèles de diarization en 2026

Modèle Type DER indicatif Architecture Point fort
Pyannote community-1 (4.0) Nouveau Open Source ~10-11 % PyanNet + WeSpeaker + clustering Meilleur open source, mode exclusif pour STT
pyannoteAI precision-2 Commercial ~8-9 % (estimé) Propriétaire (basé sur Pyannote) 20 % plus précis, 2x plus rapide que l’open source
NVIDIA NeMo Sortformer Open Source Compétitif Transformer 18 couches, end-to-end GPU NVIDIA, scalabilité, end-to-end
WhisperX Open Source Variable Whisper + Pyannote + alignement forcé Transcription + diarization combinées
SpeechBrain Open Source Variable PyTorch, 200+ recettes Recherche, personnalisation poussée
Kaldi Open Source Obsolescent Pipeline classique (x-vectors) Historique académique (dépassé par les modèles modernes)

Pyannote : la référence open source

Développé par Hervé Bredin au CNRS (France), Pyannote est le toolkit de diarization le plus utilisé au monde : plus de 8 000 followers GitHub, 140 000 utilisateurs enregistrés et 45 millions de téléchargements mensuels sur Hugging Face. La version community-1 (Pyannote 4.0), annoncée en 2026, apporte des améliorations significatives sur la confusion de locuteurs et le comptage des participants, tout en conservant les performances de segmentation de la version 3.1.

L’innovation clé de community-1 est le mode de diarization exclusive, conçu pour simplifier l’intégration avec les systèmes de transcription (Whisper, etc.). Dans ce mode, un seul locuteur est actif à chaque instant, ce qui élimine les problèmes d’alignement temporel entre les timestamps de la diarization et ceux de la transcription.

from pyannote.audio import Pipeline

pipeline = Pipeline.from_pretrained(
    "pyannote/speaker-diarization-community-1",
    token="votre-token-huggingface"
)

output = pipeline("/chemin/vers/audio.wav")

for turn, speaker in output.exclusive_speaker_diarization:
    print(f"{speaker} parle entre {turn.start:.1f}s et {turn.end:.1f}s")

NVIDIA NeMo : la scalabilité

Le framework NeMo de NVIDIA propose un système de diarization en cascade (VAD → extracteur d’embeddings → clustering → diarisation neuronale TS-VAD) et une approche end-to-end (Sortformer). Le Sortformer utilise une architecture Transformer à 18 couches qui traite la diarization comme un problème unique, sans les étapes intermédiaires du pipeline classique. NeMo est le choix naturel pour les déploiements à grande échelle sur infrastructure GPU NVIDIA.

WhisperX : transcription + diarization

WhisperX combine Whisper (transcription) avec Pyannote (diarization) et un alignement forcé pour produire des transcriptions avec attribution de locuteurs et des timestamps au niveau du mot. C’est la solution idéale quand vous avez besoin à la fois du texte et de l’attribution des locuteurs. Le compromis : la qualité de la diarization dépend de Pyannote, et le pipeline complet est plus lourd à exécuter.

API commerciales

API Diarization intégrée Streaming Langues Prix indicatif
AssemblyAI Oui (embeddings propriétaires) Oui 99+ ≈ 0,15 $/heure
Gladia Solaria-1 Oui (basée sur Pyannote) Oui (103 ms latence) 100+ 0,55 $/heure
Deepgram Oui Oui 50+ ≈ 4,30 $/1000 min
pyannoteAI precision-2 Diarization uniquement (pas d’ASR) Non Toutes Variable
Azure Speech Oui Oui 140+ Variable

Cas d’usage

Transcription de réunions

C’est le cas d’usage le plus courant. Les outils comme Fireflies.ai, Otter.ai, Notta et les fonctions intégrées de Zoom, Teams et Google Meet utilisent la diarization pour attribuer chaque segment de parole au bon participant. Fireflies atteint 95 %+ de précision dans des conditions audio optimales avec jusqu’à 50 locuteurs et 100+ langues.

Centres de contact

Séparer la voix de l’agent et celle du client est indispensable pour le quality monitoring, le coaching d’agents et l’analyse de conformité. La diarization permet de mesurer le ratio parole agent/client, d’analyser le sentiment de chaque partie, et de détecter les moments problématiques (interruptions excessives, silences prolongés).

Médias et podcasts

Le sous-titrage automatique de podcasts, d’interviews et d’émissions télévisées nécessite l’attribution des paroles aux bons intervenants. La diarization permet aussi l’indexation et la recherche dans les archives audio (« trouver tous les passages où l’invité X parle de tel sujet »).

Documentation clinique

Dans les consultations médicales ou les rondes cliniques, séparer la voix du médecin, du patient et des autres intervenants est essentiel pour structurer les notes cliniques et respecter les exigences de documentation.

Forensique

Segmenter et identifier les locuteurs dans des écoutes téléphoniques, des enregistrements de surveillance ou des preuves audio judiciaires. Combinée avec la speaker identification, la diarization permet de retrouver les interventions d’un suspect dans des heures d’enregistrement.

Défis techniques

La parole chevauchée (overlapping speech). Quand deux personnes parlent en même temps, les modèles de segmentation peinent à attribuer correctement les segments. C’est l’une des principales sources d’erreur de diarization. Pyannote intègre un détecteur de parole chevauchée dédié (Powerset multi-class segmentation), mais la précision reste inférieure sur ces segments.

Les voix similaires. Deux locuteurs avec des voix acoustiquement proches (même genre, même tranche d’âge, même accent) produisent des embeddings similaires, ce qui complique le clustering. Augmenter la durée des segments analysés aide, mais ne résout pas entièrement le problème.

Le nombre de locuteurs inconnu. Estimer correctement le nombre de locuteurs est un problème ouvert. Surestimer génère des labels parasites ; sous-estimer fusionne des locuteurs distincts. Les erreurs de comptage se propagent dans tout le pipeline.

La persistance des labels. Les labels attribués par la diarization (« Locuteur 1 », « Locuteur 2 ») ne persistent pas entre fichiers audio. Le « Locuteur 1 » d’un enregistrement A n’a aucun lien avec le « Locuteur 1 » d’un enregistrement B. Pour une identification persistante, il faut combiner la diarization avec la speaker identification (qui nécessite un enrôlement préalable).

La qualité audio. Compression téléphonique, bruit de fond, réverbération de salle, distance au microphone : tous ces facteurs dégradent la qualité des embeddings et donc la précision de la diarization. Les benchmarks comme DIHARD sont conçus pour refléter ces conditions réalistes, contrairement aux benchmarks de laboratoire.

Bonnes pratiques pour améliorer la diarization Utilisez des microphones directionnels ou individuels quand c’est possible. Réduisez le bruit de fond avant le traitement. Visez des segments d’au moins 1 seconde (la précision chute en dessous). Si vous connaissez le nombre de locuteurs à l’avance, passez cette information au modèle. Et testez toujours sur de l’audio représentatif de votre cas d’usage réel, pas sur les benchmarks.

Open source vs API : comment choisir

Pyannote community-1 (open source) est le meilleur choix pour les équipes qui ont des compétences ML, qui veulent personnaliser le pipeline, ou qui ont des contraintes de vie privée imposant un traitement on-premise. Il faut un GPU pour des performances raisonnables.

NVIDIA NeMo est recommandé pour les déploiements à grande échelle sur infrastructure GPU NVIDIA. Son approche end-to-end (Sortformer) est prometteuse pour simplifier le pipeline.

WhisperX est idéal si vous avez besoin de transcription ET diarization dans un seul pipeline, avec des timestamps au niveau du mot.

Les API commerciales (AssemblyAI, Gladia, Deepgram) éliminent la complexité de configuration et offrent une diarization optimisée intégrée à la transcription. Le coût est par heure d’audio (0,15 à 0,55 $/h), mais le gain en temps de développement et en maintenance est significatif.

Verdict

La speaker diarization est passée d’un problème de recherche à un composant de production déployé à grande échelle. Pyannote community-1 est le standard open source incontesté, développé en France (CNRS) et utilisé par des milliers de produits commerciaux dans le monde.

Pour une intégration rapide en production : utilisez une API comme AssemblyAI ou Gladia qui intègre transcription + diarization dans un seul appel. Pour un contrôle total et un déploiement on-premise : Pyannote community-1 avec un GPU. Pour la recherche et l’expérimentation : SpeechBrain offre la flexibilité maximale.

Le futur de la diarization est dans les modèles end-to-end (SpeakerLM, Sortformer) qui unifieront transcription, diarization et identification du locuteur dans un seul modèle. Mais pour les déploiements en production aujourd’hui, le pipeline classique reste le plus fiable et le mieux compris.


Questions fréquentes sur la speaker diarization

Quelle est la différence entre speaker diarization et speaker identification ?

La diarization segmente un audio multi-locuteurs pour déterminer « qui parle quand », sans connaître les identités des participants. Elle produit des labels génériques (Locuteur 1, Locuteur 2). La speaker identification associe une voix à une identité connue (Jean Dupont, Marie Martin) en comparant avec des profils vocaux préalablement enregistrés. La diarization ne nécessite aucun enrôlement et fonctionne immédiatement sur n’importe quel audio. L’identification nécessite que chaque personne ait fourni un échantillon vocal. Les deux technologies sont complémentaires : la diarization segmente, l’identification attribue des noms.

Quel DER (Diarization Error Rate) est considéré comme « bon » ?

Cela dépend fortement du contexte. Sur des enregistrements de studio avec 2 à 3 locuteurs bien séparés, un DER inférieur à 10 % est atteignable. Sur des réunions en salle avec 5+ participants, de la parole chevauchée et du bruit ambiant, 15 à 20 % est réaliste. Sur des enregistrements téléphoniques compressés, 20 à 30 % est courant. Le benchmark DIHARD, conçu pour refléter des conditions réalistes, voit des DER nettement supérieurs aux benchmarks de laboratoire. L’important est de tester sur des données représentatives de votre cas d’usage, pas sur les benchmarks standards.

Whisper fait-il de la diarization nativement ?

Non. Whisper (OpenAI) est un modèle de transcription (ASR) qui ne gère pas la diarization. Il ne sait pas « qui parle », seulement « quoi est dit ». Pour combiner transcription Whisper et diarization, utilisez WhisperX (qui intègre Pyannote pour la diarization et un alignement forcé pour les timestamps) ou envoyez l’audio à une API comme AssemblyAI ou Gladia qui intègre les deux fonctionnalités.

La diarization fonctionne-t-elle en temps réel ?

Oui, mais avec des compromis. Les API commerciales comme AssemblyAI et Gladia supportent la diarization en streaming. Pyannote peut traiter l’audio avec un facteur temps réel de 2,5 % sur GPU (soit 40x plus rapide que le temps réel), ce qui est suffisant pour le quasi temps réel. Le vrai défi du streaming est que les décisions de clustering doivent être prises avec un contexte limité (on ne connaît pas encore les locuteurs futurs), ce qui peut dégrader la précision par rapport au traitement batch complet.

Combien de locuteurs la diarization peut-elle gérer ?

La plupart des systèmes modernes gèrent correctement 2 à 10 locuteurs. Au-delà de 10, la précision se dégrade car le nombre de voix similaires augmente et le clustering devient plus complexe. Des outils comme Fireflies supportent jusqu’à 50 locuteurs en théorie, mais les résultats sont meilleurs avec moins de participants. Pour les conversations téléphoniques à 2 locuteurs (agent + client), la précision est généralement excellente. Pour les réunions à 4-8 participants, elle est bonne. Au-delà, attendez-vous à davantage d’erreurs de confusion.

Polydesk.ai — Footer