Saltar al contenido

Transcripción

POST /v1/audio/transcriptions convierte voz en texto: reuniones, llamadas, notas de voz, podcasts. Envía un archivo de audio o una URL y recibe la transcripción con marcas de tiempo por palabra. El modelo actual es grok-stt-1-0 y se cobra por hora de audio.

Subir un archivo

curl https://api.inferray.com/v1/audio/transcriptions \
  -H "Authorization: Bearer $INFERRAY_API_KEY" \
  -F "model=grok-stt-1-0" \
  -F "file=@meeting.wav"
import fs from "node:fs";
import OpenAI from "openai";

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

const transcript = await client.audio.transcriptions.create({
  model: "grok-stt-1-0",
  file: fs.createReadStream("meeting.wav"),
});

console.log(transcript.text);

Funcionan los formatos comunes: WAV, MP3, OGG, Opus, FLAC, AAC, MP4 y M4A. El cuerpo de la solicitud está limitado a 64 MiB; para grabaciones más largas, pasa una URL.

Pasar una URL

curl https://api.inferray.com/v1/audio/transcriptions \
  -H "Authorization: Bearer $INFERRAY_API_KEY" \
  -F "model=grok-stt-1-0" \
  -F "url=https://example.com/podcast-episode.mp3"

Opciones

Todos los campos son campos de formulario multipart, así que los booleanos son las cadenas true y false.

CampoQué hace
modelObligatorio.
file o urlObligatorio, uno de los dos.
languageUn código de idioma como en. Así, los números y las monedas se escriben correctamente.
diarizetrue para etiquetar cada palabra con su hablante.
filler_wordstrue para conservar muletillas como "eh" y "mmm".
keytermUn nombre o término que debe reconocerse de forma confiable, como el nombre de un producto. Repite el campo para varios.

La respuesta

{
  "text": "The balance is $167,983.15.",
  "language": "English",
  "duration": 3.45,
  "words": [
    { "text": "The", "start": 0.24, "end": 0.48 },
    { "text": "balance", "start": 0.48, "end": 0.96 }
  ]
}

start y end son segundos desde el inicio. Con diarize=true, cada palabra también tiene un speaker.

La respuesta siempre es este JSON. No se ofrece salida en texto plano, SRT ni VTT mediante response_format; si necesitas subtítulos, créalos a partir de words.