Logo VRAMfarm VRAMfarm
FR
S’inscrire

12 novembre 2026 · Équipe VRAMfarm

Transcription Whisper sur GPU : large-v3 ou turbo, faster-whisper et locuteurs avec WhisperX

Des formes d’onde audio qui se transforment sur un GPU en lignes de transcription horodatées avec le nom des locuteurs : la transcription Whisper sur un GPU loué

Cent heures d’entretiens enregistrés, cela ressemble à des semaines de saisie. Sur une RTX 4090 louée, Whisper large-v3 les transcrit en une à deux heures de temps GPU environ, soit à peu près 0,89 €, avec un horodatage pour chaque phrase. Le modèle n’a besoin que de 3 à 10 Go de mémoire : la question n’est donc pas tant « quelle carte suffit » que quelle version de Whisper utiliser et comment garder le GPU occupé.

Quel Whisper : large-v3, turbo ou plus petit

Whisper d’OpenAI existe en plusieurs tailles. Deux comptent pour le travail sur GPU : elles partagent la même conception d’encodeur mais diffèrent par le décodeur.

Modèle Paramètres VRAM, code d’origine (fp16) VRAM, faster-whisper Vitesse Idéal pour
large-v3 1,55 milliard ~10 Go ~4–5 Go en fp16, ~3 Go en int8 1× La meilleure précision, la traduction, l’audio difficile
large-v3-turbo 0,8 milliard ~6 Go ~2–3 Go plusieurs fois plus rapide La parole nette, les gros volumes
medium / small 0,77 / 0,24 milliard 2–5 Go 1–2 Go plus rapide encore Les tâches en anglais uniquement, les brouillons très bon marché

Turbo, c’est large-v3 avec un décodeur bien plus petit (4 couches au lieu de 32). Sur une parole claire, sa précision est proche de large-v3 et il tourne plusieurs fois plus vite. Il fait plus d’erreurs avec les accents, les conversations qui se chevauchent et les langues rares, et il n’a pas été entraîné à la traduction. Un bon choix par défaut : turbo pour les enregistrements propres comme les podcasts et les cours, large-v3 pour les appels téléphoniques, les pièces bruyantes, les accents marqués ou tout ce que vous allez citer.

faster-whisper est une réimplémentation de Whisper sur le moteur CTranslate2. Mêmes modèles et pratiquement la même précision, jusqu’à environ quatre fois plus rapide que le code d’OpenAI avec moins de mémoire, et il peut quantifier en int8 avec peu de perte. WhisperX s’appuie sur faster-whisper et ajoute deux choses : des horodatages au niveau du mot grâce à un modèle d’alignement séparé, et l’identification des locuteurs (diarisation).

Avez-vous vraiment besoin d’un GPU ?

Pour quelques enregistrements par mois, non. Un ordinateur portable avec Apple Silicon ou un processeur récent fait tourner turbo avec whisper.cpp à un rythme confortable, et les API de transcription hébergées facturent à la minute sans aucune installation. Les API hébergées de la classe de Whisper coûtent de quelques centimes à environ 0,30 € par heure d’audio (novembre 2026), selon le fournisseur et le modèle.

Un GPU loué l’emporte quand :

  • vous avez du volume : des dizaines ou des centaines d’heures, quand le prix horaire de l’API s’additionne et que le GPU est occupé à chaque minute ;
  • les enregistrements sont sensibles : entretiens, patients, appels internes que vous ne voulez pas envoyer à une API tierce ;
  • vous avez besoin des locuteurs ou d’un pipeline sur mesure, par exemple transcrire, identifier les locuteurs, puis résumer avec un LLM local ;
  • les fichiers sont volumineux : beaucoup d’API limitent la taille d’un envoi ; votre propre serveur, lui, ne s’en soucie pas.

Vitesse : heures d’audio par heure GPU

La vitesse de Whisper s’exprime généralement en multiple du temps réel : 50× signifie une heure d’audio en 72 secondes. Le levier le plus important n’est pas la carte mais le batching : le pipeline par lots de faster-whisper fait passer de nombreux morceaux de 30 secondes dans le modèle en même temps, ce qui occupe un GPU moderne.

Configuration RTX 3060 RTX 3090 RTX 4090
large-v3, code d’origine d’OpenAI 4–8× 6–15× 8–20×
large-v3, faster-whisper, un morceau à la fois 8–15× 15–30× 20–40×
large-v3, faster-whisper par lots (lot de 16) 20–40× 40–80× 60–150×
turbo, faster-whisper par lots 40–90× 80–180× 120–250×

Lisez chaque chiffre comme « heures d’audio par heure GPU ». Ce sont des fourchettes indicatives tirées de benchmarks publics et des caractéristiques des cartes, pas de nos mesures. La vitesse réelle dépend de la part de parole dans l’audio, de la taille du beam, des réglages VAD et du CPU, qui décode les fichiers audio et peut devenir le goulot d’étranglement dans le haut de la fourchette. La diarisation dans WhisperX ajoute une passe séparée ; prévoyez 30 à 60 % de temps en plus pour les longs fichiers.

