Introducción
Envía una URL de audio y, si quieres, el idioma hablado, una lista de términos clave y tres interruptores: números con cifras, muletillas y transcripción por canal. La tarea devuelve la transcripción como texto, más una transcripción estructurada con tiempos por palabra, el idioma detectado y la duración del audio; no se genera ningún archivo. SpicyAPI no aplica ningún filtro de contenido: el habla sin filtro se transcribe tal como se pronunció. Se cobra por segundo de audio.
| Campo | Valor |
|---|---|
| Entrada | Audio |
| Salida | Texto |
| Campo obligatorio |
|
| Campos opcionales | language (25 códigos), |
| Resultado | Transcripción en texto, más output.transcript con tiempos por palabra, idioma y duración; por canal con multichannel |
| Cantidad cobrada | Segundos de audio; lo cargado se reserva por su duración, una URL por el máximo de dos horas |
| Tiempo habitual | Unos 3 segundos para un clip de 10 segundos, unos 15 segundos para una hora |
| Conservación | El audio cargado se elimina después de un día; la transcripción se borra con los datos del prompt |
Parámetros de la solicitud
| Parámetro | Obligatorio | Descripción |
|---|---|---|
audio_url | Sí | El audio que se va a transcribir: un MP3 o WAV cargado, o una URL pública a MP3, WAV, M4A, FLAC, OGG, Opus, AAC, MP4 o MKV. De 1 segundo a 2 horas. mínimo 1 caracteres |
language | No | El idioma hablado como código de idioma. Déjalo vacío para detectar el idioma automáticamente; la habla en cualquier idioma compatible se transcribe en ambos casos. |
text_normalization | No | Si está activado, los números, precios, fechas y unidades dichos en voz alta se escriben con cifras: "$1,250" y "March 14" en lugar de palabras. Necesita language. Valor predeterminado: |
keyterms | No | Hasta 100 palabras o frases cortas (50 caracteres cada una) que la transcripción debe favorecer: nombres, marcas, jerga. No cambia el precio. Valor predeterminado: |
filler_words | No | Si está activado, las muletillas como um y uh se conservan en la transcripción; desactivado (predeterminado), se eliminan. No cambia el precio. Valor predeterminado: |
multichannel | No | Si está activado, cada canal de un archivo multicanal (hasta 8) se transcribe por separado y vuelve en su propia línea, en orden de canal. Valor predeterminado: |
Precios
$0.00003 / segundo de audio
Se cobra por segundo de audio. Al crear la tarea se reserva el precio de la duración real si el audio está cargado, o el del máximo de dos horas si es una URL de audio; pagas la duración real y el resto se libera. Una solicitud fallida no se cobra.
Casos de uso
Notas de voz e historias de audio
El habla sin filtro se transcribe tal como se pronuncia, así que los mensajes de voz, las grabaciones de rol y las historias de audio pueden buscarse, subtitularse o editarse como texto.
Grabaciones de llamadas
Las grabaciones con cada lado en su propio canal vuelven como una línea por lado cuando multichannel está activado. Sin él, nuestras pruebas devolvieron solo uno de los dos lados, así que actívalo para llamadas con canales separados.
Revisar voz generada
Pasa un resultado de texto a voz por el modelo y compara la transcripción con el guion: palabras saltadas, un final cortado o una etiqueta leída en voz alta saltan a la vista.
Nombres, marcas y números
Incluye los nombres poco comunes como términos clave y activa la normalización de texto: la transcripción escribe los nombres a tu manera y los precios y fechas como $1,250 o March 14.
Guía de prompts y consejos prácticos
Apunta
audio_urlal audioCarga un MP3 o WAV, o pasa una URL pública que responda con el propio audio: una página de reproductor o un enlace para compartir que devuelve HTML falla. De 1 segundo a 2 horas.
Agrega lo que sepas
Configura language si conoces el idioma, incluye nombres y marcas en keyterms y activa
text_normalizationsi quieres los números con cifras.text_normalizationnecesita language.Lee el texto de la tarea
La transcripción llega como texto en el resultado de la tarea, y output.transcript lista cada palabra con su tiempo de inicio y fin. Con multichannel hay una línea por canal, en orden de canal. Cópiala a tu propio almacenamiento si la necesitas más adelante.
Qué devuelve
La transcripción como texto en el resultado de la tarea, más output.transcript: el idioma detectado y su código, la duración del audio en segundos y cada palabra con su tiempo de inicio y fin en segundos. Con multichannel, output.transcript.channels contiene lo mismo para cada canal. No se genera ningún archivo y nada entra al almacenamiento de medios. No incluye etiquetas de hablante.
Enviar el audio
audio_url acepta un MP3 o WAV cargado, o una URL pública a MP3, WAV, M4A, FLAC, OGG, Opus, AAC, MP4 o MKV, de 1 segundo a 2 horas. La URL debe responder con el propio audio. No se acepta audio sin procesar y sin encabezado de archivo (PCM, μ-law, A-law).
Idioma y números
Si dejas language vacío, el idioma se detecta; la habla en cualquiera de los 25 idiomas compatibles se transcribe en ambos casos. Configúralo y activa text_normalization para obtener números, precios, fechas y unidades en forma escrita: en nuestra prueba, "one thousand two hundred fifty dollars on March fourteenth" se convirtió en "$1,250 on March 14". text_normalization necesita language.
Términos clave y muletillas
keyterms acepta hasta 100 términos de hasta 50 caracteres, uno por fila. En nuestra prueba, "Xandrelle" y "Qorvessa" volvieron como "Xandrel" y "Corvessa" sin ellos, y exactamente bien con ellos. filler_words conserva um y uh, que se eliminan de forma predeterminada.
Varios canales
Activa multichannel para grabaciones con cada hablante en su propio canal. Cada canal se transcribe por separado y vuelve en su propia línea, en orden de canal. Déjalo desactivado solo si todos los canales llevan el mismo sonido: en nuestras pruebas, un archivo estéreo con un hablante distinto en cada lado volvió sin uno de los dos hablantes.
Cobro
Se cobra por segundo de audio. Al crear la tarea se reserva el precio de la duración real si el audio está cargado, o el del máximo de dos horas si es una URL de audio; pagas la duración real y el resto se libera. Ninguna opción cambia el precio. Las solicitudes fallidas no se cobran.
Contenido
SpicyAPI no agrega filtro de contenido. En nuestras pruebas el habla sin filtro volvió palabra por palabra, sin asteriscos, pitidos ni huecos.
SpicyAPI no añade ningún filtro de contenido: el habla se transcribe tal como se pronunció, en lugar de enmascararse o rechazarse. Eres responsable de los derechos sobre el audio que envías y del consentimiento de las personas grabadas.
Inicio rápido de la API
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "xai/grok-stt/speech-to-text",
"input": {
"audio_url": "https://example.com/reference.mp3"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
Consulta la referencia de la API para autenticación, el esquema completo, sondeo y gestión de errores.





