Générer des sous-titres automatiques à partir d'un fichier audio ou d'une vidéo youtube

J'utilise ici une base Linux Ubuntu qu'on peut facilement installer sous Windows avec WSL, (voir https://www.tutos.eu/3347 )
On va utiliser yt-dlp pour le téléchargement audio et Whisper pour la transcription locale.
Pour les vidéos youtube, il est plus simple de télécharger l'audio mp3 avec yt-dlp que de demander à yt-dlp de directement récupérer les sous-titres.

On va commencer par installer ffmpeg et python avec

sudo apt update
sudo apt install -y ffmpeg python3 python3-venv python3-pip pipx
Lien vers le fichier : cliquez ici Copier le code

Maintenant qu'on a python et pipx, on peut installer yt-dlp avec

pipx install yt-dlp
pipx ensurepath
Lien vers le fichier : cliquez ici Copier le code

Cette commande doit alors répondre

yt-dlp --version
Lien vers le fichier : cliquez ici Copier le code

Exemple de retour

Installer Whisper dans un venv (attention cela consomme plusieurs gigas)

python3 -m venv ~/whisper-env
source ~/whisper-env/bin/activate
pip install -U openai-whisper
Lien vers le fichier : cliquez ici Copier le code

De là pour test l'aide de whisper doit être accessible

whisper --help
Lien vers le fichier : cliquez ici Copier le code
Publicité

Exemple

De là adaptez cette commande pour télécharger le mp3 d'une vidéo youtube (si vous devez récupérer le son d'une vidéo youtube)

yt-dlp -x --audio-format mp3 --write-auto-subs -o "Nom_de_ma_video_%(id)s.%(ext)s" <URL>
Lien vers le fichier : cliquez ici Copier le code

Exemple

yt-dlp -x --audio-format mp3 --write-auto-subs -o "Buanderie_%(id)s.%(ext)s" https://www.youtube.com/watch?v=GEgAPrs5MQw
Lien vers le fichier : cliquez ici Copier le code

Vous pouvez maintenant utiliser whisper pour générer les sous-titres en "l'activant" avec la commande source puis en lui demandant de traiter tous les fichiers mp3 présents

source ~/whisper-env/bin/activate && whisper *.mp3 --model small --language French
Lien vers le fichier : cliquez ici Copier le code

Et là c'est parti pour la génération des sous-titres.
Le message UserWarning: FP16 is not supported on CPU; using FP32 instead
veut dire que le programme n'a pas trouvé de carte graphique donc il utilise le CPU à la place.

(whisper-env) myaccount@myubuntu:~$ source ~/whisper-env/bin/activate && whisper *.mp3 --model small --language French
100%|████████████████████████████████████████| 461M/461M [00:04<00:00, 114MiB/s]
/home/myaccount/whisper-env/lib/python3.12/site-packages/whisper/transcribe.py:132: UserWarning: FP16 is not supported on CPU; using FP32 instead
  warnings.warn("FP16 is not supported on CPU; using FP32 instead")
[00:00.000 --> 00:02.280]  Sur le papier, c'était une toute petite pièce.
[00:02.280 --> 00:05.280]  Dans la réalité, c'était un chantier qui m'a clairement mise à l'épreuve.
[00:05.280 --> 00:06.560]  Mais j'y ai énormément appris.
[00:06.560 --> 00:09.040]  Et le résultat est clairement à la hauteur de mon épuisement.
[00:09.040 --> 00:13.360]  Je vous partage cette aventure et je vous dirais aussi combien ça m'a coûté pour obtenir ce résultat.
[00:13.360 --> 00:16.600]  Bienvenue dans ce nouveau chantier, j'ai nommé la buandrie.

Publicité