Comment effectuer une transcription parole-texte de vidéo YouTube avec OpenAI Whisper

De nos jours, les vidéos en ligne sont devenues l’un des médias les plus populaires pour l’apprentissage, le divertissement, l’information et bien plus encore. Cependant, pour les personnes qui ne maîtrisent pas la langue dans laquelle une vidéo est présentée, il peut être difficile de tirer profit de tout le contenu disponible. C’est là que la synthèse vocale et la traduction automatique entrent en jeu.

Dans cet article, nous allons voir comment, avec Python, utiliser Whisper, une technologie d’OpenAI, pour effectuer la transcription parole-texte et la traduction de vidéos YouTube.

Qu’est ce Whisper ?

Whisper est une technologie développée par OpenAI pour la synthèse vocale. Elle est basée sur des réseaux de neurones profonds (modèle d’IA) qui ont été entraînés sur des milliers d’heures de données vocales. La qualité et la nature expressive du texte généré sont impressionnantes. Il s’agit d’un modèle de reconnaissance automatique de la parole (ASR) de pointe capable de transcrire n’importe quelle audio et vidéo YouTube en texte.

Mise en œuvre

Installation

Pour commencer, Python doit être installé sur votre ordinateur avec le module Python Whisper. La dernière version stable peut être installée à l’aide du gestionnaire de packages Python pip comme suit :

pip install git+https://github.com/openai/whisper.git

Maintenant, nous devons installer le module yt-dlp, utilisé pour télécharger des vidéos depuis YouTube.com et d’autres sites vidéo.

pip install yt-dlp

Nous devons aussi installer le module torch afin de détecter le device (CPU ou GPU) sur lequel sera executé le traitement de transcription parole-texte Whisper.

pip install torch

Accélération GPU

Afin d’avoir un temps de traitement acceptable, il est nécessaire d’avoir une carte NVIDIA GPU afin d’utiliser l’accélération GPU avec Whisper. Vous pouvez consulter ce benchmark des temps de traitement de transcription sur différents GPU. Les résultats indiquées peuvent ainsi vous aider à choisir le type de GPU a acheter ou a louer.

Google Colab

Et si vous ne voulez pas vous embêter avec cette configuration de carte GPU, Eh bien, Google Colab est votre ami. En effet avec Google Colab vous avez la possibilité d’utiliser un GPU gratuit dans un notebook.

En utilisant la commande nvidia-smi, nous pouvons avoir les informations sur le GPU qui vous est attribué par Google Colab. Par exemple voici le mien.

Une fois que tout est installé, vous pouvez importer les modules et charger le modèle Whisper. Dans notre cas, nous utiliserons le grand modèle large qui possède 1 550 Mo de paramètres et nécessite environ 10 Go de mémoire VRAM GPU.

# https://github.com/openai/whisper
import whisper
# https://pytorch.org/
import torch

device = "cuda" if torch.cuda.is_available() else "cpu"
whisper_model = whisper.load_model("large", device)

Dans la fonction load_model(), nous utilisons le périphérique/device (CPU ou GPU) initié dans la ligne au dessus. Par défaut, le modèle est initialisé sur le CPU sauf indication contraire.

Voilà tout est prêt ! Il est maintenant temps de commencer à extraire les fichiers audio.

Extraction du contenu audio d’une vidéo YouTube

# https://github.com/yt-dlp/yt-dlp
import yt_dlp
# https://github.com/openai/whisper
import whisper
# https://pytorch.org/
import torch

device = "cuda" if torch.cuda.is_available() else "cpu"
whisper_model = whisper.load_model("large", device)

youtube_url = 'https://www.youtube.com/watch?v=Z-4H-x-iXYs'

with yt_dlp.YoutubeDL({'format': 'bestaudio', 'outtmpl': '%(id)s.%(ext)s'}) as ydl:
  # Telechargement de la video
  info_dict = ydl.extract_info(youtube_url, download=True)
  video_file = ydl.prepare_filename(info_dict)

  # Génération de la transciption
  result = whisper_model.transcribe(video_file)

  print(result['language'])
  print(result['text'])

  if result['language'] != 'en':
    # Génération de la transciption avec traduction en anglais
    result = whisper_model.transcribe(video_file, language="en", task="translate")
    print(result['language'])
    print(result['text'])

  • whisper_model.transcribe(video_file) applique le modèle Whisper sur le fichier audio pour générer la transcription.
  • La fonction transcribe() prétraite l’audio avec une fenêtre glissante de 30 secondes et effectue une approche de type autoregressive sequence-to-sequence pour faire des prédictions sur chaque fenêtre.
  • Pour effectuer un traduction nous utilisons la fonction transcribe() de la manière suivant: whisper_model.transcribe(video_file, language="en", task="translate").
    • task="translate sigifiant l’execution d’une tâche de traduction.
  • Enfin, les instructions print() affiche le résultat suivant:
[youtube] Extracting URL: https://www.youtube.com/watch?v=Z-4H-x-iXYs
[youtube] Z-4H-x-iXYs: Downloading webpage
[youtube] Z-4H-x-iXYs: Downloading ios player API JSON
[youtube] Z-4H-x-iXYs: Downloading android player API JSON
[youtube] Z-4H-x-iXYs: Downloading m3u8 information
[info] Z-4H-x-iXYs: Downloading 1 format(s): 251
[download] Z-4H-x-iXYs.webm has already been downloaded
[download] 100% of 2.17MiB
fr
Venons-en maintenant à ce fléau qui avait pourtant disparu dans les années 50. Les punaises de lits ne sont plus …
en
Let's now come to this plague that had disappeared in the 50s. The bed bugs are no longer just the black beast of some …

Conclusion

Félicitations ! Vous venez d’apprendre comment transcrire la parole en texte et comment appliquer la traduction automatique.

Il est important de noter que

  • la qualité de la transcription dépend de :
    • la qualité de l’audio de la vidéo.
    • du modèle Whisper utilisé.
  • la traduction peut ne pas être précise à 100%.

Cependant, Whisper est un modèle de pointe dans le domaine de la reconnaissance automatique de la parole et peut fournir des résultats de haute qualité dans de nombreuses langues.

Les avantages de Whisper

  • Universalité : Grâce à Whisper, vous n’êtes plus limité par la langue d’origine de la vidéo. Visualisez des vidéos en allemand, espagnol, ou toute autre langue et traduisez-les en français en un instant.
  • Apprentissage : Utilisez cette technologie pour améliorer vos compétences linguistiques en écoutant des discours dans la langue cible. C’est un moyen idéal d’apprendre une nouvelle langue.
  • Diversité de contenu : Ne passez pas à côté de contenu précieux et divertissant simplement à cause de la langue. Whisper vous ouvre les portes à une variété infinie de vidéos YouTube.

Avec l’avènement de Whisper d’OpenAI, le paysage de la traduction vidéo change radicalement. Les barrières linguistiques ne sont plus un obstacle pour découvrir et comprendre du contenu de qualité sur YouTube.

L’avenir de la traduction vidéo est à portée de main, et il est passionnant ! Imaginez pouvoir regarder des documentaires fascinants, des tutoriels utiles, ou des vidéos de voyage inspirantes, peu importe la langue dans laquelle elles ont été créées. C’est désormais une réalité grâce à Whisper.

Laisser un commentaire