Outils pour utilisateurs

Outils du site


informatique:projets:transcription_automatique

Transcription automatique d'entretiens

Pour son mémoire, ma dame fait passer des entretiens pour collecter des données à exploiter pour sa réflexion. Elle doit les retranscrire pour pouvoir les analyser, puis les inclure dans son rapport. Ça lui demande beaucoup de temps et d'énergie. Elle était démoralisée jusqu'à ce que je lui trouve une solution un peu plus automatique.

J'ai eu l'idée d'utiliser la puissance de calcul de Google et de la traduction automatique de vidéos de Youtube. Une vidéo chargée sur la plate-forme est traduite automatiquement dans la langue choisie comme langue par défaut. Le résultat n'est pas parfait mais il permet de faire beaucoup de chose automatiquement. Voici le détail des étapes pour obtenir un fichier texte utilisable.

Convertir le fichier audio en fichier vidéo

Youtube n'autorise que le chargement de fichiers vidéos. Il faut donc convertir les fichiers audio en fichiers vidéo. Pour cela, on va ajouter une image fixe à l'audio en utilisant FFmpeg.

ffmpeg -loop 1 -i bg.png -i record.m4a -c:v libx264 -c:a copy -shortest record.mp4
  • -loop indique le nombre de boucle à effectuer pour les entrées le supportant.
  • -i indique le fichier à utiliser.
  • -c:v indique le codec vidéo à utiliser, ici libx264.
  • -c:a indique le codec audio à utiliser, ici copy.
  • -shortest indique que la conversion doit se terminer dès que le plus petit flux est converti.

Il faut faire attention aux images utilisées. Il faut choisir des images dont les dimensions sont divisibles par 2, sinon ffmpeg ne voudra pas générer le fichier.

Il est également conseillé de prendre des images de petite dimension pour limiter la taille de la vidéo générée. Je trouve que la taille 320×240 est un bon compromis.

Pour ne pas modifier la qualité de l'audio, on utilise le codec copy qui ne fait pas de conversion mais seulement une copie du flux. Ça ne fonctionne qu'avec un format de sortie qui supporte le format d'entrée.

Traiter la vidéo sur Youtube

Il faut téléverser la vidéo sur Youtube1), configurer la langue originale de la vidéo et laisser faire le service qui va s'occuper d'ajouter automatiquement des sous-titres à la vidéo. Je ne sais pas combien de temps ça prend mais après quelques heures, ça devrait être fait.
Il ne reste plus qu'à télécharger les sous-titres au format SubRip2).

Il existe plusieurs format de sous-titres disponibles. J'ai choisi d'utiliser SubRip mais il est tout à fait envisegeable d'utiliser un autre format de sous-titres. Il suffira d'ajuster la prochaine étape en conséquence.

Il est recommandé de configurer les vidéos pour quelles ne soient visible que par le propriétaire de la chaîne.

Convertir les sous-titres en fichier texte

Techniquement, les fichiers de sous-titres sont des fichiers textes, mais pour notre utilisation, nous n'avons besoin que des textes mais pas des informations de synchronisation avec la vidéo. J'ai utilisé le site Subtitle Tools pour faire ça. Je n'explique pas tellement le fonctionnement est évident.

Nettoyer le fichier

Maintenant que nous avons un fichier sans les informations de synchronization, il nous reste quelques opérations pour avoir un fichier utilisable :

  • Suppression des lignes vides3)
sed -i '/^[[:space:]]*$/d' <fichier>
  • Mise sur une ligne de la totalité du texte4)
paste -sd" " <fichier1> > <fichier2>
  • Suppression des caractères ^M du texte avec Vim

C'est loin d'être parfait mais ça permet de réduire un peu la charge de travail humaine en la reportant sur les machines.

Plusieurs années après avoir mis en place ça, je viens de découvrir le service Scribe qui permet la transcription de fichiers audio et vidéo. Ça m'aurait épargné plusieurs étapes si je connaissais ça à l'époque.

1)
Il faut avoir un compte et créer une chaîne au préalable
2)
extension .srt
informatique/projets/transcription_automatique.txt · Dernière modification : 2025/01/02 09:25 de alexis