10 mars 2023

Qui a parlé quand : Choisir le bon outil de diarisation des locuteurs

Les contributeurs
Philippe Moussali
Ingénieur en machine learning
Aucun élément trouvé.
S'abonner à la newsletter
Partager cet article

Introduction

Ce billet de blog est dérivé de sa version interactive sur Hugging Face Spaces. Vous pouvez continuer à lire cet article si vous souhaitez profiter des avantages de l'utilisation de plusieurs exemples ou tester certains outils de diarisation sur vos propres échantillons audio.

Illustration de la diarisation de l'orateur

Avec l'augmentation des applications des systèmes automatisés de de reconnaissance vocale (ASR)la capacité à diviser un flux audio vocal avec plusieurs locuteurs en segments individuels associés à chaque personne est devenue une partie cruciale de la compréhension des données vocales.

Dans cet article de blog, nous allons examiner différents frameworks open source pour la diarisation du locuteur et vous fournir un guide pour choisir celui qui convient le mieux à votre cas d'utilisation.

Avant d'entrer dans les détails techniques, les bibliothèques et les outils, commençons par comprendre ce qu'est la diarisation des orateurs et comment elle fonctionne !

Qu'est-ce que la diarisation de l'orateur ? ️

La diarisation des orateurs vise à répondre à la question suivante "qui a parlé quand". En bref : les algorithmes de diarisation décomposent un flux audio de plusieurs locuteurs en segments correspondant aux locuteurs individuels.

En combinant les informations issues de la diarisation avec les transcriptions ASR, nous pouvons transformer la transcription générée en un format plus lisible et interprétable pour les humains et qui peut être utilisé pour d'autres tâches NLP en aval.

Processus de combinaison des résultats de l'ASR et de la diarisation du locuteur sur un signal de parole pour générer une transcription du locuteur.

Illustrons cela par un exemple. Nous disposons de l'enregistrement d'une conversation téléphonique informelle entre deux personnes. Vous pouvez voir à quoi ressemblent les différentes transcriptions lorsque nous transcrivons la conversation avec et sans diarisation.

En générant une transcription tenant compte du locuteur, nous pouvons plus facilement interpréter la conversation générée par rapport à une transcription générée sans diarisation. C'est beaucoup plus net, non ?

Mais que puis-je faire avec ces transcriptions qui tiennent compte du locuteur ?

Les transcriptions tenant compte du locuteur peuvent constituer un outil puissant pour l'analyse des données vocales :

  • Nous pouvons utiliser les transcriptions pour analyser le sentiment de chaque locuteur en utilisant l'analyse du sentiment sur les transcriptions audio et textuelles.
  • Another use case is telemedicine, where we might identify the <doctor> and <patient> tags on the transcription to create an accurate transcript and attach it to the patient file or EHR system.
  • Les plateformes de recrutement peuvent utiliser la journalisation du locuteur pour analyser les appels téléphoniques et vidéo de recrutement. Cela leur permet de diviser et de classer les candidats en fonction de leurs réponses à certaines questions, sans avoir à réécouter les enregistrements.

Maintenant que nous avons vu l'importance de la diarisation du locuteur et certaines de ses applications, il est temps de découvrir comment nous pouvons mettre en œuvre des flux de travail de diarisation sur nos données audio.

Le flux de travail d'un système de diarisation de l'orateur

L'élaboration de flux de travail robustes et précis pour la diarisation des locuteurs n'est pas une tâche triviale. Les données audio du monde réel sont désordonnées et complexes en raison de nombreux facteurs, tels qu'un arrière-plan bruyant, plusieurs locuteurs parlant en même temps et des différences subtiles entre les voix des locuteurs en termes de hauteur et de ton.

En outre, les systèmes de diarisation des locuteurs souffrent souvent d'une inadéquation entre les domaines, c'est-à-dire qu'un modèle basé sur les données d'un domaine spécifique fonctionne mal lorsqu'il est appliqué à un autre domaine.

Dans l'ensemble, la diarisation des locuteurs n'est pas une mince affaire. Les systèmes actuels de diarisation du locuteur peuvent être divisés en deux catégories : Les systèmes traditionnels et les systèmes de bout en bout. Voyons comment ils fonctionnent :

Systèmes traditionnels de diarisation

