Whisper est le modèle de reconnaissance vocale open source d'OpenAI, qui propose aussi une interface hébergée de transcription audio. Pour un développeur, le plus simple n'est pas de déployer le modèle soi-même, mais de prendre une clé, d'appeler /v1/audio/transcriptions, d'envoyer un fichier audio et de récupérer directement le texte.

Cet article explique comment obtenir la clé, appeler l'interface, quelles limites s'appliquent aux fichiers, comment obtenir des horodatages, ainsi que les erreurs courantes et les questions de confidentialité. La prise en charge des interfaces audio varie selon les passerelles ; la documentation du site fait foi.

Remarque : OpenAI et Whisper sont des marques de leurs détenteurs respectifs ; cet article ne fournit qu'une explication d'intégration technique. Les noms de modèles, limites de fichiers et règles de facturation peuvent évoluer ; la documentation officielle et celle du site font foi, et les prix sont ceux de la page de tarifs du site.

1. À quoi sert l'API Whisper

  • Transcrire des réunions, entretiens et cours enregistrés ;
  • Produire une première version de sous-titres pour podcasts et vidéos courtes ;
  • Contrôler la qualité des appels du service client et extraire des mots-clés ;
  • Mettre en forme des notes vocales ;
  • Transcrire et traduire des audios multilingues (l'interface de traduction est distincte).

Elle ne convient pas à : la reconnaissance de haute précision en environnement très bruyant, les réunions nécessitant une séparation des locuteurs, l'expertise médico-légale d'enregistrements. Pour ces cas, prévoyez une relecture humaine après transcription ou une solution dédiée à la séparation des locuteurs.

2. Obtenir une clé API Whisper

Whisper n'a pas de « clé Whisper » séparée : il réutilise la clé API de la plateforme OpenAI ou d'une passerelle. La « clé API Whisper » ci-dessous désigne donc cette clé capable d'appeler l'interface de transcription audio.

Méthode 1 : OpenAI officiel

  1. Créez un compte sur la plateforme OpenAI et configurez un moyen de paiement.
  2. Sur la page API Keys, créez une clé, nommée selon le projet.
  3. Vérifiez que le compte dispose d'un crédit disponible.
  4. Placez la clé dans une variable d'environnement côté serveur.

Méthode 2 : ZSQH AI Gateway

  1. Ouvrez ZSQH AI Gateway, inscrivez-vous et connectez-vous.
  2. Accédez à la page des clés API et créez une clé.
  3. Vérifiez sur la page Tarifs des modèles ou dans la documentation du site que le modèle de transcription audio est disponible.
  4. Rechargez un petit montant et validez d'abord avec un audio court.

Quelle que soit la voie, la clé reste côté serveur. Si le navigateur ou le frontend d'une application détient directement la clé, vous confiez votre compte à autrui.

3. Base URL et authentification

Élément OpenAI officiel Passerelle ZSQH
Base URL https://api.openai.com/v1 https://ai.zhongshangqihang.com/v1
Authentification Authorization: Bearer <key> Idem
Interface /audio/transcriptions Selon la documentation du site
Modèle whisper-1, etc. Selon la documentation ou la page de tarifs

La passerelle relaie-t-elle intégralement l'interface audio et quels response_format sont pris en charge ? Vérifiez dans la documentation du site. Ne partez pas du principe que si l'interface texte fonctionne, l'audio fonctionne aussi.

4. Appel avec curl

export WHISPER_API_KEY="sk-votre-clé"

curl "https://ai.zhongshangqihang.com/v1/audio/transcriptions" \
  -H "Authorization: Bearer $WHISPER_API_KEY" \
  -F "file=@meeting.mp3" \
  -F "model=whisper-1" \
  -F "language=fr" \
  -F "response_format=json"

Attention : il s'agit de multipart/form-data, pas de JSON. Utilisez -F et non -d, sinon le serveur ne reçoit pas le fichier.

5. Appel avec Python

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["WHISPER_API_KEY"],
    base_url="https://ai.zhongshangqihang.com/v1",
)

with open("meeting.mp3", "rb") as f:
    result = client.audio.transcriptions.create(
        model="whisper-1",  # selon la documentation du site
        file=f,
        language="fr",
        response_format="verbose_json",
        timestamp_granularities=["segment"],
    )

for seg in result.segments:
    print(f"{seg.start:.1f}-{seg.end:.1f}  {seg.text}")

language utilise un code ISO-639-1, par exemple fr, en, ja. Sans ce paramètre, le modèle détecte automatiquement, mais sur un audio court ou mixte français/anglais, la détection se trompe facilement ; mieux vaut préciser.

6. Formats et limites de taille

Élément Limite courante Recommandation
Formats pris en charge flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, webm Convertir en mp3 ou wav
Taille par fichier 25 Mo (selon la documentation officielle) Découper au-delà
Fréquence d'échantillonnage Pas d'exigence stricte 16 kHz mono suffit
Durée Indirectement limitée par la taille Découper les longs audios par 10 minutes
Multicanaux Pris en charge, qualité variable Mixer d'abord ou choisir le canal principal

Un format incorrect renvoie directement 400 ; un fichier trop volumineux donne souvent 413. Le transcodage est le prétraitement le plus fiable.

7. Horodatages et formats de sortie

response_format Contenu renvoyé Cas d'usage
json Texte brut Uniquement le texte
text Texte brut, corps de réponse plus simple Pipelines de scripts
srt Fichier de sous-titres Montage vidéo
vtt Sous-titres web Lecteurs web
verbose_json Texte, segments, langue, durée Besoin d'horodatages

