We gebruiken cookies. Cookies en browseropslag houden je ingelogd en onthouden je voorkeuren. Met je toestemming meten we ook hoe de site wordt gebruikt. Je kunt je wanneer je wilt. Zie ons cookiebeleid.

Transcriptie (STT)

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 playground

Zet 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.

VeldTypeVerplichtBeschrijving
filebestandjaAudiobestand: mp3, mp4, m4a, wav, webm, ogg, flac.
modelstringjaEen transcriptiemodel-id, bijv. openai/whisper-1.
languagestringneeISO-639-1-code (en, de), verbetert nauwkeurigheid en snelheid.
promptstringneeWoordenschathints of de tekst van het vorige segment.
response_formatstringneejson (standaard), text, srt, vtt, verbose_json waar ondersteund.
temperaturenumberneeSamplingtemperatuur, 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

StatusCodeWanneer
400invalid_bodyDe multipart-body kon niet worden geparset.
400model_requiredHet veld model ontbreekt.
402insufficient_balanceJe USD-saldo is $0.
404model_not_foundOnbekend of uitgeschakeld model-id.
413payload_too_largeHet bestand overschrijdt de groottelimiet van de body.

Zie Fouten.