Ceux-ci consistent en de nombreux sous-modules indépendants qui sont optimisés individuellement :

  • Détection de la parole : La première étape consiste à identifier la parole et à éliminer les signaux non vocaux à l'aide d'un algorithme de détection de l'activité vocale (VAD).
  • Segmentation de la parole : La sortie du VAD est ensuite segmentée en petits segments de quelques secondes (généralement 1 à 2 secondes).
  • Incorporation de la parole : Un réseau neuronal pré-entraîné à la reconnaissance du locuteur est utilisé pour dériver une représentation de haut niveau des segments de parole. Ces représentations vectorielles résument les caractéristiques de la voix (c'est-à-dire l'empreinte vocale).
  • Regroupement : Après avoir extrait les enregistrements de segments, nous devons regrouper les enregistrements de la parole à l'aide d'un algorithme de regroupement (par exemple K-Means ou regroupement spectral). Le regroupement produit les résultats de diarisation souhaités, qui consistent à identifier le nombre de locuteurs uniques (dérivé du nombre de regroupements uniques) et à attribuer une étiquette de locuteur à chaque encastrement (ou segment de parole).

Processus d'identification des segments de locuteurs à partir de l'intégration de l'activité vocale.

Systèmes de diarisation de bout en bout

Ici, les différents sous-modules du système traditionnel de diarisation du locuteur peuvent être remplacés par un réseau neuronal formé de bout en bout à la diarisation du locuteur.

Avantages

➕ Optimisation directe du réseau pour maximiser la précision de la tâche de diarisation. Cela contraste avec les systèmes traditionnels où les sous-modules sont optimisés individuellement mais pas dans leur ensemble.

➕ Il est moins nécessaire de trouver des traitements préalables et postérieurs utiles pour les données d'entrée.

Inconvénients

➖ Plus d'efforts nécessaires pour la collecte des données et l'étiquetage. En effet, ce type d'approche nécessite des transcriptions tenant compte du locuteur pour l'apprentissage. Cela diffère des systèmes traditionnels où seules des étiquettes composées de l'étiquette du locuteur et de l'horodatage de l'audio sont nécessaires (sans effort de transcription).

➖ Ces systèmes ont tendance à se suradapter aux données d'apprentissage.

Cadres de diarisation des orateurs

Comme vous pouvez le constater, les systèmes de diarisation traditionnels et de bout en bout présentent tous deux des avantages et des inconvénients. La mise en place d'un système de diarisation des orateurs implique également l'agrégation d'un certain nombre d'éléments et la mise en œuvre peut sembler décourageante à première vue.

Heureusement, il existe une pléthore de bibliothèques et de paquets qui ont mis en œuvre toutes ces étapes et sont prêts à être utilisés dès le départ 🔥.

Je me concentrerai sur les bibliothèques de diarisation de locuteurs les plus populaires. Toutes les bibliothèques, à l'exception de la dernière(UIS-RNN), sont basées sur l'approche traditionnelle de la diarisation. N'oubliez pas de consulter ce lien pour obtenir une liste plus exhaustive des différentes bibliothèques de diarisation.

1. Pyannote

👉 Il s'agit sans doute de l'une des bibliothèques les plus populaires dans le domaine de l'enregistrement des interventions des orateurs.

👉 Notez que les modèles pré-entraînés sont basés sur les ensembles de données VoxCeleb qui consistent en des enregistrements de célébrités extraits de YouTube. La qualité audio de ces enregistrements est nette et claire, il se peut donc que vous deviez réentraîner votre modèle si vous souhaitez vous attaquer à d'autres types de données comme des appels téléphoniques enregistrés.

➕ Livré avec un ensemble de modèles pré-entraînés disponibles pour le VAD, l'embedder et le modèle de segmentation.

➕ Le pipeline d'inférence peut identifier plusieurs locuteurs parlant en même temps (diarisation multi-label).

➖ Il n'est pas possible de définir le nombre de locuteurs avant d'exécuter l'algorithme de regroupement. Cela pourrait conduire à une surestimation ou une sous-estimation du nombre de locuteurs s'ils étaient connus à l'avance.

2. NVIDIA NeMo

La boîte à outils Nvidia NeMo comporte des collections distinctes pour les modèles de reconnaissance automatique de la parole (ASR), de traitement du langage naturel (NLP) et de synthèse vocale (TTS).

👉 Les modèles que les réseaux pré-entraînés ont été formés sur les ensembles de données VoxCeleb ainsi que sur l'ensemble de données Fisher et SwitchBoard, qui consiste en des conversations téléphoniques en anglais. Par rapport aux modèles pré-entraînés utilisés dans pyannote, ils sont donc plus appropriés comme point de départ pour affiner un modèle pour les cas d'utilisation des centres d'appels. Plus d'informations sur les modèles pré-entraînés sont disponibles ici.

➕ Les résultats de la diarisation peuvent être facilement combinés avec les résultats de l'ASR pour générer des transcriptions tenant compte du locuteur.

➕ Possibilité de définir à l'avance le nombre de locuteurs s'ils sont connus, ce qui permet d'obtenir une diarisation plus précise.

➕ Le fait que la boîte à outils NeMo comprenne également des cadres liés au NLP facilite l'intégration du résultat de la diarisation dans les tâches NLP en aval.