Pour des horodatages au niveau du segment, utilisez timestamp_granularities=["segment"] ; les horodatages au niveau du mot ne sont généralement ouverts que pour whisper-1 et nécessitent verbose_json. La prise en charge exacte est celle de la documentation officielle ou du site.

8. Traiter de longs audios

Pour un audio dépassant la limite de taille, découpez-le avec ffmpeg puis transcrivez chaque segment :

ffmpeg -i input.mp3 -f segment -segment_time 600 \
  -ac 1 -ar 16000 -b:a 64k part_%03d.mp3

Lors du découpage :

  1. Coupez si possible dans les silences, pour ne pas fendre un mot en deux.
  2. Notez le décalage de départ de chaque segment et rajoutez-le aux horodatages lors de la fusion.
  3. Laissez un chevauchement de 0,5 à 1 seconde entre segments pour limiter les pertes aux frontières.
  4. Après fusion, dédupliquez et remettez la ponctuation en forme.

9. Erreurs courantes

Erreur Cause Traitement
401 Clé erronée ou Bearer absent Vérifier la clé et l'en-tête
404 Base URL ou chemin incorrect Confirmer /v1/audio/transcriptions
400 unsupported file Format non pris en charge Convertir en mp3 ou wav
413 Fichier trop volumineux Compresser ou découper
429 Fréquence ou quota dépassé Réduire la concurrence, réessayer avec backoff
Texte vide Silence, volume trop faible, langue mal détectée Vérifier l'audio, préciser language
Délai dépassé Fichier volumineux ou réseau lent Découper, augmenter le timeout

10. Maîtrise des coûts

  1. Détectez les silences avant transcription pour supprimer les passages vides.
  2. Convertissez systématiquement en 16 kHz mono pour réduire le poids.
  3. Découpez les longs audios et traitez en parallèle, mais limitez la concurrence pour éviter les 429.
  4. Validez d'abord sur un court échantillon la langue et la qualité, puis soumettez en lot.
  5. Enregistrez la durée audio de chaque appel pour le rapprochement par projet.
  6. Plafonnez les retries pour éviter une double facturation.

La transcription audio est généralement facturée à la minute ; les prix unitaires sont ceux de la page Tarifs des modèles. Moins cher ne signifie pas économe : conversion de format, relecture humaine et retries entrent dans le coût total.

11. Améliorer la précision

  1. Prétraitement audio : convertir en 16 kHz mono, réduire légèrement le bruit, supprimer les saturations et les longs silences.
  2. Préciser la langue : language=fr pour le français ; pour un contenu mixte, évaluer un traitement par segments.
  3. Fournir un prompt : passer noms propres, noms de personnes et de produits via le paramètre prompt pour aider le modèle à aligner le vocabulaire.
  4. Découper intelligemment : aux silences, par segments de 5 à 10 minutes, pour éviter les pertes entre segments.
  5. Relecture post-traitement : valider par règles les nombres, dates, montants et noms propres ; relecture humaine pour les cas critiques.
  6. Constituer un lexique : regrouper les erreurs fréquentes dans une table de remplacement, mise à jour à chaque version.

La précision de transcription n'a pas de chiffre universel : elle dépend fortement de la qualité d'enregistrement, de l'accent et du vocabulaire métier. Avant la mise en production, testez un échantillon d'audios réels de votre activité ; c'est plus utile que de lire des paramètres promotionnels.

12. Confidentialité et conformité

  • Un audio peut contenir des noms, numéros de téléphone, adresses, données de santé et autres informations personnelles ; informez et obtenez une autorisation avant l'envoi.
  • Anonymisez les contenus sensibles ou choisissez une solution déployable en privé.
  • Vérifiez la politique de conservation, la stratégie de journaux et les modalités de suppression du prestataire.
  • Ne placez pas d'audio contenant des données clients à une URL accessible publiquement.
  • Pour les transferts transfrontaliers, évaluez la réglementation locale et les exigences de conformité de l'entreprise.

Questions fréquentes

L'API Whisper prend-elle en charge le français ?

Oui. Pour le français, précisez explicitement language=fr et complétez les noms propres dans le prompt ou le post-traitement.

Une même clé peut-elle appeler aussi les modèles texte ?

Dans une passerelle, c'est généralement possible, mais l'ouverture de l'interface audio dépend de la documentation du site ; les droits d'une clé officielle dépendent aussi du compte et du projet.

Peut-on obtenir des horodatages au niveau du mot ?

Certains modèles et formats le permettent, généralement avec verbose_json et timestamp_granularities. La documentation fait foi.

Que faire si l'audio dépasse 25 Mo ?

Compresser avec ffmpeg ou découper par 10 minutes, transcrire chaque segment puis fusionner. Choisissez si possible des points de coupe dans les silences.

Le résultat de transcription est-il directement utilisable commercialement ?

Cela dépend des droits sur le contenu audio, des conditions de la plateforme et du droit local. Pour l'enregistrement d'un tiers, de la musique ou un contenu de cours, vérifiez d'abord l'autorisation.

Pour aller plus loin

Commencez par vous inscrire sur ZSQH AI Gateway, créez une clé de test, validez /v1/audio/transcriptions avec un audio d'une minute, puis intégrez le traitement par lots. Modèles et prix sont ceux de la page Tarifs des modèles.

Articles liés :