La carte la moins chère par heure d’audio est généralement la RTX 3090 ou la RTX 4090, selon celle qui offre le meilleur rapport de prix du moment ; la page des tarifs affiche les deux. Les cartes de data center comme la H100 sont plus rapides encore, mais la transcription n’utilise pas leur mémoire et elles coûtent plusieurs fois plus cher à l’heure.

Installer faster-whisper sur un serveur loué

Il n’existe pas d’application Whisper prête à l’emploi ; un serveur PyTorch + Jupyter vide suffit. Choisissez une carte de 12 à 24 Go, lancez, et ouvrez Jupyter → File → New → Terminal (ou SSH, voir le guide de la clé SSH).

Envoyez d’abord l’audio. Le convertir sur votre ordinateur en mono 16 kHz fait gagner beaucoup de temps d’envoi sans nuire à la précision, car Whisper rééchantillonne de toute façon à 16 kHz : une heure de MP3 à 128 kbit/s pèse environ 58 Mo, une heure d’Opus mono en 16 kHz environ 11 Mo.

# sur votre ordinateur, une fois par fichier
ffmpeg -i interview.mp4 -vn -ac 1 -ar 16000 -c:a libopus -b:a 24k interview.opus

Envoyez une archive zip via Jupyter ou avec scp, ou téléchargez-la sur le serveur depuis votre propre stockage cloud. Ensuite, sur le serveur :

pip install faster-whisper
mkdir -p /workspace/audio /workspace/out   # placez les fichiers audio dans /workspace/audio

Enregistrez ceci sous /workspace/transcribe.py :

import glob, os
from faster_whisper import WhisperModel, BatchedInferencePipeline

model = WhisperModel("large-v3", device="cuda", compute_type="float16")  # ou "large-v3-turbo"
batched = BatchedInferencePipeline(model=model)

def ts(t):
    h, rem = divmod(t, 3600); m, s = divmod(rem, 60)
    return f"{int(h):02}:{int(m):02}:{s:06.3f}".replace(".", ",")

for path in sorted(glob.glob("/workspace/audio/*")):
    name = os.path.splitext(os.path.basename(path))[0]
    segments, info = batched.transcribe(path, batch_size=16, vad_filter=True)  # ajoutez language="fr" si vous connaissez la langue
    with open(f"/workspace/out/{name}.srt", "w") as srt, open(f"/workspace/out/{name}.txt", "w") as txt:
        for i, seg in enumerate(segments, 1):
            srt.write(f"{i}\n{ts(seg.start)} --> {ts(seg.end)}\n{seg.text.strip()}\n\n")
            txt.write(seg.text.strip() + "\n")
    print(name, info.language, round(info.duration / 60), "min")

Lancez-le avec nohup python /workspace/transcribe.py > /workspace/log.txt 2>&1 & pour qu’il continue quand vous fermez le navigateur. La première exécution télécharge le modèle (environ 3 Go pour large-v3), ce qui compte comme du trafic au tarif de la machine.

Si faster-whisper se plaint de ne pas pouvoir charger libcudnn ou libcublas, c’est que les bibliothèques CUDA qu’il attend sont absentes du chemin : pip install nvidia-cublas-cu12 nvidia-cudnn-cu12, puis suivez la ligne LD_LIBRARY_PATH du README de faster-whisper. Le pilote et la version CUDA de la machine sont affichés avant le lancement ; plus de détails dans les incompatibilités entre CUDA et le pilote.

Indiquer language quand vous la connaissez fait gagner du temps et évite une erreur de détection occasionnelle sur 30 premières secondes calmes. Avec batch_size=16, large-v3 utilise environ 6 à 10 Go de VRAM ; sur une carte de 12 Go, descendez à 8 si la mémoire vient à manquer.

Identifier les locuteurs avec WhisperX

Pour des entretiens et des réunions, vous voulez généralement « locuteur 1 / locuteur 2 », pas un seul bloc de texte. WhisperX le fait en une commande. Il impose ses propres versions de PyTorch et d’autres bibliothèques : installez-le donc dans un environnement virtuel séparé pour qu’il ne casse pas vos autres outils (il télécharge son propre PyTorch, soit quelques Go de trafic en plus) :

apt-get update && apt-get install -y ffmpeg
python -m venv /workspace/wx && . /workspace/wx/bin/activate
pip install whisperx
export HF_TOKEN=<your Hugging Face read token>
whisperx /workspace/audio/meeting.opus --model large-v3 --language en \
  --diarize --hf_token $HF_TOKEN --output_format srt --output_dir /workspace/out

