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.
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 !
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.
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 :
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.
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 :
Ceux-ci consistent en de nombreux sous-modules indépendants qui sont optimisés individuellement :
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.
➕ 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.
➖ 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.
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.
👉 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.
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.
👉 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.
👉 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.
👉 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.
👉 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.
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.
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.
Dans ce billet de blog, nous avons abordé différents aspects de la diarisation des orateurs.
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.