Endpunkte
Transkription (STT)
POST /audio/transcriptions wandelt Audio in Text um, mit Whisper, GPT-4o Transcribe und mehr, kompatibel mit client.audio.transcriptions.create.
Im Playground testenWandeln Sie Sprache in Text um (Speech-to-Text, STT) mit Whisper, GPT-4o Transcribe, Deepgram, Voxtral und weiteren Transkriptionsmodellen. Der Endpunkt folgt POST /audio/transcriptions von OpenAI, daher funktioniert client.audio.transcriptions.create(...) unverändert.
POST https://api14.com/api/v1/audio/transcriptions
Anfrage
Senden Sie multipart/form-data mit der Audiodatei (so machen es die OpenAI-SDKs) oder einen JSON-Body.
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
file | file | ja | Audiodatei: mp3, mp4, m4a, wav, webm, ogg, flac. |
model | string | ja | Eine Transkriptionsmodell-ID, z. B. openai/whisper-1. |
language | string | nein | ISO-639-1-Code (en, de), verbessert Genauigkeit und Geschwindigkeit. |
prompt | string | nein | Vokabelhinweise oder der Text des vorherigen Segments. |
response_format | string | nein | json (Standard), text, srt, vtt, verbose_json, wo unterstützt. |
temperature | number | nein | Sampling-Temperatur, 0 bis 1. |
Das Limit für den Request-Body beträgt standardmäßig 25 MB. Größere Dateien liefern 413 payload_too_large; teilen Sie lange Aufnahmen in Abschnitte auf.
Multipart mit 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
JSON-Body
JSON wird ebenfalls akzeptiert, mit dem Audio als Base64 bei Modellen, die dies unterstützen:
{
"model": "openai/whisper-1",
"input_audio": { "data": "<base64>", "format": "mp3" },
"language": "en"
}
Beispiel
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);
Antwort
{
"text": "Thanks everyone for joining. Let's start with the roadmap.",
"usage": { "type": "duration", "seconds": 42, "cost": 0.0042 }
}
Bei response_format: "text", srt oder vtt ist der Body einfacher Text statt JSON.
Preise
Transkription wird zum gelisteten Preis des Modells abgerechnet, angezeigt als "$ / Minute" (oder pro Token bei tokenbasierten Modellen). Der Betrag wird in usage.cost zurückgegeben und von Ihrem USD-Guthaben abgebucht.
Fehler
| Status | Code | Wann |
|---|---|---|
| 400 | invalid_body | Der Multipart-Body konnte nicht geparst werden. |
| 400 | model_required | Das Feld model fehlt. |
| 402 | insufficient_balance | Ihr USD-Guthaben beträgt 0 $. |
| 404 | model_not_found | Unbekannte oder deaktivierte Modell-ID. |
| 413 | payload_too_large | Die Datei überschreitet das Größenlimit des Bodys. |
Siehe Fehler.