Tema
Idioma

Transcripción de audio

Transcribe audio con el endpoint compatible con OpenAI POST /v1/audio/transcriptions. Modelos compatibles, límites de archivos, ejemplos con curl y Python, además de la API opcional de trabajos asíncronos mediante URL.

Audio compatible con OpenAI

Usa la estructura JSON de OpenAI para la síntesis de voz. La respuesta contiene bytes de audio y, de forma predeterminada, usa MP3.

POSThttps://getvibeapi.com/v1/audio/speech
curl https://getvibeapi.com/v1/audio/speech \
  -H "Authorization: Bearer $GETVIBE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "chatterbox-turbo",
    "input": "Hello from GetVibe",
    "voice": "default",
    "response_format": "mp3",
    "speed": 1
  }' \
  --output speech.mp3

Los modelos disponibles son tts, gemini-tts, gemini-3.8-flash-tts, gemini-3.8-flash-lite-tts, gemini-3.8-flash-tts-lite, chatterbox-tts, kokoro-tts, chatterbox-turbo y gpt-4o-mini-tts. response_format (mp3, opus, aac, flac, wav, pcm) y speed usan el formato de OpenAI; las páginas de los modelos indican cualquier límite nativo más restrictivo. gpt-4o-mini-tts acepta las 13 voces de OpenAI (alloy, ash, ballad, coral, echo, fable, nova, onyx, sage, shimmer, verse, marin, cedar) y el campo opcional instructions, que orienta la forma de entrega con palabras sencillas, por ejemplo, "habla con calma y calidez".

Clonación de voz

El modelo voice-clone-tts habla cualquier texto con tu propia voz, incluido el ruso. Primero, crea la voz una sola vez a partir de una grabación de 3–60 segundos (wav o mp3, de hasta 10 MB); es gratis. Se requiere consent: true: confirmas que es tu propia voz o que tienes el consentimiento de su propietario. Hasta 20 voces nuevas cada 24 horas.

POSThttps://getvibeapi.com/api/media/voices
curl https://getvibeapi.com/api/media/voices \
  -H "Authorization: Bearer $GETVIBE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "My voice",
    "consent": true,
    "audio_url": "https://example.com/my-voice.wav"
  }'

La respuesta contiene voice.id (voice_…). Pásalo como opts.voice_id en una solicitud de medios normal; motor qwen3 (predeterminado, mejor calidad) o chatterbox (económico). Se cobra por cada 1000 caracteres de texto, hasta 4000 caracteres por solicitud.

Voz premium: la semejanza más cercana. Añade "engine": "premium" al crearla; la grabación debe durar 10–60 segundos. La creación cuesta $2.00 una sola vez y solo se cobra si la voz se crea: no se cobra nada si hay un error, y un saldo inferior al precio responde 402 antes de que se envíe la grabación. Sintetiza con un motor de MiniMax: minimax-speech-2.8-hd, minimax-speech-2.6-hd o minimax-speech-02-hd ($0.125 por 1000 caracteres) y sus versiones Turbo ($0.075); los nombres anteriores premium / premium-turbo corresponden a speech-02. Justo después de crearla, pronunciamos una palabra corta con la voz; MiniMax elimina una voz que no se usa durante 7 días. Una voz Premium eliminada deja de funcionar de inmediato, pero el servicio de síntesis no ofrece eliminación y la tarifa de creación no se reembolsa.

POSThttps://getvibeapi.com/api/media/generate
curl https://getvibeapi.com/api/media/generate \
  -H "Authorization: Bearer $GETVIBE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "voice-clone-tts",
    "prompt": "Hello! This is my cloned voice.",
    "opts": { "voice_id": "voice_Ab12Cd34Ef56Gh78Ij90", "language": "auto" }
  }'

Una voz solo está disponible para tu cuenta. Enuméralas con GET /api/media/voices; elimina una con DELETE /api/media/voices/{voice_id}: la grabación también se elimina del servicio de síntesis. Nosotros no conservamos la grabación.

Voz de ElevenLabs. Cuando está habilitada, GET /api/media/voices muestra sus precios en pricing.elevenlabs_*. Crea la voz con engine: "elevenlabs" a partir de una grabación de 10–60 segundos (los cupos de voces son limitados: cuando se agotan, la respuesta es 409 voice_slots_full), luego sintetiza con elevenlabs-v4 o elevenlabs-v4-turbo: estabilidad, similarity_boost, speed, seed, language y etiquetas de audio como [laughs] directamente en el texto. El segundo archivo de resultados es un JSON de subtítulos con los tiempos de cada palabra. Precio por 1000 caracteres: v4 $0.044, v4 Turbo $0.022, el precio promocional hasta el 12 de octubre de 2026; después, $0.16 y $0.08. El almacenamiento cuesta $0.70 por voz al mes (el primer mes está incluido; después se cobra mensualmente el día de creación de la voz). Si tu saldo es demasiado bajo, la voz se conserva durante otro mes y solo se elimina si la tarifa sigue sin pagarse en el siguiente cobro; primero te enviamos un correo electrónico. Consulta todas tus voces y su estado en My voices.

