Cas d’usage Speaker Diarization + ASR : Résumé automatique de podcast

La Javaness R&D
7 min readJul 17, 2023

--

Notre implémentation NeMo + Whisper permet actuellement de générer des scripts de 1h de contenu audio en seulement 4 minutes pour des conversations jusqu’à 8 locuteurs.

Aujourd’hui, de nombreux contenus à caractère éducatif et culturel sont enregistrés sous la forme de podcasts audio avec plusieurs intervenants. Ce format vivant et accessible par l’écoute est très apprécié et consommé par le grand public. Cependant, il présente certaines limites, notamment en termes d’accessibilité pour les sourds et malentendants ainsi que d’accès direct à l’information. Le travail de transcription des conversations, de reformulation pour le format écrit (article de blog, par exemple), et de résumé des informations est un travail très fastidieux et complexe. On estime qu’une heure d’audio nécessite 5 à 6 heures de travail de transcription manuelle. Ainsi, cela représente un coût très élevé pour les entreprises et organismes proposant des contenus audio/vidéo afin de les rendre accessibles au plus grand nombre via un support écrit.

Le développement récent des modèles speech-to-text et de speaker diarization, en particulier l’utilisation des modèles Transformers pour le domaine de l’audio et du traitement du langage (NLP), est extrêmement prometteur. On peut aujourd’hui envisager le traitement automatisé des contenus audio pour produire des supports écrits de très bonne qualité, favorisant ainsi l’accessibilité à l’information et à la culture.

🧑‍🔬 Intérêt de la méthode

L’utilisation du pipeline speaker diarization et automatic speech recognition combinée à la réalisation de tâches NLP sous-jacentes, notamment grâce aux Large Language Models (LLMs), présentent de nombreux avantages. Le pipeline complet de traitement est schématisé dans la figure ci-dessous.

Schéma de traitement du pipeline de traitement des données

Whisper : Seq2Seq transformers model

L’architecture Seq2Seq (modèle encodeur-décodeur) de Whisper en fait un modèle de choix pour la réalisation de script directement exploitable et lisible. En effet, l’audio est encodé dans un espace latent, puis la transcription texte est reconstruite grâce au décodeur de manière auto-régressive, token par token. A l’inverse des modèles Connectionist Temporal Classification (CTC) qui reconstruisent la transcription texte à partir des phonèmes en utilisant un vocabulaire très restreint, Whisper utilise un large vocabulaire (Dictionnaire de token de GPT-2) et reconstruit le contenu texte de manière séquentielle à partir de la représentation latente.

Bien que beaucoup plus lourd et lent pour la transcription (utilisation real-time pas vraiment envisageable), Whisper présente de nombreux avantages et est aujourd’hui le modèle le plus performant pour la transcription speech-to-text. Il permet notamment de pouvoir prédire la ponctuation, les noms propres, et de produire des transcriptions plus naturelles d’un audio, effaçant en partie les tics de langage, les répétitions de mots, etc. L’architecture du modèle, incluant un décodeur, il y a cependant quelques risques d’hallucination, de boucle de token ou de saut de mots.

Nemo : Flexible speaker diarization pipeline

NeMo est avec pyannote le framework de référence pour la speaker diarization. Il s’appuie sur un pipeline impliquant plusieurs modèles pour le traitement de l’audio : Voice Activity Detection, Speakers Embedding, Multi-scale clustering. La speaker diarization est à la base du pipeline de traitement audio de l’outil de traitement conversationnelle car il permet de segmenter l’audio de manière efficace et précise. L’audio segmenté peut ensuite être traité par Whisper ou d’autre modèle pour l’audio.

NeMo est largement paramètrable, flexible et les modèles peuvent être fine tunés relativement facilement. On maîtrise aujourd’hui relativement bien le comportement du pipeline pour l’inférence, ce qui permet d’obtenir des taux d’erreur très satisfaisants.

Temps de traitement

Notre implémentation optimisée du pipeline NeMo + Whisper permet aujourd’hui de transcrire 30 minutes de contenu audio en moins de 2 minutes sur un GPU avec 16Go de VRAM.

Utilisation des LLMs et du NLP

L’utilisation des LLM et du NLP pour des tâches sous-jacentes de post-traitement de scripts obtenus via NeMo + Whisper présente plusieurs avantages :

  • On peut reformuler/reformater le contenu de la conversation comme on le souhaite : article de blog, court résumé, narration de la conversation, script enrichi/corrigé, etc.
  • Le LLM est capable de corriger d’éventuelles erreurs de transcription, notamment par l’utilisation de metadata ou l’accès à des données tiers (pour les noms propres, les dates, termes techniques etc…)
  • On peut extraire et présenter de nombreuse informations grâce aux modèles NLP : extraction d’information numérique, création d’infographie, etc…

🎤 Exemple d’utilisation — Documentaire audio/vidéo BnF Gallica

La base de données ouverte de la BnF Gallica propose notamment des contenues documentaires sous forme de vidéo avec une voix off sur différents sujets : Arts, histoire, littérature, etc…

