Contribution à Scribe : ponctuation

ai deep learning ponctuation voice recognition scribe cemea hugging face

Scribe est un logiciel libre, créé par le CEMEA, qui permet par reconnaissance vocale de générer une ébauche transcription sur la base d'un fichier audio ou vidéo. Je propose un modeste patch de 60 lignes pour reconstruire automatiquement la ponctuation du texte.

La ponctuation est importante point d'exclamation

Vous vous rappelez peut être des dictées, en particulier de la vicieuse dictée de Bernard Pivot ? Dans cette exercice, on demande à un humain de faire la transcription écrite d'un dialogue orale. Mais on le fait, avec un rythme trèèèèès doux et surtout en énonçant explicitement la ponctuation. Or, quand on attend la même chose d'une machine, ne on va pas être aussi indulgent : vas y que je te donne un truc prononcé en live super vite, et surtout, dém*rde toi pour la ponctuation.

Or, la ponctuation est :

  • indispensable à la lecture
  • prend un peu de temps à rajouter si un humain doit le faire lui même
  • étonnamment, l'intelligence artificielle l'invente avec une qualité bluffante !

Par exemple, j'ai demandé à Scribe de transcrire cette vidéo Unisciel, voila le résultat avec quelques erreurs (qu'il faut corriger à la main - ce n'est pas le sujet du jour) mais surtout absence totale de ponctuation :

bonjour je suis étudiante en sciences si comme moi tu as besoin d'approfondir tes connaissances en biologie en chimique ou en physique dans le cadre de tes études ou de ta recherche alors ce programme est fait pour toi dans cette nouvelle série de vidéos nous allons découvrir pourquoi des molécules neutres s'attirent entre elles et comment on peut les manipuler avec de la lumière c'est de la physique donc j'ai demandé à françois

nota enseignant-chercheur en physique à l'université paris-sud de nous expliquer comment c'est possible

oui bonjour léa et bonjour à tous c'est possible parce qu'un objet peut être globalement neutre mais avoir des parties positives et négatives en son sein

c'est cela qu'on appelle la polarisation

Maintenant, demandons à "l'intelligence" artificielle d'inventer de la ponctuation :

Bonjour, je suis étudiante en sciences. Si, comme moi, tu as besoin d'approfondir tes connaissances en biologie, en chimique ou en physique dans le cadre de tes études ou de ta recherche, alors ce programme est fait pour toi. Dans cette nouvelle série de vidéos, nous allons découvrir pourquoi des molécules neutres s'attirent entre elles et comment on peut les manipuler avec de la lumière. C'est de la physique. Donc j'ai demandé à françois

Agglo teint, enseignant-chercheur en physique à l'université paris-sud, de nous expliquer comment c'est possible.

Oui, bonjour léa et bonjour à tous. C'est possible parce qu'un objet peut être globalement neutre, mais avoir des parties positives et négatives en son sein.

C'est cela qu'on appelle la polarisation.

Parlons technique

Scribe est un logiciel libre développé en python, il y a un guide d'installation bien fichu, le programme est simple à déployer et à utiliser, la qualité des traitement est à l'état de l'art de ce que l'on peut trouver dans les logiciels libres. La partie "reconnaissance vocale" est basée sur vosk, qui dispose de très bons models français (basés sur linto.ai).

De mon coté, je suis fan des modèles Hugging Face, qui permet de trouver et tester très facilement des modèles, on voit très facilement si cela marche assez bien pour répondre aux besoins d'un projet. Et il se trouve que comme je l'ai dit, il y a un modèle de restoration de ponctuation qui fonctionne vraiment bien : fullstop-punctuation-multilang-large

(Depuis, le patch a été intégré - en mieux - dans la version officielle, donc la suggestion ci-dessus est laissé uniquement à titre historique)

Le patch : punctuation-restore.patch

A appliquer sur l'installation manuelle de Scribe

Après application, refaire pip install -r requirements.txt

Pour aller plus loin (optimisation mémoire)

Les modèles de deep learning peuvent nécessiter beaucoup de mémoire, surtout au déploiement. En développement, le modèle n'est chargé qu'une seule fois, donc par exemple il va consommer 2.5Go de ram pour le cas présent. Mais lors de la mise en production, on fait tourner plusieurs fois le programme pour accepter de nombreuses de connexion simultanées (concept de "workers"). Lors de l'intégration de ma contribution, le CEMEA a beaucoup retravaillé cet aspect pour isoler ce traitement dans un processus à part : le module de reconstruction de la ponctuation n'est chargé qu'une seule fois (et comme son traitement est rapide, ce n'est pas un problème).

Cela m'intéresserait aussi de savoir s'il existe une méthode pour ne pas augmenter linéairement la consommation de mémoire quand on fait appel au même modèle sur plusieurs processus différents. (J'ai ouvert un sujet sur les forums hugging face pour poser la question).

Accessibilité

Les sous-titres et transcriptions des médias sont indispensables pour respecter le Référentiel Général d'Amélioration de l'Accessibilité, obligatoire dans de nombreux contexte (secteur public, grandes entreprises). La transcription automatique par intelligence artificielle fait gagner beaucoup de temps sur cette tâche chronophage, mais n'est pas suffisante et doit être humainement corrigée. Donc, relisez impérativement le résultat. De nombreux outils de dépôts de vidéo permettent de mettre en ligne le fichier SRT et cela permettra au visiteur de la page d'activer ou désactiver les sous-titres dans le lecteur vidéo.

En plus d'être indispensable pour l'accessibilité, les sous-titres et transcription peuvent être utiles dans beaucoup d'autres contextes. Plus de 80% des utilisateurs ont l'habitude de regarder les vidéos sans le son sur certaines plateformes.

L'opportunité Logiciel Libre

Comme vous pouvez le constater, les logiciels libres sont une opportunité incroyable pour mettre en oeuvre des projets de machine learning :

  • Des centaines de projet d'usage, et des milliers de modèles sont à votre disposition, sous une forme bien organisée et developper-friendly
  • Vous enrichissez vos applications préférées de fonctions sympa, vous enchaînez un traitement derrière un autre en seulement quelques lignes de code
  • Les communautés continuent à améliorer les modèles et proposer des nouveaux outils, de plus en plus de projets de logiciels libres avec AI deviennent viable et passent en quelques années de science fiction à "j'ai 3 heures à perdre, je vais bricoler".
  • Vos utilisateurs profitent de fonctionnalités qui peuvent leur faire gagner des heures et des heures de travail

Comme toujours, les limites classiques s'appliquent (inadaptation à la problématique traitée, taux d'erreur, algorithmic bias, adversarial machine learning)

Article précédent