Varias grabaciones. Una voz de ElevenLabs admite hasta 25 grabaciones: al crearla, como un array samples (cada {"audio_url"} o {"audio_base64"}, wav/mp3 de hasta 10 MB, con un total de hasta 50 MB y de 10–300 segundos), y posteriormente con POST /api/media/voices/{voice_id}/samples {"samples": […]}. Añadirlas es gratis; la tarifa de almacenamiento sigue siendo una por voz. Con "remove_background_noise": true, ElevenLabs elimina el ruido de fondo de las grabaciones de forma gratuita (está desactivado de forma predeterminada: puede empeorar una grabación limpia).

Transcripción compatible con OpenAI

Envía una solicitud multipart con file y model. Los archivos están limitados a 50 MB. La respuesta es { text: "..." }.

POSThttps://getvibeapi.com/v1/audio/transcriptions
curl https://getvibeapi.com/v1/audio/transcriptions \
  -H "Authorization: Bearer $GETVIBE_API_KEY" \
  -F [email protected] \
  -F model=whisper-large-v3 \
  -F language=en
# → {"text":"..."}

Los modelos disponibles son speech-to-text, whisper-large-v3-turbo, nemotron-asr-multilingual y whisper-large-v3. Los precios actuales por minuto aparecen en el catálogo de modelos de audio. Los archivos deben tener un tamaño de entre 1 byte y 50 MB.

Marcas de tiempo y subtítulos

response_format sigue el formato de OpenAI: json (predeterminado, { text }), text (texto sin formato), verbose_json (JSON con language, duration y segments[] — id, start, end, text en segundos), srt y vtt (subtítulos listos para usar). Para obtener marcas de tiempo por palabra, envía timestamp_granularities[]=word con verbose_json (campo words[]: word, start, end); segment y word se pueden combinar. El precio no depende del formato.

# SRT subtitles (or vtt); verbose_json returns JSON with segments[] and words[]
curl https://getvibeapi.com/v1/audio/transcriptions \
  -H "Authorization: Bearer $GETVIBE_API_KEY" \
  -F [email protected] \
  -F model=whisper-large-v3 \
  -F response_format=srt

curl https://getvibeapi.com/v1/audio/transcriptions \
  -H "Authorization: Bearer $GETVIBE_API_KEY" \
  -F [email protected] \
  -F model=whisper-large-v3 \
  -F response_format=verbose_json \
  -F "timestamp_granularities[]=segment" \
  -F "timestamp_granularities[]=word"
# → {"task":"transcribe","language":"en","duration":5.9,"text":"...",
#    "segments":[{"id":0,"start":0.03,"end":0.71,"text":"Hello!"}, ...],
#    "words":[{"word":"Hello!","start":0.03,"end":0.51}, ...]}

Las marcas de tiempo provienen de whisper-large-v3, whisper-large-v3-turbo, nemotron-asr-multilingual, qwen3-asr-1.7b y speech-to-text (sus segmentos se construyen a partir de los tiempos de cada palabra). universal-2, voxtral-small-24b-2507 y nemotron-3-diarization no devuelven marcas de tiempo, por lo que verbose_json / srt / vtt se rechazan con 400 para esos modelos antes de que se realice cualquier cobro.

universal-2 no está disponible en estas rutas. La antigua /api/transcribe acepta un audio_url público, se ejecuta de forma asíncrona y el operador la habilita con TRANSCRIBE_ENABLED; de lo contrario, devuelve 503.

Transcripción de URL heredada

Transcripción de audio asíncrona desde una URL pública. Creas una tarea y consultas el resultado mediante nuestro id.

POSThttps://getvibeapi.com/api/transcribe
GEThttps://getvibeapi.com/api/transcribe/{id}

Parámetros de creación

ParámetroTipoDescripción
audio_urlreq.cadena (URL)Un enlace público al archivo de audio.
languagestringCódigo de idioma, por ejemplo, ru, en (2-10 caracteres). Opcional: se detecta automáticamente.
redact_piibooleanRedacción de datos personales. Activada de forma predeterminada (cumplimiento de 152-FZ); solo se desactiva mediante redact_pii: false explícito.

Crear y consultar

La creación devuelve 202 con { id, status: "processing" }. Consulta GET /api/transcribe/{id} hasta que el estado sea success (o fail); luego la respuesta contiene text, durationSec, priceRub.

# 1. create a transcription job (audio by public URL)
curl https://getvibeapi.com/api/transcribe \
  -H "Authorization: Bearer $GETVIBE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "audio_url": "https://example.com/audio.mp3",
    "language": "en",
    "redact_pii": true
  }'
# → {"id":"...","status":"processing"}
Precio: 1.5₽ por minuto (mínimo de 1 minuto, redondeado hacia arriba). El débito se realiza una sola vez, cuando se completa la tarea. La redacción de datos personales está activada de forma predeterminada y no aumenta la tarifa.
API de transcripción de audio: conversión de voz a texto y Whisper | GetVibe API