Les modèles de diarisation viennent de pyannote et sont à accès restreint sur Hugging Face : ouvrez leurs pages de modèle, acceptez les conditions et utilisez un token de lecture. Ajoutez --min_speakers 2 --max_speakers 4 quand vous connaissez le nombre de locuteurs ; cela améliore nettement la séparation. Comptez quelques gigaoctets de VRAM de plus que pour la transcription ; une carte de 24 Go a largement la place.

La diarisation est le maillon faible de la chaîne. Les paroles qui se chevauchent, les voix semblables et les interjections courtes (« oui », « d’accord ») reçoivent la mauvaise étiquette plus souvent que Whisper ne se trompe de mots. Vérifiez les locuteurs sur les premières minutes avant de vous fier à une longue transcription.

Sous-titres : SRT et VTT

Le script ci-dessus écrit des fichiers SRT avec un segment Whisper par sous-titre. Les segments peuvent être longs, jusqu’à 30 secondes de parole, ce qui se lit mal à l’écran. WhisperX s’en sort mieux, car il aligne chaque mot sur l’audio :

whisperx video.opus --model large-v3 --language en --output_format srt \
  --max_line_width 42 --max_line_count 2 --output_dir /workspace/out

Vous obtenez des sous-titres d’au plus deux lignes de 42 caractères, un format courant à la télévision, avec un minutage qui suit les mots. Utilisez --output_format vtt pour les lecteurs web. YouTube, Premiere, DaVinci Resolve et la plupart des lecteurs importent directement le SRT. Pour des sous-titres traduits, utilisez soit le mode de traduction de Whisper vers l’anglais, soit une transcription dans la langue d’origine suivie d’une traduction du texte SRT par un LLM local, qui donne généralement un résultat plus naturel.

Combien coûtent 100 heures d’audio

Au milieu des fourchettes ci-dessus, avec faster-whisper par lots :

Tâche Carte Vitesse retenue Temps GPU Coût
100 h, large-v3 RTX 3090 60× 1 h 40 0,50 €
100 h, large-v3 RTX 4090 100× 1 h 0,59 €
100 h, turbo RTX 4090 180× 33 min 0,32 €
100 h, large-v3 avec locuteurs WhisperX RTX 4090 65× 1 h 32 0,91 €

Ajoutez 10 à 15 minutes pour l’installation et le téléchargement des modèles. Les petites tâches paient le minimum de 15 minutes par lancement : une heure d’audio coûte au moins 0,15 € sur une RTX 4090, aussi vite qu’elle tourne. Rassemblez donc vos enregistrements et transcrivez-les en une seule session plutôt qu’un fichier par lancement.

Face à une API à environ 0,15 à 0,30 € par heure d’audio (novembre 2026), les mêmes 100 heures coûteraient environ 15 à 30 €, et quelques euros chez les fournisseurs d’inférence rapide les moins chers. Le GPU revient moins cher en volume, mais l’installation et le temps sont pour vous ; pour cinq heures d’audio par mois, l’API est le choix raisonnable.

Quand le script a terminé, compressez /workspace/out, téléchargez l’archive depuis Jupyter et arrêtez le serveur. Si vous relancez la même tâche la semaine suivante, Enregistrer et arrêter conserve les scripts et l’environnement WhisperX dans /workspace (l’environnement seul représente quelques Go de stockage) ; supprimez d’abord l’audio s’il ne doit pas être stocké. La page Whisper donne la version courte de ces commandes.

Questions sur ce sujet

Quelles langues Whisper comprend-il ?

Whisper a été entraîné sur 99 langues. La précision est très bonne pour l’anglais, l’espagnol, l’allemand, le français, l’italien, le portugais et les autres langues très parlées, et baisse pour les langues peu représentées dans les données d’entraînement. Testez d’abord quelques minutes de votre propre audio.

Whisper peut-il traduire en anglais ?

Oui, large-v3 dispose d’un mode de traduction qui produit un texte anglais à partir de n’importe quelle langue prise en charge. Le modèle turbo n’a pas été entraîné à la traduction et s’en sort mal : utilisez large-v3 pour cela.

Pourquoi la transcription répète-t-elle une phrase ou invente-t-elle du texte pendant les silences ?

Whisper comble les longues pauses et la musique par des suppositions. Activez la détection d’activité vocale (vad_filter=True dans faster-whisper, intégrée à WhisperX), qui saute les passages silencieux avant la transcription.

Mes enregistrements sont-ils en sécurité sur une machine louée ?

Les enregistrements restent sur le serveur que vous avez loué et sont effacés avec son disque à l’arrêt ; aucune API vocale externe ne les voit. L’hôte exploite toutefois le matériel : pour un audio très confidentiel, choisissez le pays de la machine avant le lancement et supprimez les fichiers une fois le travail terminé.

Trouvez le GPU qui convient à votre modèle

Choisissez un modèle et voyez la carte la moins chère avec assez de VRAM, facturée à la minute en euros.