En résumé (août 2026) : OpenAI Whisper est un modèle de reconnaissance vocale gratuit et open-source, publié sous licence MIT, qui s'exécute entièrement sur votre machine sans frais. Installez-le avec pip install -U openai-whisper, pointez-le vers un fichier audio et obtenez une transcription en quelques secondes. Pour une configuration hébergée, l'API OpenAI expose le même modèle sous le nom whisper-1 à $0.006 par minute, sans abonnement requis. Six tailles de modèle, de la version compacte à 39M paramètres jusqu'au modèle large à 1,55B paramètres, permettent d'adapter précision et vitesse à votre matériel.
Dernière vérification : 1er août 2026, d'après la documentation officielle et les pages de tarification.
Ce qu'est Whisper et ce qu'il coûte
Whisper est un modèle de reconnaissance vocale polyvalent entraîné sur 680 000 heures d'audio multilingue. OpenAI a publié les poids et le code en 2022 ; le package sur PyPI (openai-whisper, version 20250625) est sous licence MIT, ce qui permet de l'utiliser dans des produits commerciaux sans redevance.
L'exécution en local est gratuite dans le sens opérationnel. Vous payez l'électricité de votre matériel ou le temps de VM cloud, sans appels API ni compteur d'utilisation. L'API hébergée whisper-1 d'OpenAI coûte $0.006 par minute d'audio, facturée à la seconde sans frais minimum ni abonnement mensuel.
Pour un usage personnel ponctuel, le local est presque toujours moins cher. Pour les fonctions serverless, les pipelines CI ou les équipes sans accès GPU, l'API est souvent plus pertinente dès lors qu'on prend en compte le coût d'ingénierie lié à l'infrastructure d'inférence.
Installation de Whisper en local
Vous avez besoin de Python 3.8 ou plus récent et de ffmpeg dans votre PATH système. Installez ffmpeg en premier, puis le package Python.
ffmpeg sur Ubuntu/Debian :
sudo apt update && sudo apt install ffmpeg
ffmpeg sur macOS (Homebrew) :
brew install ffmpeg
ffmpeg sur Windows (Chocolatey) :
choco install ffmpeg
Installation de Whisper :
pip install -U openai-whisper
Si l'installation échoue lors de la compilation de tiktoken, vous avez également besoin de Rust. Consultez le README officiel pour le message d'erreur exact et la solution. Une fois installé, la commande whisper est disponible globalement dans votre environnement Python.
Choisir le bon modèle
Whisper propose six modèles. Turbo est le choix recommandé par défaut : il s'exécute environ 8x plus vite que le modèle large tout en ne nécessitant que 6 Go de VRAM, ce qui en fait le choix pratique pour la plupart des machines.
| Modèle | Paramètres | VRAM requise | Vitesse vs. large | Idéal pour |
|---|---|---|---|---|
| tiny | 39M | ~1 GB | ~10x plus rapide | Machines sans GPU, ébauches rapides |
| base | 74M | ~1 GB | ~7x plus rapide | Sans GPU, précision légèrement meilleure |
| small | 244M | ~2 GB | ~4x plus rapide | Ordinateurs portables avec GPU intégré |
| medium | 769M | ~5 GB | ~2x plus rapide | GPU milieu de gamme, bonne précision |
| large | 1550M | ~10 GB | 1x (référence) | Précision maximale, GPU haut de gamme |
| turbo | 809M | ~6 GB | ~8x plus rapide | Choix recommandé ; meilleur équilibre |
Pour l'audio exclusivement en anglais, les variantes avec suffixe .en (tiny.en, base.en, small.en, medium.en) sacrifient la capacité multilingue pour une précision légèrement meilleure sur le contenu anglais. Whisper prend en charge 98 langues au total ; omettez l'option de langue et il détecte automatiquement à partir des 30 premières secondes d'audio.
L'exécution entièrement sur CPU est possible. Sur un ordinateur portable moderne sans GPU, attendez-vous à ce que la transcription prenne à peu près autant de temps que l'audio lui-même. Un Mac Apple Silicon avec le backend MPS est nettement plus rapide. Un GPU NVIDIA avec CUDA est l'option locale la plus rapide.
Transcription en ligne de commande
Après l'installation, whisper est disponible globalement. L'appel le plus simple :
whisper audio.mp3
Cette commande génère cinq fichiers dans le répertoire courant : audio.txt (texte brut), audio.vtt (sous-titres WebVTT), audio.srt (sous-titres SubRip), audio.tsv (séparé par tabulations avec horodatages) et audio.json (données de segments complètes avec scores de confiance). Le modèle par défaut est turbo.
Spécifier un modèle :
whisper interview.mp4 --model turbo
Obtenir un seul format de sortie :
whisper meeting.m4a --model turbo --output_format srt
Définir la langue explicitement (plus rapide et plus précis que la détection automatique) :
whisper lecture.wav --model small --language French
L'option --language accepte les noms de langue ou les codes ISO à deux lettres. Préciser la langue évite l'étape de détection automatique et améliore la précision sur les discours avec accent.
Transcription en Python
import whisper
model = whisper.load_model("turbo")
result = model.transcribe("audio.mp3")
print(result["text"])
load_model télécharge et met en cache les poids au premier lancement. Chargez le modèle une seule fois et réutilisez-le pour tous les fichiers ; le recharger à chaque fichier multiplie inutilement le temps de démarrage.
Pour obtenir des horodatages au niveau des segments :
model = whisper.load_model("turbo")
result = model.transcribe("audio.mp3")
for segment in result["segments"]:
start = segment["start"]
end = segment["end"]
text = segment["text"]
print(f"[{start:.1f}s - {end:.1f}s] {text}")
Pour des horodatages au niveau des mots, ajoutez word_timestamps=True à l'appel transcribe(). Chaque dictionnaire de segment contient alors une liste words avec les valeurs de début, fin et probabilité par mot.
Utiliser l'API OpenAI
Pour les fonctions serverless, les pipelines cloud ou tout environnement où l'installation d'un runtime GPU n'est pas pratique, l'API hébergée est l'alternative pertinente. Consultez notre guide sur la création d'agents IA pour intégrer la transcription dans une automatisation plus large.
from openai import OpenAI
client = OpenAI() # reads OPENAI_API_KEY from environment
with open("audio.mp3", "rb") as audio_file:
transcription = client.audio.transcriptions.create(
model="whisper-1",
file=audio_file,
)
print(transcription.text)
L'API accepte les fichiers mp3, mp4, mpeg, mpga, m4a, wav et webm jusqu'à 25 Mo par requête. À $0.006 par minute, une interview d'une heure coûte $0.36. Les fichiers de plus de 25 Mo doivent être découpés avant envoi.
Découpez un fichier long avec ffmpeg en segments de 10 minutes :
ffmpeg -i interview.mp3 -f segment -segment_time 600 -c copy part%03d.mp3
Ensuite, parcourez les parties et assemblez les champs texte.
La documentation OpenAI met désormais en avant gpt-transcribe comme option plus récente pour certaines tâches de transcription ; whisper-1 reste le modèle Whisper direct sur l'API.
Fichiers volumineux et traitements par lots
Whisper traite l'audio en fenêtres de 30 secondes en interne. Pour les fichiers locaux longs, transmettez-les en entier en ligne de commande et Whisper gère la segmentation automatiquement. Vous ne devez prédécouper que lorsque vous atteignez la limite de 25 Mo de l'API.
Pour la transcription par lots de nombreux fichiers :
import whisper
from pathlib import Path
model = whisper.load_model("turbo")
for audio_path in Path("recordings/").glob("*.mp3"):
result = model.transcribe(str(audio_path))
output_path = audio_path.with_suffix(".txt")
output_path.write_text(result["text"])
print(f"Done: {output_path}")
Chargez le modèle une seule fois en dehors de la boucle. Chaque appel transcribe() réutilise les mêmes poids chargés.
Pour les très grands lots (des centaines de fichiers), envisagez d'exécuter sur une instance GPU cloud. À environ 8x la vitesse temps réel, turbo traite une heure d'audio en moins de 8 minutes sur un GPU NVIDIA correct.
FAQ
Whisper fonctionne-t-il sur un Mac Apple Silicon ?
Oui. Whisper utilise automatiquement le backend MPS (Metal Performance Shaders) de PyTorch sur Apple Silicon dès lors que PyTorch est installé normalement. Turbo et small sont les meilleurs compromis sur les Mac de la gamme M sans contraintes de VRAM dédiée.
Quelle est la précision de Whisper sur un audio bruité ou avec accent ?
Whisper a été entraîné sur des enregistrements audio variés du monde réel, notamment des podcasts et des conférences, ce qui lui permet de gérer le bruit de fond modéré et une large gamme d'accents mieux que la plupart des anciens moteurs. Un audio très dégradé (écho, bruit de foule, enregistrements téléphoniques à très bas débit) produira encore des erreurs. Turbo et large sont les choix les plus robustes pour les audios difficiles.
Whisper peut-il identifier les locuteurs ?
Whisper ne génère pas d'étiquettes de locuteurs. Pour la diarisation des locuteurs, combinez la sortie de Whisper avec une bibliothèque dédiée comme pyannote.audio, ou utilisez le modèle gpt-4o-transcribe-diarize de l'API OpenAI, qui gère la diarisation nativement mais est un produit distinct de Whisper.
Mon audio est-il envoyé à OpenAI lorsque j'exécute Whisper en local ?
Non. Le package local s'exécute entièrement sur votre machine. Les fichiers audio ne quittent jamais votre système. Seule la route API (whisper-1) transmet l'audio aux serveurs OpenAI, ce qui est pertinent pour les enregistrements sensibles soumis à des obligations de confidentialité.
Et si j'ai besoin de sous-titres avec un timing précis ?
Utilisez --output_format srt ou --output_format vtt depuis la CLI. Les deux formats incluent des horodatages de début et de fin pour chaque segment. Pour un contrôle plus fin de la longueur des segments, ajoutez les options --max_line_width et --max_line_count pour limiter la longueur des lignes de sous-titres.
Des guides comme celui-ci paraissent trois fois par semaine dans AI Weekly, gratuitement, lus par plus de 40,000 praticiens.