Légendes et sous-titres
La plupart des vidéos sur les réseaux sociaux sont regardées sans son. Les légendes font partie du montage, pas un ajout.
1. Transcrire
# openai-whisper (pip install openai-whisper)
whisper audio.mp3 --model small --language en --output_format srt --output_dir captions/
# faster-whisper (pip install faster-whisper) : plus rapide, moins de mémoire, horodatage par mot
python - <<'PY'
from faster_whisper import WhisperModel
model = WhisperModel("small", compute_type="int8")
segments, info = model.transcribe("audio.mp3", word_timestamps=True, vad_filter=True)
for s in segments:
for w in s.words:
print(f"{w.start:.2f}\t{w.end:.2f}\t{w.word}")
PY
Extrayez d'abord l'audio proprement pour de meilleurs résultats :
ffmpeg -i video.mp4 -vn -ac 1 -ar 16000 audio.wav
La taille du modèle fait un compromis entre précision et vitesse : base < small < medium < large. Utilisez small ou medium pour l'anglais, large pour les accents prononcés ou les autres langues.
Si le script existe déjà (vous avez généré la voix off à partir de celui-ci), ne vous fiez pas au libellé de la transcription. Utilisez le texte du script et utilisez Whisper uniquement pour le calage temporel (alignement forcé). Cela garantit l'exactitude des noms et des nombres.
2. Corriger le texte
Relisez les noms propres, les noms de produits, les nombres. Whisper les comprend souvent de travers. Demandez un glossaire à l'utilisateur lorsque le sujet est technique.
3. Écrire les fichiers de sous-titres
SRT :
1
00:00:00,000 --> 00:00:02,400
La plupart des builds échouent le vendredi.
2
00:00:02,400 --> 00:00:05,100
Voici pourquoi.
Règles de lisibilité :
- Maximum 2 lignes, environ 42 caractères par ligne (environ 20 pour une vidéo verticale).
- Vitesse de lecture inférieure à 17 caractères par seconde ; durée minimale d'une réplique de 1 seconde.
- Couper aux phrases, pas au milieu d'une phrase. Ne jamais scinder un nom entre deux répliques.
- Les répliques ne doivent pas se chevaucher. Gardez un écart de 2 images ou aucun.
4. Incruster
# Style doux via force_style (SRT)
ffmpeg -i in.mp4 -vf "subtitles=captions.srt:force_style='FontName=Arial,FontSize=22,PrimaryColour=&H00FFFFFF,OutlineColour=&H00000000,BorderStyle=1,Outline=2,Alignment=2,MarginV=60'" -c:a copy out/captioned.mp4
# ASS donne un contrôle total (karaoké, surlignage mot, positions, animation)
ffmpeg -i in.mp4 -vf "ass=captions.ass" -c:a copy out/captioned.mp4
Piège sous Windows : dans les filtres, échappez le deux-points du lecteur et utilisez des barres obliques (subtitles='C\:/work/captions.srt'), ou exécutez FFmpeg depuis le dossier contenant le fichier et utilisez un chemin relatif.
5. Style avec surlignage mot-à-mot pour les formats courts
Générez un fichier ASS avec un événement par groupe de mots (2 à 4 mots), et utilisez la balise karaoké \k ou une surcharge de couleur par mot pour que le mot actif change de couleur. Apparence typique : police sans-serif en gras, texte blanc, contour noir de 3 à 4 px, mot actif dans une couleur d'accentuation de la marque, placé dans le tiers inférieur-milieu, pas tout en bas (l'interface utilisateur de la plateforme le cache).
En-tête ASS minimal pour commencer :
[Script Info]
ScriptType: v4.00+
PlayResX: 1080
PlayResY: 1920
[V4+ Styles]
Format: Name,Fontname,Fontsize,PrimaryColour,SecondaryColour,OutlineColour,BackColour,Bold,Italic,Underline,StrikeOut,ScaleX,ScaleY,Spacing,Angle,BorderStyle,Outline,Shadow,Alignment,MarginL,MarginR,MarginV,Encoding
Style: Default,Arial,72,&H00FFFFFF,&H0000D7FF,&H00000000,&H64000000,-1,0,0,0,100,100,0,0,1,4,0,2,60,60,520,1
[Events]
Format: Layer,Start,End,Style,Name,MarginL,MarginR,MarginV,Effect,Text
Dialogue: 0,0:00:00.00,0:00:01.20,Default,,0,0,0,,{\k30}La plupart {\k40}des builds {\k30}échouent
Les couleurs dans ASS sont au format &HAABBGGRR (ordre bleu-vert-rouge, alpha en premier).
6. Livrer
- Version incrustée pour les réseaux sociaux.
- Un fichier
.srtou.vttséparé pour YouTube, LinkedIn et les lecteurs web (les spectateurs peuvent activer/désactiver et traduire). - Piste de sous-titres douce dans MP4 :
-i captions.srt -c copy -c:s mov_text.
Traduire
Traduisez le texte des répliques, pas le minutage. Respectez les limites de lignes par langue (l'allemand et le finnois sont plus longs, donc réajustez). Faites vérifier par un locuteur natif lorsque la vidéo est publique.