Endpoints
Transcriptie (STT)
POST /audio/transcriptions: zet audio om in tekst met Whisper en andere modellen, met parameters, formaten, prijs per minuut en foutcodes.
Probeer het in de playgroundZet spraak om in tekst (spraak-naar-tekst, STT) met Whisper, GPT-4o Transcribe, Deepgram, Voxtral en andere transcriptiemodellen. Het endpoint volgt POST /audio/transcriptions van OpenAI, dus client.audio.transcriptions.create(...) werkt ongewijzigd.
POST https://api14.com/api/v1/audio/transcriptions
Request
Stuur multipart/form-data met het audiobestand (wat de OpenAI-SDK's doen), of een JSON-body.
| Veld | Type | Verplicht | Beschrijving |
|---|---|---|---|
file | bestand | ja | Audiobestand: mp3, mp4, m4a, wav, webm, ogg, flac. |
model | string | ja | Een transcriptiemodel-id, bijv. openai/whisper-1. |
language | string | nee | ISO-639-1-code (en, de), verbetert nauwkeurigheid en snelheid. |
prompt | string | nee | Woordenschathints of de tekst van het vorige segment. |
response_format | string | nee | json (standaard), text, srt, vtt, verbose_json waar ondersteund. |
temperature | number | nee | Samplingtemperatuur, 0 tot 1. |
De limiet voor de requestbody is standaard 25 MB. Grotere bestanden geven 413 payload_too_large, splits lange opnamen dus in stukken.
Multipart met 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 wordt ook geaccepteerd, met de audio als base64 voor modellen die dat ondersteunen:
{
"model": "openai/whisper-1",
"input_audio": { "data": "<base64>", "format": "mp3" },
"language": "en"
}
Voorbeeld
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);
Response
{
"text": "Thanks everyone for joining. Let's start with the roadmap.",
"usage": { "type": "duration", "seconds": 42, "cost": 0.0042 }
}
Bij response_format: "text", srt of vtt is de body gewone tekst in plaats van JSON.
Prijzen
Transcriptie wordt gefactureerd tegen de vermelde prijs van het model, getoond als "$ / minuut" (of per token bij modellen met tokenprijzen). De kosten staan in usage.cost en worden van je USD-saldo afgeschreven.
Fouten
| Status | Code | Wanneer |
|---|---|---|
| 400 | invalid_body | De multipart-body kon niet worden geparset. |
| 400 | model_required | Het veld model ontbreekt. |
| 402 | insufficient_balance | Je USD-saldo is $0. |
| 404 | model_not_found | Onbekend of uitgeschakeld model-id. |
| 413 | payload_too_large | Het bestand overschrijdt de groottelimiet van de body. |
Zie Fouten.