Comment récupérer le transcript d'une vidéo

Transcrivez vos vidéos en local sur Mac avec Parakeet-mlx, un modèle open source Nvidia. Deux scripts bash suffisent pour obtenir txt, srt, vtt et json sans service en ligne.
Aujourd'hui pour faire du transcript, on a besoin de quasiment rien, un Apple Silicon ou GPU Nvidia suffit.
L'époque des services en lignes pour le sous-titrage est révolu.
J'ai fait pas mal de projets sur la voix:
- Mon studio de clonage
- Comment cloner une voix
- Je clone la voix de cartman
- ou encore mon projet de transcript Light-Whisper
Je n'irai pas jusqu'à dire que je suis un expert du sujet mais j'y touche pas mal.
Et aujourd'hui, je vais vous expliquer comment utiliser Parakeet pour faire transformer une vidéo en transcript.
Pourquoi récupérer le transcript d'une vidéo ?
On peut faire énormément de choses différentes à partir du transcript:
- En faire des résumés
- Traiter le texte
- Faire des sous-titres automatiques
Alors, il n'y a pour le moment pas de Speaker Diarization, c'est à dire qu'on ne va pas jusqu'à détecter les interlocuteurs, mais c'est déjà pas mal en l'état.
Comment récupérer le transcript d'une vidéo en local ?
Sous Mac et Linux, on peut utiliser Parakeet.
Parakeet est un model open source créé par Nvidia qui est l'un des meilleurs models pour le transcript. C'est celui que j'utilise sur le projet Light-Whisper.
Etant sous Mac, je vais utiliser Parakeet-mlx, la version mlx permet d'accélérer l'inférence sous mac (c'est une version optimisée).
Il vous faut:
- ffmpeg
- venv
- une puce Apple Silicon
Je vous mets le script d'installation:
Dans un fichier install.sh:
#!/usr/bin/env bash
#
# Installation des dépendances pour transcrire des vidéos en local sur Mac
# (Apple Silicon) avec parakeet-mlx.
#
# À lancer une seule fois avant transcribe.sh.
set -euo pipefail
# ---------------------------------------------------------------------------
# 1. Homebrew
# ---------------------------------------------------------------------------
if ! command -v brew >/dev/null 2>&1; then
echo "Homebrew est requis. Installe-le depuis https://brew.sh puis relance."
exit 1
fi
# ---------------------------------------------------------------------------
# 2. ffmpeg (décodage audio/vidéo)
# ---------------------------------------------------------------------------
if ! command -v ffmpeg >/dev/null 2>&1; then
echo "==> Installation de ffmpeg"
brew install ffmpeg
else
echo "ffmpeg : déjà présent."
fi
# ---------------------------------------------------------------------------
# 3. Python 3
# ---------------------------------------------------------------------------
if ! command -v python3 >/dev/null 2>&1; then
echo "==> Installation de python"
brew install python
fi
# ---------------------------------------------------------------------------
# 4. Environnement virtuel Python local
# Homebrew Python bloque "pip install" global (PEP 668), donc on isole
# parakeet-mlx et ses ~50 dépendances dans .venv/.
# ---------------------------------------------------------------------------
VENV_DIR=".venv"
if [[ ! -d "$VENV_DIR" ]]; then
echo "==> Création du venv dans $VENV_DIR"
python3 -m venv "$VENV_DIR"
fi
# shellcheck disable=SC1091
source "$VENV_DIR/bin/activate"
# ---------------------------------------------------------------------------
# 5. parakeet-mlx
# ---------------------------------------------------------------------------
echo "==> Installation de parakeet-mlx"
pip install --upgrade pip
pip install parakeet-mlx
echo
echo "Installation terminée."
echo "Lance maintenant : ./transcribe.sh <fichier_video>"
Une fois que vous avez installé les dépendances, vous pouvez utiliser le script de transcript:
Dans un fichier transcribe.sh:
#!/usr/bin/env bash
#
# Transcrit une vidéo ou un fichier audio en .txt, .srt, .vtt, .json
# avec parakeet-mlx (Apple Silicon).
#
# Prérequis : lancer ./install.sh une fois au préalable.
#
# Usage :
# ./transcribe.sh video.mp4
# ./transcribe.sh video.mp4 transcripts
#
# Variable d'env optionnelle :
# PARAKEET_MODEL=mlx-community/parakeet-tdt-0.6b-v2 (anglais, plus rapide)
set -euo pipefail
INPUT="${1:-}"
OUTPUT_DIR="${2:-.}"
if [[ -z "$INPUT" ]]; then
echo "Usage : $0 <fichier_video_ou_audio> [dossier_sortie]"
exit 1
fi
if [[ ! -f "$INPUT" ]]; then
echo "Erreur : fichier introuvable : $INPUT"
exit 1
fi
if [[ ! -d ".venv" ]]; then
echo "Erreur : .venv introuvable. Lance d'abord ./install.sh"
exit 1
fi
mkdir -p "$OUTPUT_DIR"
# shellcheck disable=SC1091
source .venv/bin/activate
# Modèle v3 : multilingue (25 langues européennes dont le français).
MODEL="${PARAKEET_MODEL:-mlx-community/parakeet-tdt-0.6b-v3}"
echo "==> Transcription de $INPUT avec $MODEL"
parakeet-mlx "$INPUT" \
--model "$MODEL" \
--output-dir "$OUTPUT_DIR" \
--output-format all \
-v
echo
echo "Terminé. Fichiers générés dans : $OUTPUT_DIR"
Ensuite il ne vous reste plus qu'à utiliser votre script:
./transcribe.sh video.mp4
Et vous obtiendrez vos fichiers:
- video.txt : texte brut
- video.srt : sous-titres avec timestamps
- video.vtt : format WebVTT
- video.json : segments détaillés avec timestamps mot par mot
FAQ
Est-ce que Parakeet fonctionne aussi pour des vidéos en français ?
Oui, le modèle v3 utilisé dans le script (parakeet-tdt-0.6b-v3) est multilingue et supporte une vingtaine de langues européennes dont le français. Si vous n'avez besoin que de l'anglais, la v2 est disponible et plus rapide.
Faut-il obligatoirement un Mac Apple Silicon ou peut-on utiliser un PC Windows ?
L'article couvre Mac et Linux. La version parakeet-mlx est spécifiquement optimisée pour Apple Silicon via le framework MLX de Apple. Sur PC avec GPU Nvidia, il existe d'autres variantes de Parakeet, mais elles nécessitent une configuration différente non détaillée ici.
Que faire si ffmpeg ou Homebrew ne sont pas installés ?
Le script install.sh vérifie automatiquement la présence de ces outils et les installe si nécessaire. Il suffit de lancer ce script une seule fois avant d'utiliser transcribe.sh.
Quels formats de sortie obtient-on après la transcription ?
Vous récupérez quatre fichiers : un texte brut (.txt), des sous-titres horodatés (.srt), le format WebVTT (.vtt) et un JSON détaillé avec les timestamps mot par mot (.json). Vous pouvez ensuite exploiter ces fichiers pour du sous-titrage, du résumé automatique ou tout autre traitement textuel.
Est-ce que le script identifie les différents interlocuteurs dans une conversation ?
Non, la speaker diarization (détection des locuteurs) n'est pas prise en charge pour l'instant. Le transcript produit le texte de façon continue sans distinguer qui parle.

Alexandre P.
Développeur passionné depuis plus de 20 ans, j'ai une appétence particulière pour les défis techniques et changer de technologie ne me fait pas froid aux yeux.
Poursuivre la lecture