On utilise pour notre exemple les 10 premières minutes de cette vidéo sur la révolution française. La figure ci-dessous présente le pipeline de traitement d’une vidéo. On peut extraire d’une part le script brut du podcast : texte et locuteur associé (dans le cadre d’une conversation). D’autre part, on peut utiliser à la suite des modèles de languages pour des tâches de NLP sous-jacentes. Dans notre exemple, on produit un article de blog à l’aide de ChatGPT grâce au script brut et au metadata de la vidéo.

Le script obtenu est disponible en annexe en fin de page. Ce script est ensuite donnée en prompt à un modèle de langage génératif pour créer un contenu texte pour un article de blog par exemple.

Le résultat obtenu est le suivant :

La Révolution française : Lutte pour l’égalité, la liberté et le rôle des femmes

La Révolution française, qui a commencé en 1789, a été un moment crucial dans l’histoire de la France, marqué par des aspirations à l’égalité, à la liberté et à la participation active des femmes. Les événements de cette période ont façonné le paysage politique et social de la France moderne.

La révolution a été en grande partie initiée par le tiers état, qui comprenait la majorité de la population française. Cette population, composée de bourgeois, de paysans, de manouvriers, de domestiques, de maîtres artisans, de boulangers et de charcutiers, partageait un désir commun d’établir l’égalité, en particulier en ce qui concerne les impôts et l’accès aux opportunités. En 1789, les états généraux se sont réunis à Versailles, où les députés des ordres de la noblesse, du clergé et du tiers état se sont rassemblés pour discuter d’une nouvelle constitution.

La résistance du roi et de la cour à ces réunions a conduit le tiers état à se réunir dans la salle du jeu de paume à Versailles. Ils ont considéré cette action comme une tentative de la cour de briser leur élan vers une nouvelle règle du jeu pour la nation. Ils ont exprimé leur intention de ne pas se séparer avant d’avoir donné une constitution à la France, un acte révolutionnaire qui témoignait de leur désir de changement.

La prise de la Bastille a été une réponse significative à la résistance du roi. Les Parisiens, confrontés à l’arrivée massive de troupes royales autour de Paris, ont symboliquement détruit la Bastille en juillet 1789. Ce symbole du despotisme et de la négation de la liberté a été détruit pour affirmer la liberté du peuple et son droit à l’autogouvernance par le biais de l’Assemblée nationale constituante. Cette journée, le 14 juillet, est depuis lors célébrée comme la fête nationale en France.

Pendant ce temps, les paysans ont également joué un rôle crucial dans la révolution. Motivés par la faim, la peur et l’espoir, ils ont rejoint le mouvement révolutionnaire. Les paysans souffraient de la période de soudure, où ils avaient épuisé leurs réserves alimentaires avant la nouvelle récolte. Ils ont également perçu la présence de troupes royales comme une menace de l’aristocratie, croyant à un complot contre eux. Ils ont espéré que les États généraux apporteraient des améliorations, notamment la liberté de posséder leurs terres sans payer de droits seigneuriaux. Bien que l’Assemblée nationale ait accordé une certaine liberté de la terre en 1789, les paysans n’ont pas obtenu toutes les satisfactions de leurs revendications.

Les femmes ont également joué un rôle actif et revendicateur lors de la Révolution française. Elles ont formé des clubs où elles discutaient de questions politiques, exprimant leurs préoccupations en tant que femmes. Elles ont remis en question leur statut inférieur dans la société et ont revendiqué l’égalité avec les hommes, ainsi que leur liberté individuelle, y compris le droit au divorce. Certaines femmes ont participé militairement à la Révolution, rejoignant les volontaires nationaux et occupant des postes de responsabilité.

La Révolution française a été une période de bouleversements majeurs, marquée par des luttes pour l’égalité, la liberté et la participation des femmes. Ces événements ont eu un impact durable sur la France et ont jeté les bases d’une société plus égalitaire et démocratique.

Ce résultat satisfaisant peut être amélioré par le biais du prompt engineering, notamment en enrichissant le prompt grâce au métadonnées disponibles. Par ailleurs, le contenu étant vidéo dans cet exemple, on pourrait envisager l’extraction de certaines images issues de la vidéo pour illustrer le support écrit.

Conclusion

L’utilisation d’un pipeline de traitement de l’audio pour la création de supports écrits permettrait d’améliorer l’accessibilité à un grand nombre de ressources culturelles, documentaires et historiques. En effet, la combinaison de modèles state-of-the-art pour la speaker diarization, la transcription speech-to-text et le traitement du langage (NLP) permet de produire des supports écrits structurés de bonne qualité à partir d’audio. Enfin, l’automatisation d’un tel processus est d’une part relativement peu coûteuse, très efficace et peut être développée de manière open source. D’autre part, elle permet de diversifier les supports de diffusion tout en améliorant l’accès à l’information.

Annexe

Tableau de transcription brut des 10 premières minutes du podcast https://gallica.bnf.fr/ark:/12148/bpt6k1320265g

Acknowledgement

Thanks to our colleagues Alexandre DO, Jean-Bapiste BARDIN, Lu WANG and Edouard LAVAUD for the article review.

About

Jules SINTES is a data scientist at La Javaness.

--

--

La Javaness R&D

We help organizations to succeed in the new paradigm of “AI@scale”, by using machine intelligence responsibly and efficiently : www.lajavaness.com