Usiamo i cookie. Cookie e memoria del browser ti mantengono connesso e ricordano le tue preferenze. Con il tuo consenso misuriamo anche come viene usato il sito. Puoi in qualsiasi momento. Consulta la nostra cookie policy.

Trascrizione (STT)

Endpoint

Trascrizione (STT)

Trasforma l'audio in testo con POST /audio/transcriptions usando Whisper, GPT-4o Transcribe, Deepgram e Voxtral, con campi, formati, limiti e prezzi.

Provalo nel playground

Trasforma il parlato in testo (speech-to-text, STT) con Whisper, GPT-4o Transcribe, Deepgram, Voxtral e altri modelli di trascrizione. L'endpoint segue POST /audio/transcriptions di OpenAI, quindi client.audio.transcriptions.create(...) funziona senza modifiche.

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

Richiesta

Invia multipart/form-data con il file audio (è ciò che fanno gli SDK di OpenAI), oppure un corpo JSON.

CampoTipoObbligatorioDescrizione
filefilesìFile audio: mp3, mp4, m4a, wav, webm, ogg, flac.
modelstringsìL'id di un modello di trascrizione, ad es. openai/whisper-1.
languagestringnoCodice ISO-639-1 (en, de), migliora precisione e velocità.
promptstringnoSuggerimenti di vocabolario o il testo del segmento precedente.
response_formatstringnojson (predefinito), text, srt, vtt, verbose_json dove supportato.
temperaturenumbernoTemperatura di campionamento, 0-1.

Il limite per il corpo della richiesta è 25 MB per impostazione predefinita. I file più grandi restituiscono 413 payload_too_large: dividi le registrazioni lunghe in parti.

Multipart con 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

Corpo JSON

Anche il JSON è accettato, con l'audio in base64 per i modelli che lo supportano:

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

Esempio

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);

Risposta

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

Con response_format: "text", srt o vtt il corpo è testo semplice invece di JSON.

Prezzi

La trascrizione è fatturata al prezzo indicato per il modello, mostrato come "$ / minuto" (o per token per i modelli con prezzo a token). L'importo è restituito in usage.cost e scalato dal tuo saldo in USD.

Errori

StatoCodiceQuando
400invalid_bodyNon è stato possibile analizzare il corpo multipart.
400model_requiredManca il campo model.
402insufficient_balanceIl tuo saldo in USD è $0.
404model_not_foundId del modello sconosciuto o disattivato.
413payload_too_largeIl file supera il limite di dimensione del corpo.

Vedi Errori.