3. Diariseur simple

👉 Un pipeline de diarisation simplifié qui peut être utilisé pour des tests rapides.

👉 Utilise les mêmes modèles pré-entraînés que pyannote.

➕ Comme pour Nvidia NeMo, il est possible de définir le nombre de haut-parleurs au préalable.

➖ Contrairement à pyannote, cette bibliothèque n'inclut pas l'option d'affiner les modèles pré-entraînés, ce qui la rend moins adaptée aux cas d'utilisation spécialisés.

4. SpeechBrain

👉 Boîte à outils d'IA conversationnelle tout-en-un basée sur PyTorch.

L'écosystème SpeechBrain facilite le développement de solutions vocales intégrées avec des systèmes tels que l'ASR, l'identification du locuteur, l'amélioration de la parole, la séparation de la parole et l'identification de la langue.

➕ Grande quantité de modèles pré-entraînés pour diverses tâches. Consultez la page HuggingFace pour plus d'informations.

➕ Contient des tutoriels compréhensibles pour les différents blocs de construction de la parole afin de faciliter la prise en main.

➖ Le pipeline de diarisation n'est pas encore totalement mis en œuvre, mais cela pourrait changer à l'avenir.

5. Kaldi

👉 Boîte à outils de reconnaissance vocale principalement destinée aux chercheurs. Il est construit en C++ et utilisé pour entraîner des modèles de reconnaissance de la parole et décoder l'audio à partir de fichiers audio.

👉 Le modèle pré-entraîné est basé sur l'ensemble de données CALLHOME qui consiste en des conversations téléphoniques entre des personnes de langue maternelle anglaise en Amérique du Nord.

👉 Bénéficie du soutien d'une large communauté. Cependant, il s'adresse principalement aux chercheurs et est moins adapté aux solutions prêtes pour la production.

➖ Courbe d'apprentissage relativement raide pour les débutants qui n'ont pas beaucoup d'expérience avec les systèmes de reconnaissance vocale.

➖ Ne convient pas pour une mise en œuvre rapide des systèmes ASR/diarisation.

6. UIS-RNN

👉 Un modèle de diarisation de bout en bout entièrement supervisé développé par Google.

👉 L'entraînement et la prédiction nécessitent l'utilisation d'un GPU.

➕ Relativement facile à former si l'on dispose d'un grand ensemble de données pré-étiquetées.

➖ Aucun modèle pré-entraîné n'est disponible, vous devez donc l'entraîner à partir de zéro sur vos données transcrites personnalisées.

Cela fait beaucoup de frameworks différents ! Pour faciliter le choix de celui qui convient à votre cas d'utilisation, j'ai créé un organigramme simple qui peut vous aider à choisir une bibliothèque appropriée en fonction de votre cas d'utilisation.

Organigramme pour le choix d'un cadre adapté à votre cas d'utilisation de la diarisation.

Démonstrations

Très bien, vous êtes probablement très curieux à ce stade de tester quelques techniques de diarisation vous-même. Vous trouverez ci-dessous un exemple de diarisation de cet échantillon audio à l'aide du framework pyannote.

Diarisation audio d'un échantillon fourni à l'aide du cadre pyannote

N'oubliez pas de consulter la version interactive de cet article de blog sur Hugging Face space pour tester la diarisation sur vos propres échantillons audio avec différents cadres de diarisation.

Conclusions

Dans ce billet de blog, nous avons abordé différents aspects de la diarisation des orateurs.

  • Nous avons d'abord expliqué ce qu'est la diarisation du locuteur et donné quelques exemples de ses différents domaines d'application.
  • Nous avons examiné les deux principaux types de systèmes pour la mise en œuvre d'un système de diarisation avec une solide compréhension (de haut niveau) des systèmes traditionnels et des systèmes de bout en bout.
  • Ensuite, nous avons comparé différents cadres de diarisation et fourni un guide pour choisir celui qui convient le mieux à votre cas d'utilisation.
  • Enfin, nous vous avons fourni un exemple pour tester rapidement quelques-unes des bibliothèques de diarisation.

J'espère que vous avez passé un bon moment en lisant cet article et que vous avez appris de nouvelles choses en cours de route.

Postes connexes

Voir tout le contenu
Aucun résultat n'a été trouvé.
Il n'y a pas de résultats correspondant à ces critères. Essayez de modifier votre recherche.
Grand modèle linguistique
Modèles de fondation
Entreprise
Personnes
Données Structurées
Chat GPT
Durabilité
Voix et son
Développement frontal
Protection des données et sécurité
IA responsable/éthique
Infrastructure
Hardware et capteurs
MLOps
IA générative
Natural Language Processing
Vision par ordinateur