Whisper Traduction : traduire un audio en anglais et en français avec Python
Publié le — Par l'équipe DEV-AI
task="translate", et le pipeline complet vers le français avec Python et Ollama.
Ce qu'il faut savoir avant de commencer
Si vous cherchez à « traduire un audio avec Whisper », il y a un point qui surprend beaucoup de monde : le paramètre de traduction intégré de Whisper ne traduit que vers l'anglais, quelle que soit la langue parlée dans l'audio d'origine. Ce n'est pas une limitation de configuration — c'est ainsi que le modèle a été entraîné par OpenAI. Traduire un français vers l'espagnol, ou un japonais vers le français, n'est tout simplement pas prévu par la fonctionnalité native.
La bonne nouvelle : ce n'est pas bloquant. Ce guide couvre les deux cas :
- Vous voulez de l'anglais (sous-titres anglais pour une vidéo, transcription anglaise d'une réunion en français...) → la fonction native de Whisper suffit, en une ligne de code.
- Vous voulez du français (ou une autre langue) à partir d'un audio dans une langue étrangère → il faut ajouter une étape de traduction de texte après Whisper. On vous montre comment, avec des outils 100 % gratuits et utilisables en local.
Si vous découvrez tout juste Whisper, notre guide complet sur la transcription audio en français couvre l'installation, le choix du modèle et la génération de sous-titres — ce guide-ci se concentre spécifiquement sur la traduction.
La traduction native de Whisper (vers l'anglais)
Whisper propose deux modes via le paramètre task :
task="transcribe"(par défaut) : retranscrit l'audio dans sa langue d'origine. Un audio en français donne du texte en français.task="translate": traduit l'audio directement en texte anglais, quelle que soit la langue parlée. Il ne s'agit pas d'une transcription suivie d'une traduction interne — le modèle génère directement la sortie anglaise à partir de l'audio.
Avec la bibliothèque officielle openai-whisper :
import whisper
model = whisper.load_model("medium")
# Un audio en français, un discours en japonais, peu importe : la sortie est en anglais
result = model.transcribe("discours_fr.mp3", task="translate")
print(result["text"]) # → texte en anglais
Avec faster-whisper (4× plus rapide sur CPU, voir notre guide de transcription pour l'installation) :
from faster_whisper import WhisperModel
model = WhisperModel("medium", device="cpu", compute_type="int8")
segments, info = model.transcribe("discours_fr.mp3", task="translate")
for segment in segments:
print(segment.text) # → texte en anglais, segment par segment
task est identique entre openai-whisper et faster-whisper — le comportement (et les limites décrites plus bas) sont les mêmes dans les deux bibliothèques.
Quels modèles supportent la traduction ?
Tous les modèles Whisper ne sont pas égaux face à la traduction. Un point en particulier surprend souvent : le modèle turbo (nom sous lequel OpenAI l'expose désormais, aussi appelé large-v3-turbo — une version optimisée de large-v3), pourtant le plus rapide et souvent recommandé pour la transcription, n'est pas entraîné pour les tâches de traduction. Avec task="translate", il peut retourner le texte dans la langue d'origine au lieu de produire une traduction anglaise. OpenAI recommande medium ou large-v3 pour la traduction.
| Modèle | Supporte task="translate" |
Remarque |
|---|---|---|
| tiny, base, small | Oui | Rapide mais qualité de traduction limitée |
| medium | Oui | Recommandé par OpenAI — bon compromis |
| large-v3 | Oui | Recommandé par OpenAI — meilleure qualité |
| large-v3-turbo | Non fiable | N'est pas entraîné pour la traduction — évitez-le pour cet usage |
| tiny.en, base.en, small.en, medium.en | Non | Modèles anglais uniquement — pas d'objectif de traduction |
En pratique : pour de la traduction, utilisez medium ou large-v3 (les recommandations officielles), pas turbo. Pour la transcription simple (sans traduction), large-v3-turbo reste un excellent choix — voir notre guide de transcription pour le comparatif complet des modèles.
Traduire vers le français : le pipeline complet
Puisque Whisper ne traduit nativement que vers l'anglais, obtenir du français à partir d'un audio en anglais, allemand ou japonais demande une étape supplémentaire. Le principe est simple :
- Whisper transcrit l'audio (dans sa langue d'origine, ou directement vers l'anglais comme pivot)
- Un modèle de traduction de texte traduit ce texte vers le français
Option 1 : traduction avec un LLM local via Ollama
Si vous avez déjà Ollama installé pour d'autres usages, c'est l'option la plus simple à mettre en place : un modèle comme Qwen3 traduit très correctement, entièrement en local, sans clé API ni coût par requête.
import whisper
import ollama
# 1. Transcription avec Whisper (langue d'origine)
model = whisper.load_model("medium")
result = model.transcribe("discours_en.mp3")
texte_source = result["text"]
# 2. Traduction vers le français avec un modèle local via Ollama
response = ollama.chat(
model="qwen3",
messages=[{
"role": "user",
"content": f"Traduis ce texte en français, réponds uniquement avec la traduction :\n\n{texte_source}"
}]
)
print(response["message"]["content"])
Pour aller plus loin sur l'utilisation de Qwen3 en local (thinking mode, benchmarks, installation), notre guide dédié détaille l'API Python complète.
Option 2 : un modèle de traduction dédié (Hugging Face)
Si vous préférez un modèle plus léger, spécialisé uniquement dans la traduction (pas un LLM généraliste), les modèles Helsinki-NLP / OPUS-MT sont une référence open source éprouvée :
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
model_name = "Helsinki-NLP/opus-mt-en-fr"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSeq2SeqLM.from_pretrained(model_name)
inputs = tokenizer(texte_source, return_tensors="pt", truncation=True)
translated = model.generate(**inputs)
texte_fr = tokenizer.decode(translated[0], skip_special_tokens=True)
print(texte_fr)
Avec Transformers 4.x, le raccourci pipeline("translation", model=model_name) reste également utilisable. Transformers 5 a retiré le type de pipeline "translation" — le chargement direct ci-dessus fonctionne dans les deux cas.
Chaque paire de langues a son propre modèle (opus-mt-en-fr pour anglais→français, opus-mt-de-fr pour allemand→français, etc.) — vérifiez sur Hugging Face que la paire dont vous avez besoin existe avant de vous engager sur cette option.
task="translate" (→ anglais), puis opus-mt-en-fr ou un LLM (→ français). Deux étapes de traduction ajoutent une légère perte de nuance, mais cette stratégie permet de couvrir un très grand nombre de langues sources supportées par Whisper, même lorsqu'aucun modèle de traduction direct vers le français n'est disponible.
Traduction native vs pipeline complet : que choisir ?
| Critère | Whisper natif (task="translate") |
Pipeline complet (Whisper + traduction) |
|---|---|---|
| Langue cible | Anglais uniquement | Selon le modèle de traduction utilisé |
| Simplicité | Une seule ligne de code | Deux étapes, un modèle supplémentaire à installer |
| Latence | Plus rapide (un seul passage modèle) | Plus lente (deux passages modèle) |
| Coût | Gratuit, local | Gratuit et local avec Ollama/Hugging Face |
En clair : si l'anglais vous suffit, restez sur la fonction native — c'est plus simple et plus rapide. Si vous avez besoin du français ou d'une autre langue, le pipeline à deux étapes est la seule option, mais reste entièrement réalisable gratuitement et en local.
Bonus : générer des sous-titres traduits
Whisper renvoie des segments horodatés (début/fin de chaque phrase), ce qui permet de générer directement un fichier .srt traduit en conservant le minutage d'origine — pratique pour sous-titrer une vidéo dans une autre langue que l'originale. Notre guide de transcription détaille la génération de fichiers SRT ; il suffit d'appliquer la traduction sur le texte de chaque segment avant de l'écrire dans le fichier, en gardant les mêmes horodatages.
En résumé
- Whisper traduit nativement, mais uniquement vers l'anglais — quelle que soit la langue source.
- Utilisez
mediumoularge-v3pour la traduction — évitezlarge-v3-turbo, qui ne la supporte pas de façon fiable. - Pour traduire vers le français (ou toute autre langue), ajoutez une étape de traduction de texte après Whisper : un LLM local via Ollama, ou un modèle dédié comme Helsinki-NLP/OPUS-MT.
- Les deux approches restent gratuites et exécutables 100 % en local, sans envoyer vos données à un service tiers.
Envie de tester la transcription sans écrire de code ?
Notre outil de transcription audio propulsé par Whisper est gratuit, sans passer par une API tierce.
Transcrire un audio gratuitement →