Nous utilisons des cookies. Les cookies et le stockage du navigateur vous gardent connecté et mémorisent vos préférences. Avec votre accord, nous mesurons aussi l’utilisation du site. Vous pouvez à tout moment. Consultez notre politique relative aux cookies.

Transcription (reconnaissance vocale)

Endpoints

Transcription (reconnaissance vocale)

POST /audio/transcriptions : transformez de l'audio en texte avec Whisper, GPT-4o Transcribe, Deepgram, Voxtral et d'autres modèles de transcription.

Essayer dans le playground

Transformez la parole en texte (reconnaissance vocale, STT) avec Whisper, GPT-4o Transcribe, Deepgram, Voxtral et d'autres modèles de transcription. L'endpoint suit le POST /audio/transcriptions d'OpenAI, donc client.audio.transcriptions.create(...) fonctionne sans modification.

POST https://api14.com/api/v1/audio/transcriptions

Requête

Envoyez du multipart/form-data avec le fichier audio (ce que font les SDK OpenAI), ou un corps JSON.

ChampTypeObligatoireDescription
filefileouiFichier audio : mp3, mp4, m4a, wav, webm, ogg, flac.
modelstringouiUn identifiant de modèle de transcription, par ex. openai/whisper-1.
languagestringnonCode ISO-639-1 (en, de), améliore la précision et la vitesse.
promptstringnonIndices de vocabulaire ou texte du segment précédent.
response_formatstringnonjson (par défaut), text, srt, vtt, verbose_json quand c'est pris en charge.
temperaturenumbernonTempérature d'échantillonnage, 0–1.

La limite de taille du corps de requête est de 25 Mo par défaut. Les fichiers plus gros renvoient 413 payload_too_large : découpez les longs enregistrements en morceaux.

Multipart avec cURL

curl https://api14.com/api/v1/audio/transcriptions \
  -H "Authorization: Bearer sk-api14-..." \
  -F model=openai/whisper-1 \
  -F file=@meeting.mp3 \
  -F language=en

Corps JSON

Le JSON est accepté aussi, avec l'audio en base64 pour les modèles qui le permettent :

{
  "model": "openai/whisper-1",
  "input_audio": { "data": "<base64>", "format": "mp3" },
  "language": "en"
}

Exemple

import fs from "node:fs";
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api14.com/api/v1",
  apiKey: process.env.API14_API_KEY,
});

const result = await client.audio.transcriptions.create({
  model: "openai/whisper-1",
  file: fs.createReadStream("audio.mp3"),
});
console.log(result.text);

Réponse

{
  "text": "Thanks everyone for joining. Let's start with the roadmap.",
  "usage": { "type": "duration", "seconds": 42, "cost": 0.0042 }
}

Avec response_format: "text", srt ou vtt, le corps est du texte brut au lieu de JSON.

Tarifs

La transcription est facturée au prix indiqué du modèle, affiché en « $ / minute » (ou par token pour les modèles facturés au token). Le montant est renvoyé dans usage.cost et débité de votre solde en USD.

Erreurs

StatutCodeQuand
400invalid_bodyLe corps multipart n'a pas pu être analysé.
400model_requiredLe champ model est manquant.
402insufficient_balanceVotre solde en USD est à 0 $.
404model_not_foundIdentifiant de modèle inconnu ou désactivé.
413payload_too_largeLe fichier dépasse la limite de taille du corps.

Voir Erreurs.