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.
| Campo | Qué hace |
|---|---|
model | Obligatorio. |
file o url | Obligatorio, uno de los dos. |
language | Un código de idioma como en. Así, los números y las monedas se escriben correctamente. |
diarize | true para etiquetar cada palabra con su hablante. |
filler_words | true para conservar muletillas como "eh" y "mmm". |
keyterm | Un 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.