DEV-AI

Whisper Traduction : traduire un audio en anglais et en français avec Python

Publié le — Par l'équipe DEV-AI

Whisper Traduction : traduire un audio vers l'anglais et le français en Python
En résumé : Whisper sait traduire un audio, mais uniquement vers l'anglais — c'est une limite du modèle, pas un bug. Pour obtenir du français (ou toute autre langue), il faut ajouter une étape de traduction après Whisper. On vous montre les deux : la traduction native vers l'anglais avec 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 :

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 :

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
À noter : le paramètre 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 :

  1. Whisper transcrit l'audio (dans sa langue d'origine, ou directement vers l'anglais comme pivot)
  2. 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.

Astuce : pour traduire depuis une langue rare vers le français sans modèle direct disponible, passez par l'anglais comme pivot : Whisper 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 Traduction Python Ollama ASR NLP

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 →

Articles liés

Questions fréquentes

Whisper peut-il traduire un audio vers le français ?

Pas nativement. Le paramètre task="translate" de Whisper traduit uniquement vers l'anglais, quelle que soit la langue source. Pour obtenir du français, il faut chaîner Whisper avec une étape de traduction supplémentaire (modèle Hugging Face type Helsinki-NLP, ou un LLM local via Ollama).

Quels modèles Whisper supportent la traduction ?

Tous les modèles multilingues (tiny, base, small, medium, large-v3) supportent task="translate". Les modèles suffixés .en ne le supportent pas, et large-v3-turbo ne le supporte pas non plus de façon fiable. OpenAI recommande medium ou large-v3 pour la meilleure qualité.

Quelle est la différence entre transcribe et translate ?

transcribe retranscrit l'audio dans sa langue d'origine. translate traduit directement l'audio parlé vers l'anglais écrit, sans transcription intermédiaire dans la langue source.

Comment traduire un audio vers le français avec Python ?

Transcrivez l'audio avec Whisper, puis traduisez le texte obtenu avec un modèle de traduction dédié (Helsinki-NLP via Hugging Face transformers) ou un LLM local via Ollama.

faster-whisper supporte-t-il aussi la traduction ?

Oui, avec le même paramètre task="translate" que la bibliothèque officielle, et les mêmes limites : anglais uniquement, non fiable sur large-v3-turbo.

Aller plus loin

Formation recommandée