Formats supportés et langues
Sur cette page
Mise à jour du 2 novembre 2026 — modèles audio. Plusieurs modèles de ce cours sont dépréciés :
tts-1,tts-1-hdetgpt-4o-mini-ttss’arrêtent le 6 janvier 2027 (remplaçant indiqué :gpt-realtime-2.1-mini, que le guide TTS d’OpenAI déclare non pris en charge par/v1/audio/speech: la migration de la synthèse vocale passe par l’API Realtime) ;gpt-realtime,gpt-4o-realtimeet les anciens modèles audio le 20 janvier 2027 (gpt-realtime-2.1,gpt-realtime-2.1-mini,gpt-audio-1.5) ;whisper-1,gpt-4o-transcribeet/v1/audio/translationsle 26 février 2027 (gpt-transcribe,gpt-live-transcribe,v1/realtime/translations). Pour la voix full-duplex, GPT-Live 1 est disponible dans l’API depuis le 10 septembre 2026. Leçon corrigée le 3 novembre 2026 : exemples passés dewhisper-1àgpt-transcribe(paramètrelanguages), nombre de langues de Whisper corrigé (98 et non « plus de 50 », d’après le guide File transcription), méthode multilingue en deux passes remplacée par les indices de langues degpt-transcribe, tarif sourcé. Sources : File transcription · GPT-Transcribe · Create transcription.
Formats supportés et langues
Les modèles de transcription d’OpenAI acceptent une large variété de formats audio et prennent en charge des dizaines de langues. Choisir le bon format d’entrée et configurer correctement la langue impacte directement la qualité de transcription et les coûts. Cette leçon détaille les options disponibles et les meilleures pratiques.
Formats audio acceptés
D’après sa référence, l’endpoint de transcription accepte les formats flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav et webm, avec un nom de fichier portant l’extension. Les plus courants :
| Format | Extension | Compression | Usage recommandé |
|---|---|---|---|
| MP3 | .mp3 | Lossy, bon ratio | Podcasts, enregistrements vocaux |
| MP4 / M4A | .mp4, .m4a | AAC lossy | Vidéos, enregistrements mobiles |
| WAV | .wav | Non compressé | Enregistrements studio |
| WebM | .webm | Opus lossy | Enregistrements navigateur |
| FLAC | .flac | Lossless | Qualité maximale sans perte |
| OGG | .ogg | Vorbis/Opus | Applications open source |
La taille maximale par fichier est de 25 Mo. Pour un MP3 à 128 kbps, cela représente environ 25 minutes d’audio. Pour du WAV non compressé, c’est beaucoup moins.
Optimiser la taille des fichiers
from pydub import AudioSegment
def optimiser_pour_transcription(input_path: str, output_path: str):
"""Convertit un fichier audio en MP3 léger, suffisant pour la parole."""
audio = AudioSegment.from_file(input_path)
# Convertir en mono 16kHz (suffisant pour la parole)
audio = audio.set_channels(1)
audio = audio.set_frame_rate(16000)
# Exporter en MP3 64kbps (bon compromis qualité/taille pour la voix)
audio.export(output_path, format="mp3", bitrate="64k")
return output_path
Langues supportées
whisper-1 couvre 98 langues, avec une précision qui varie selon la langue. gpt-transcribe détecte la langue seul ; si vous savez lesquelles attendre, indiquez-les dans languages : codes ISO 639-1 (fr, en, es…), certains codes ISO 639-3 (eng, spa, yue, cmn) et les variantes régionales du chinois (zh-cn, zh-tw, zh-hk). Un code non pris en charge ou mal formé fait rejeter la requête.
# Détection automatique (par défaut)
result = client.audio.transcriptions.create(
model="gpt-transcribe",
file=audio_file,
)
print(result.languages) # langues reconnues avec assez de certitude
# Langues attendues
result = client.audio.transcriptions.create(
model="gpt-transcribe",
file=audio_file,
languages=["fr"],
)
languages est une liste, propre à gpt-transcribe ; les anciens modèles prennent une seule langue dans language. N’envoyez jamais les deux.
Langues européennes courantes
Les codes ISO 639-1 les plus utilisés en Europe :
EUROPEAN_LANGUAGES = {
"fr": "Français",
"en": "Anglais",
"de": "Allemand",
"es": "Espagnol",
"it": "Italien",
"pt": "Portugais",
"nl": "Néerlandais",
"pl": "Polonais",
"ro": "Roumain",
"sv": "Suédois",
"da": "Danois",
"fi": "Finnois",
"el": "Grec",
"cs": "Tchèque",
"hu": "Hongrois",
"bg": "Bulgare",
"hr": "Croate",
"sk": "Slovaque",
"sl": "Slovène",
"et": "Estonien",
"lv": "Letton",
"lt": "Lituanien",
}
Gestion du multilingue
Une réunion internationale passe d’une langue à l’autre. gpt-transcribe est conçu pour ce cas : sa fiche cite les indices de plusieurs langues, l’audio multilingue et l’alternance de langues au sein d’une même phrase. Donnez-lui toutes les langues attendues, en un seul passage :
with open("reunion-internationale.mp3", "rb") as f:
result = client.audio.transcriptions.create(
model="gpt-transcribe",
file=f,
languages=["fr", "en", "de"],
)
print(result.text)
print("Langues reconnues :", result.languages)
L’ancienne méthode en deux passes, qui détectait la langue dominante avec whisper-1 en verbose_json puis retranscrivait en la forçant, n’a plus lieu d’être : elle imposait une seule langue à tout l’enregistrement, et whisper-1 s’arrête le 26 février 2027.
Facturation
La transcription est facturée à la durée d’audio traitée : 0,0045 $ la minute avec gpt-transcribe, d’après sa fiche (novembre 2026). Le format du fichier n’influence donc pas le coût : seule la durée compte.
Pour réduire les coûts sur de grands volumes :
from pydub import AudioSegment
from pydub.silence import split_on_silence
def preprocess_for_cost(file_path: str) -> str:
"""Supprime les silences pour réduire la durée facturée."""
audio = AudioSegment.from_file(file_path)
# Supprimer les silences supérieurs à 1 seconde
chunks = split_on_silence(
audio,
min_silence_len=1000,
silence_thresh=-40,
keep_silence=200 # Garder 200ms de silence pour la lisibilité
)
if not chunks:
return file_path
combined = chunks[0]
for chunk in chunks[1:]:
combined += chunk
output_path = "/tmp/optimized_audio.mp3"
combined.export(output_path, format="mp3", bitrate="64k")
return output_path
Points clés à retenir
- L’endpoint de transcription accepte FLAC, MP3, MP4, MPEG, MPGA, M4A, OGG, WAV et WebM, avec une limite de 25 Mo par fichier
- Avec
gpt-transcribe, la listelanguagesindique les langues attendues ; la réponse renvoie les langues reconnues - Le MP3 mono 16 kHz à 64 kbps offre le meilleur compromis qualité/taille pour la voix
- La facturation est à la minute d’audio : supprimer les silences réduit les coûts
- Pour le multilingue, un seul passage avec toutes les langues attendues dans
languagesremplace l’ancienne méthode en deux passes