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.
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 :
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.
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
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).
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.
Comme vous pouvez le constater, les logiciels libres sont une opportunité incroyable pour mettre en oeuvre des projets de machine learning :
Comme toujours, les limites classiques s'appliquent (inadaptation à la problématique traitée, taux d'erreur, algorithmic bias, adversarial machine learning)