Découvrez Eleven v4Découvrez Eleven v4, notre modèle le plus expressif à ce jour. Avec 3× plus de crédits inclus avec Creator+ jusqu’au 12 octobre

Aller au contenu

Qu’est-ce que la diarisation des locuteurs ? Fonctionnement et cas d’usage

Rédigé par
Jack Limebear
Publié
Dernière mise à jour

ÉcouterÉcouter cet article

La diarisation des locuteurs prend un flux audio comportant un nombre inconnu de locuteurs et produit une chronologie de segments étiquetés : locuteur A de 0:00 à 0:42, locuteur B de 0:42 à 1:15, puis à nouveau locuteur A à partir de 1:15. Le système ne sait pas qui sont les locuteurs, mais il sait qu’il s’agit de personnes différentes et conserve des étiquettes cohérentes tout au long de l’enregistrement.

C’est ce processus qui rend les contenus audio à plusieurs locuteurs exploitables. Les comptes rendus de réunion, les analyses de centres d’appels, les transcriptions d’entretiens, le montage de podcasts et les dossiers juridiques dépendent tous non seulement de ce qui a été dit, mais aussi de qui l’a dit. 

Ce guide explique le fonctionnement de la diarisation, ce qui la distingue de techniques connexes telles que la segmentation et l’identification, quels outils open source la prennent en charge et comment évaluer les performances d’un système de diarisation.

En résumé

  • La diarisation des locuteurs segmente un enregistrement audio selon la personne qui parle et produit des prises de parole étiquetées sans identifier les personnes par leur nom.
  • La diarisation des locuteurs diffère de la segmentation des locuteurs, qui détecte les changements de locuteur, et de l’identification des locuteurs, qui associe les voix à de vrais noms.
  • Les performances de la diarisation se mesurent avec le taux d’erreur de diarisation (DER) pour la précision globale et le taux d’erreur de Jaccard (JER) pour vérifier que cette précision se maintient pour chaque locuteur.

Qu’est-ce que la diarisation des locuteurs et comment fonctionne-t-elle ?

La diarisation des locuteurs consiste à diviser un flux audio en segments selon la personne qui parle. Une transcription avec diarisation attribue une identité de locuteur à chaque segment audio. En bref, elle répond à la question : « Qui a parlé, et à quel moment ? » 

La transcription brute d’une réunion vous donne les mots, tandis qu’une transcription diarizée indique que le locuteur 1 a posé la question, le locuteur 2 y a répondu et le locuteur 3 a interrompu la conversation à mi-chemin.

La plupart des systèmes de diarisation des locuteurs suivent un pipeline en quatre étapes :

Diarization pipeline: voice detection, segmentation, embeddings, clustering, and anonymous labels.

Examinons ces étapes plus en détail.

Détection d’activité vocale (VAD)

La détection d’activité vocale sépare la parole de tout le reste : le silence, le bruit de fond, la musique ou les clics de clavier. Seuls les segments audio contenant de la parole passent à l’étape suivante.

Toute erreur à cette étape se propage aux étapes suivantes.

Segmentation

Ces segments contenant de la parole sont ensuite divisés aux endroits où le locuteur est susceptible de changer, par exemple lors d’un changement de timbre vocal, d’une pause entre deux prises de parole ou d’une modification du schéma d’intonation. La plupart des systèmes détectent directement ces points de changement en comparant les caractéristiques acoustiques de part et d’autre d’une limite potentielle. 

Certains outils de segmentation découpent l’audio en courtes fenêtres uniformes, par exemple des segments de deux secondes, puis s’appuient sur l’étape de regroupement pour fusionner les fenêtres adjacentes appartenant au même locuteur.

Extraction d’embeddings

Chaque segment de parole est converti en embedding de locuteur, c’est-à-dire un vecteur numérique qui capture les caractéristiques vocales de la personne parlant dans ce segment. Les embeddings d’un même locuteur se regroupent dans l’espace vectoriel, tandis que ceux de locuteurs différents sont plus éloignés.

Regroupement

Les embeddings sont ensuite regroupés afin que les segments du même locuteur partagent une étiquette. Le système ne connaît généralement pas le nombre de locuteurs à l’avance : l’algorithme de regroupement doit donc l’inférer et déterminer si un segment dont le son diffère légèrement correspond à un nouveau locuteur ou à la même personne avec un autre ton.

Embeddings cluster same-speaker samples together, but speaker count is unknown in advance in speaker diarization

Le résultat est un ensemble d’étiquettes de locuteurs associées à des plages temporelles, généralement couplées à une transcription. Par exemple, une transcription diarizée d’un appel entre deux personnes se présente ainsi :

  • [speaker_0] Merci de nous appeler. Comment puis-je vous aider ?
  • [speaker_1] Bonjour, j’appelle au sujet de ma facture du mois dernier.
  • [speaker_0] Bien sûr, je vais la retrouver.

Les étiquettes sont anonymes et cohérentes en interne. Speaker_0 correspond à la même voix à chaque occurrence, mais le système ignore que speaker_0 s’appelle Fergal. L’attribution d’identités réelles est une tâche distincte, abordée ci-dessous.

Principales différences entre segmentation et identification des locuteurs

La segmentation et l’identification des locuteurs recoupent étroitement la diarisation, si bien que ces trois notions sont souvent confondues.

Chacune résout un problème légèrement différent. Il est donc important de comprendre cette distinction pour évaluer les outils.

Segmentation
Question it answers
Where do speaker changes occur?
Output
Change-point boundaries
Requires contextual information
No
Diarization
Question it answers
Who spoke when (anonymous labels)?
Output
Labeled segments (speaker_0, speaker_1)
Requires contextual information
No
Identification
Question it answers
Who are the speakers (real identities)?
Output
Named speakers matched to voiceprints
Requires contextual information
Yes

Comme nous l’avons expliqué plus haut, la segmentation des locuteurs est une étape précoce du pipeline de diarisation. Elle détecte les limites où l’on passe d’une voix à une autre, sans attribuer d’étiquette. La segmentation indique qu’un changement s’est produit à 0:42. La diarisation va plus loin en regroupant les segments obtenus et en produisant une sortie entièrement étiquetée : elle vous indique que la voix à 1:15 est la même que celle entendue au début de l’enregistrement.

L’identification des locuteurs est une capacité distincte de la diarisation, mais elle lui est souvent associée. Elle détermine qui sont réellement les locuteurs. Un système d’identification compare les voix à des empreintes vocales enregistrées, à partir d’une référence de locuteurs connus, pour renvoyer des identités. Après identification, speaker_0 et speaker_1 deviennent « Fergal » et « Eric ».

De nombreux produits combinent ces outils pour produire une transcription finale plus complète. Un outil de réunion peut le faire automatiquement, en récupérant par exemple le nom défini par une personne dans Teams ou Meet, afin d’attribuer les interventions de chaque participant sans vérification manuelle. 

Comparison of segmentation, speaker diarization, and identification; diarize first, then identify.

Outils et bibliothèques open source populaires pour la diarisation des locuteurs

Les outils open source de diarisation des locuteurs méritent d’être envisagés lorsque vous avez besoin de contrôle, de flexibilité ou d’un déploiement local. Le meilleur choix dépend du type d’audio que vous traitez, appels téléphoniques, réunions, podcasts ou diffusion, de vos exigences de latence et du temps d’ingénierie que vous pouvez y consacrer. 

Voici quelques-unes des options les plus populaires.

Pyannote.audio

Pyannote.audio est une boîte à outils basée sur PyTorch, conçue spécifiquement pour la diarisation des locuteurs et parmi les options open source les plus utilisées. Elle fournit des pipelines préentraînés couvrant toute la chaîne de diarisation, dont la VAD, la segmentation, les embeddings et le regroupement, ainsi que les composants nécessaires pour entraîner ou affiner des modèles sur vos propres données. 

Ses modèles préentraînés sont distribués via Hugging Face et souvent utilisés comme couche de diarisation dans de plus grands projets de transcription.

WhisperX

WhisperX associe Whisper d’OpenAI ASR à la diarisation et à l’alignement forcé. Whisper seul produit de bonnes transcriptions, mais n’attribue pas d’étiquettes de locuteur et ses horodatages ne sont qu’approximatifs. WhisperX ajoute l’alignement des horodatages au niveau du mot et intègre une diarisation basée sur pyannote, produisant des transcriptions où chaque mot comporte à la fois un horodatage précis et une étiquette de locuteur.

NVIDIA NeMo

NVIDIA NeMo intègre la diarisation à son vaste framework d’IA conversationnelle. Il fournit des modèles de diarisation entraînables, dont des approches de bout en bout capables de gérer les chevauchements de parole, et est conçu pour les équipes qui développent à grande échelle des systèmes de parole personnalisés sur une infrastructure GPU.

Chacun de ces outils exige que vous gériez l’infrastructure de diarisation, notamment le déploiement, la mise à l’échelle, le suivi et les mises à jour des modèles. Pour les équipes qui ne souhaitent pas assumer cette charge opérationnelle, les API gérées de diarisation offrent une solution plus simple. Elles peuvent s’intégrer aux workflows existants ou prendre en charge tout le pipeline de diarisation, ce qui les rend adaptées aux cas d’usage en production, tels que les analyses de support client, la transcription de réunions et le traitement de podcasts.

Diarisation en temps réel : défis et cas d’usage

La diarisation en temps réel est bien plus difficile que la diarisation d’un enregistrement terminé, car le système doit prendre des décisions avec un contexte incomplet.

Un système hors ligne examine l’intégralité de l’enregistrement avant de prendre une décision. Il peut comparer une voix à la deuxième minute à une voix à la quarantième minute et déterminer avec certitude qu’il s’agit du même locuteur, car les deux extraits sont disponibles simultanément. Un système en temps réel ne dispose jamais de ce luxe : il doit étiqueter la parole dès son arrivée, sans accéder à la suite et avec peu, voire aucune possibilité de réviser une décision prise. 

Cette absence de contexte futur rend trois problèmes bien plus difficiles à résoudre en temps réel :

  • Latence ou précision : sans possibilité d’analyser l’ensemble de la conversation, respecter des délais de réponse plus courts se fait directement au détriment de la précision.
  • Chevauchement de parole : lorsque plusieurs personnes parlent en même temps, un système capable de retraiter l’audio pourrait les distinguer. Un système en temps réel doit l’attribuer à une seule étiquette ou s’appuyer à la volée sur des modèles spécialisés dans la détection des chevauchements.
  • Énoncés courts : un simple « oui » ou « allez-y » fournit à peine assez de matière vocale au système et, sans contexte environnant, il doit tout de même attribuer immédiatement une étiquette.

Malgré cette difficulté, certaines applications ne peuvent pas attendre la fin d’un enregistrement. Sous-titrage en direct pour les réunions et les diffusions nécessite des étiquettes de locuteur au fur et à mesure que les personnes parlent. Les logiciels de centre d’appels qui fournissent des conseils aux agents pendant un appel doivent savoir en temps réel quels mots emploie le client. Les agents vocaux qui gèrent des appels avec plusieurs participants doivent déterminer sans délai qui pose quelle question. Dans chaque cas, un système légèrement moins précis mais immédiat est préférable à un système plus précis mais retardé.

Pour les charges de travail qui n’exigent pas réellement des étiquettes en temps réel, comme l’analytique, l’examen de conformité et la génération de transcriptions, la diarisation par lots reste le meilleur choix, car elle est nettement plus précise.

Comment évaluer les performances de la diarisation des locuteurs

Deux métriques sont essentielles pour mesurer la précision de la diarisation : le taux d’erreur de diarisation (DER), qui mesure la précision globale, et le taux d’erreur de Jaccard (JER), qui vérifie si cette précision se maintient pour chaque locuteur.

Le DER calcule précisément la part du temps total de parole attribuée de manière incorrecte. Il combine trois types d’erreurs :

  • Fausse détection de parole : le système a étiqueté un segment comme de la parole alors que personne ne parlait.
  • Parole manquée : quelqu’un parlait, mais le système a étiqueté le segment comme du silence.
  • Confusion de locuteur : la parole a été détectée, mais attribuée au mauvais locuteur.

DER = (fausse détection + parole manquée + confusion de locuteur) / durée totale de parole

Un DER de 10 % signifie que les erreurs représentent un dixième du temps total de parole, tous ces types d’erreurs confondus. Plus le score est faible, mieux c’est. Les scores ne sont comparables que s’ils sont mesurés sur les mêmes données et dans les mêmes conditions. Le DER varie fortement selon la qualité audio, le nombre de locuteurs et l’ampleur des chevauchements dans l’enregistrement.

