Normalizar volumen
Un clip llega a sus oídos casi en susurro y el siguiente, tres segundos después, parece un grito, y esa diferencia suele ser lo que hace que alguien termine de escuchar su audio o busque el control de volumen. Este endpoint lleva cada archivo a un volumen consistente y cómodo para que el oyente nunca tenga que hacerlo.
Ejecútela online
Ejecute esto en nuestros servidores con su cuenta. Las herramientas gratuitas corren en su navegador; esta cobra de su saldo del KIT según el precio de arriba.
Por qué el volumen varía en primer lugar
Dos presentadores del mismo podcast grabados con micrófonos distintos, a distancias distintas, en días distintos, jamás van a salir al mismo volumen por accidente; la física y el equipo se encargan de eso. Sume una docena de episodios, o un lote de locuciones de distintos narradores, o fragmentos tomados de una docena de videos de origen, y la inconsistencia se acumula hasta convertirse en algo que el oyente nota aunque no sepa nombrarlo. audio.normalize apunta exactamente a esa deriva.
Qué le pasa realmente al archivo
Haga POST a /audio/normalize con su archivo, y la tarea corre de forma asíncrona hacia un objetivo de volumen estándar, devolviendo un task_id de inmediato. El archivo normalizado llega por webhook firmado o queda disponible en un enlace firmado válido por 24 horas; la curva de volumen se ajusta a lo largo de todo el archivo, no solo se recortan los picos, de modo que los pasajes silenciosos y los pasajes fuertes quedan en un rango cómodo y consistente entre sí.
Volumen no es lo mismo que sonoridad percibida
Las plataformas de radiodifusión y streaming adoptaron estándares de normalización de sonoridad por una razón: subir o bajar un archivo de forma uniforme no arregla una pista que ya está mezclada de forma inconsistente en sí misma, y limitar solo los picos puede dejar las secciones silenciosas sonando igual de silenciosas junto a las fuertes. Una normalización de sonoridad adecuada mide cómo percibe el oído humano el volumen a lo largo del tiempo, no solo el valor de muestra más alto, por eso dos archivos normalizados de esta forma suenan parejos aunque sus formas de onda se vean muy distintas.
Dónde encaja en una cadena de producción
Corra la normalización después de recortar y de quitar el ruido, y antes de la entrega final, para que trabaje sobre la versión más limpia del audio en lugar de intentar suavizar el siseo de fondo junto con la voz. Las redes de podcast la aplican a todos los episodios antes de publicar para que el oyente nunca tenga que tocar el volumen entre programas, y los productores de audiolibros la aplican a todos los capítulos para que el libro no suene más fuerte o más suave según la energía del narrador. Con precio por solicitud más por minuto, normalizar todo un catálogo cuesta en proporción directa a su duración total, ni un centavo más.
Qué puede hacer con ella
Episodios de podcast consistentes
Una red de podcasts normaliza todos sus episodios al mismo objetivo de volumen antes de publicar, para que el oyente no tenga que tocar el control entre programas.
Capítulos de audiolibro con varios narradores
Un productor de audiolibros normaliza capítulos grabados por distintos narradores para que el libro completo suene a un mismo nivel cómodo.
Clips de voz generados por usuarios
Una aplicación social normaliza mensajes de voz grabados en teléfonos muy distintos para que el volumen de reproducción se sienta parejo en todo un feed.
Equilibrio entre música de fondo y locución
Un editor de video normaliza una pista musical con licencia y una locución grabada para que ninguna de las dos opaque a la otra durante la reproducción.
Preguntas frecuentes
¿Cómo normalizo el volumen de un audio con la API?
Envíe el archivo por POST a /audio/normalize, guarde el task_id devuelto y reciba el archivo normalizado por webhook o mediante un enlace firmado válido por 24 horas.
¿Es gratis la API para normalizar volumen de audio?
No, no hay plan gratuito ni prueba; cuesta $0.077 por solicitud más $0.0045 por minuto de audio, y una normalización fallida nunca se cobra.
¿Normalizar simplemente sube el volumen?
No, ajusta la curva de sonoridad a lo largo del archivo hacia un objetivo consistente, algo distinto de subir el volumen de forma uniforme o de un simple limitador de picos.
¿Normalizar arregla audio distorsionado o saturado?
No, la normalización empareja la sonoridad percibida pero no puede recuperar audio que ya quedó saturado o distorsionado durante la grabación original.
¿Qué formatos puedo normalizar?
Los más comunes: MP3, WAV, OGG, M4A y FLAC; consulte la referencia del endpoint para la lista completa vigente.
¿Debo normalizar antes o después de quitar el ruido?
Primero quite el ruido y luego normalice, así el objetivo de volumen se calcula sobre audio limpio en vez de amplificarse junto con el siseo de fondo.
¿Ya está disponible este endpoint?
Está en despliegue en este momento y todavía no acepta trabajos; revise el estado del endpoint antes de enviarle tráfico de producción.
¿Se conserva mi audio después de procesarlo?
No, los archivos y resultados se eliminan después del período de retención y nunca se usan para entrenamiento.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/audio/normalize \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"audio":"https://ejemplo.com/audio.mp3"}'const res = await fetch("https://api.kit.forhosting.com/audio/normalize", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"audio": "https://ejemplo.com/audio.mp3"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/audio/normalize",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"audio": "https://ejemplo.com/audio.mp3"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/audio/normalize", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"audio":"https://ejemplo.com/audio.mp3"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"audio":"https://ejemplo.com/audio.mp3"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/audio/normalize", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"audio": "https://ejemplo.com/audio.mp3"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "audio.normalize",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_mb | 200 |
max_minutes | 180 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |