Aller au contenu

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

Rédigé par
Jack Limebear
Publié

ÉcouterÉcouter cet article

La diarisation des locuteurs traite un flux audio dont le nombre d’intervenants est inconnu et produit une chronologie de segments étiquetés : locuteur A de 0:00 à 0:42, locuteur B de 0:42 à 1:15, puis de nouveau le locuteur A à partir de 1:15. Le système ne connaît pas l’identité des intervenants, mais 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 intervenants 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 nécessitent tous de savoir non seulement ce qui a été dit, mais aussi qui l’a dit. 

Ce guide explique le fonctionnement de la diarisation, ses différences avec des techniques associées comme la segmentation et l’identification, les outils open source disponibles et les méthodes d’évaluation de ses performances.

En résumé

  • La diarisation des locuteurs segmente un enregistrement audio selon la personne qui parle et produit des tours de parole étiquetés, sans identifier les personnes par leur nom.
  • La diarisation des locuteurs se distingue de la segmentation des locuteurs, qui détecte les changements d’intervenant, et de l’identification des locuteurs, qui associe les voix à des noms réels.
  • 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 cette précision pour chaque intervenant.

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

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

La transcription brute d’une réunion restitue 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 en cours de route.

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 distingue la parole de tout le reste : silences, bruit de fond, musique ou frappes au clavier. Seuls les segments audio contenant réellement 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 tours de parole ou d’une variation de hauteur. 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 frontière potentielle. 

Certains outils de segmentation découpent l’audio en courtes fenêtres uniformes, par exemple 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, soit un vecteur numérique qui capture les caractéristiques vocales de la personne qui parle 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 même étiquette. Le système ne connaît généralement pas le nombre d’intervenants à l’avance : l’algorithme de regroupement doit donc l’inférer, en déterminant si un segment au son légèrement différent 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 accompagné d’une transcription. Par exemple, une transcription diarizée d’un appel entre deux personnes se présente ainsi :

  • [speaker_0] Merci de votre appel. Comment puis-je vous aider ?
  • [speaker_1] Bonjour, j’appelle au sujet de ma facture du mois dernier.
  • [speaker_0] Bien sûr, je regarde cela.

Les étiquettes sont anonymes et cohérentes en interne. Speaker_0 désigne la même voix à chaque apparition, mais le système ne sait pas que speaker_0 s’appelle Fergal. Associer ces étiquettes à des identités réelles est une tâche différente, abordée ci-dessous.

Principales différences entre segmentation et identification des locuteurs

La segmentation des locuteurs et l’identification des locuteurs sont étroitement liées à la diarisation ; les trois notions sont donc souvent confondues.

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

Comme expliqué plus haut, la segmentation des locuteurs est une étape précoce de la diarisation. Elle détecte les frontières où le locuteur passe d’une voix à une autre, sans attribuer d’étiquette. La segmentation indique qu’un changement est intervenu à 0:42. La diarisation va plus loin en regroupant les segments obtenus et en produisant une sortie entièrement étiquetée : elle 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 souvent combinée à celle-ci. Elle détermine l’identité réelle des intervenants. Un système d’identification compare les voix à des empreintes vocales enregistrées et s’appuie sur 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, notamment à partir d’informations telles que le nom défini dans Teams ou Meet, afin d’attribuer les contributions de chaque participant par son nom, 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 sont à envisager lorsque vous avez besoin de contrôle, de flexibilité ou d’un déploiement local. Le meilleur choix dépend du type d’audio traité — 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 répandues.

Pyannote.audio

Pyannote.audio est une boîte à outils basée sur PyTorch, conçue spécifiquement pour la diarisation des locuteurs et comptant parmi les options open source les plus utilisées. Elle fournit des pipelines préentraînés couvrant l’ensemble de la chaîne de diarisation, notamment 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 couramment utilisés comme couche de diarisation dans des projets de transcription plus vastes.

WhisperX

WhisperX combine la transcription Whisper d’OpenAI avec la diarisation et l’alignement forcé. Whisper produit à lui seul des transcriptions solides, mais n’attribue pas d’étiquettes de locuteurs et ses horodatages ne sont qu’approximatifs. WhisperX ajoute un alignement des horodatages au niveau du mot et intègre une diarisation basée sur pyannote, pour produire des transcriptions où chaque mot possède un horodatage précis et une étiquette de locuteur.

NVIDIA NeMo

NVIDIA NeMo intègre la diarisation dans son framework plus large d’IA conversationnelle. Il propose des modèles de diarisation entraînables, dont des approches de bout en bout qui gèrent les chevauchements de parole, et s’adresse aux équipes qui créent des systèmes vocaux personnalisés à grande échelle sur une infrastructure GPU.

Chacun de ces outils exige de gérer l’infrastructure de diarisation, y compris le déploiement des modèles, la mise à l’échelle, la supervision et les mises à jour. Pour les équipes qui ne souhaitent pas assumer cette charge opérationnelle, les API de diarisation de la parole gérées offrent une alternative plus simple. Elles s’intègrent aux workflows existants ou prennent en charge l’ensemble du pipeline de diarisation, ce qui les rend adaptées aux cas d’usage en production, comme l’analyse du 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 nettement plus difficile que la diarisation d’un enregistrement finalisé, 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 toute décision. Il peut comparer une voix à la deuxième minute à une voix à la quarantième et déterminer avec fiabilité qu’il s’agit du même locuteur, car les deux extraits sont disponibles simultanément. Un système en temps réel ne bénéficie pas de cet avantage : il doit étiqueter la parole dès son arrivée, sans accès à la suite et avec peu, voire aucune possibilité de réviser une décision prise. 

Cette absence de contexte futur complique particulièrement la résolution de trois problèmes en temps réel :

  • Latence ou précision : sans pouvoir analyser l’ensemble de la conversation, réduire les délais de réponse 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’associer à une seule étiquette ou recourir immédiatement à des modèles spécialisés dans la gestion des chevauchements.
  • Énoncés courts : un bref « oui » ou « allez-y » donne à peine assez de matière vocale au système. Sans contexte environnant, il doit pourtant attribuer une étiquette immédiatement.

Malgré cette difficulté, certaines applications ne peuvent pas attendre la fin d’un enregistrement.Le sous-titrage en direct pour les réunions et les diffusions nécessite des étiquettes de locuteurs à mesure que les personnes parlent. Les logiciels de centre d’appels qui fournissent des recommandations 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 suivre sans délai qui demande quoi. Dans chaque cas, un système immédiat mais légèrement moins précis est préférable à un système plus précis mais tardif.

Pour les charges de travail qui n’exigent pas réellement d’étiquettes en temps réel, comme l’analyse, la revue 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 alarme de parole : le système a étiqueté un segment comme de la parole alors que personne ne parlait.
  • Parole manquée : une personne parlait, mais le système a étiqueté le segment comme un silence.
  • Confusion entre locuteurs : la parole a été détectée, mais attribuée au mauvais locuteur.

DER = (fausse alarme + parole manquée + confusion entre locuteurs) / 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 il 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’importance 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 pour l’ensemble des locuteurs. Pour chaque locuteur de référence, l’évaluateur associe l’étiquette de locuteur la plus proche produite par le système et compare leur durée de chevauchement correcte au temps total attribué à l’un ou l’autre.

Prenons l’exemple d’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 sembler relativement bon, car le locuteur A occupe la majeure partie de la réunion. Le JER donne le même poids au mauvais résultat du locuteur B, car il évalue indépendamment les locuteurs A et B avant de faire la moyenne de leurs scores.

JER_speaker = 1 - (correct_overlap / (ref_time + sys_time - correct_overlap))

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

JER = (1 / N) * Σ[JER_speaker_i] ou i = 1..N

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

Tester sur des contenus audio représentatifs de la production

Lors de l’évaluation d’un système de diarisation des locuteurs, calculez le DER et le JER sur des contenus audio correspondant à vos conditions de déploiement réelles : nombre habituel de locuteurs, qualité audio et niveau de diaphonie. 

Les résultats publiés sur des benchmarks peuvent être mesurés sur des jeux de données propres et contrôlés, comme des enregistrements en studio, qui correspondent rarement aux conditions réelles d’appels ou de réunions en direct. Un système performant sur des benchmarks peut néanmoins être nettement moins performant sur des contenus audio réels, bruités et marqués par des chevauchements. Testez vos propres données avant d’adopter un produit de diarisation.

Premiers pas avec ElevenAPI pour la diarisation des locuteurs

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

Deux options étendent la sortie standard de diarisation. Pour les enregistrements d’appels, detect_speaker_roles=true étiquette les locuteurs comme agent et client plutôt qu’avec des numéros anonymes. Si votre Workspace contient des profils de locuteurs enregistrés, use_speaker_library=true peut associer les locuteurs détectés à des voix enregistrées, combinant diarisation et identification dans une seule requête. 

Un paramètre de seuil de diarisation vous permet d’ajuster le compromis entre une séparation excessive et la fusion des locuteurs. Lorsque vos locuteurs sont déjà isolés sur des canaux audio distincts, par exemple dans des 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 un mode sans conservation des données.

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

Articles similaires

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