Le taux d’erreur de Jaccard (JER) mesure séparément la précision de la diarisation pour chaque locuteur, puis calcule la moyenne sur tous les locuteurs. Pour chaque locuteur de référence, l’évaluateur associe l’étiquette de locuteur la plus proche attribuée par le système et compare le temps de chevauchement correct au temps total attribué à l’un ou l’autre locuteur.

Par exemple, imaginons une réunion de 60 minutes où le locuteur A parle pendant 50 minutes et le locuteur B pendant 10 minutes. Un système de diarisation étiquette correctement 48 des 50 minutes du locuteur A, mais seulement 4 des 10 minutes du locuteur B. Son DER global peut tout de même sembler relativement bon, car la majeure partie de la réunion est occupée par le locuteur A. Le JER accorde le même poids au mauvais résultat du locuteur B, car il évalue indépendamment les locuteurs A et B avant de calculer la moyenne de leurs scores.

JER_locuteur = 1 - (chevauchement_correct / (temps_réf + temps_syst - chevauchement_correct))

Le JER final correspond à la moyenne de ces taux d’erreur par locuteur :

JER = (1 / N) * Σ[JER_locuteur_i]  pour i = 1..N

Le suivi du DER et du JER offre une vision plus complète de la précision de la diarisation : le DER pour la précision globale et le JER pour vérifier qu’elle se maintient pour chaque participant, y compris les personnes qui parlent moins souvent.

Tester sur des données audio représentatives de la production

Lorsque vous évaluez un système de diarisation des locuteurs, calculez le DER et le JER sur des données audio correspondant à vos conditions de déploiement réelles : nombre habituel de locuteurs, qualité audio et niveau de conversations croisées. 

Les scores de référence publiés peuvent être mesurés sur des jeux de données propres et contrôlés, comme des enregistrements en studio, qui correspondent rarement au son réel d’enregistrements d’appels ou de réunions en direct. Un système performant dans les benchmarks peut malgré tout obtenir des résultats nettement moins bons sur des données audio réelles, bruyantes et avec chevauchements. Testez vos propres données avant de choisir un produit de diarisation.

Premiers pas avec ElevenAPI pour la diarisation des locuteurs

Si vous êtes prêt à développer une fonctionnalité de transcription compatible avec plusieurs locuteurs, Scribe v2 d’ElevenLabs rend la diarisation des locuteurs disponible via une seule API Speech to Text. Envoyez l’audio au point de terminaison avec diarize=true, et la réponse JSON attribue un ID de locuteur à chaque mot, pour un maximum de 32 locuteurs, dans plus de 90 langues et sur des fichiers allant jusqu’à 10 heures.

Deux options enrichissent la sortie de diarisation standard. Pour les enregistrements d’appels, detect_speaker_roles=true étiquette les locuteurs comme agent et client au lieu d’utiliser des numéros anonymes. Si votre Workspace contient des profils de locuteurs enregistrés, use_speaker_library=true peut comparer les locuteurs détectés aux voix enregistrées, réunissant diarisation et identification dans une seule requête. 

Un paramètre de seuil de diarisation vous permet d’ajuster le compromis entre une segmentation excessive et la fusion des locuteurs. Lorsque vos locuteurs sont déjà isolés sur des canaux audio distincts, comme dans les enregistrements d’appels stéréo, la transcription multicanale attribue les locuteurs par canal et évite entièrement la diarisation.

Le guide de démarrage rapide Speech to Text détaille la première intégration étape par étape. Pour les déploiements réglementés, la plateforme est conforme aux normes SOC 2, ISO 27001, PCI DSS L1 et HIPAA, avec hébergement des données en Europe et mode zéro rétention disponibles.

Prêt à intégrer la diarisation des locuteurs à vos systèmes ? Commencez par obtenir votre clé API ou consultez la documentation ElevenLabs pour en savoir plus.

FAQ

Rédigé par

Jack Limebear fait partie de l’équipe Growth, où il rédige et conçoit des contenus pour le blog et les pages d’analyses. Avant de rejoindre ElevenLabs, il a passé plus de dix ans à piloter la stratégie de contenu pour des organisations allant de start-ups SaaS en forte croissance à des entreprises du Fortune 500. Il est titulaire d’un master en littérature anglaise de l’Université de Cambridge.

Articles similaires

Créez avec l'audio IA de la plus haute qualité