Estime la duración del audio tras recortar silencios
Estime la duración final de un audio antes de editarlo. Indique la duración total del clip y los tiempos de inicio y fin de cada segmento de silencio detectado.
Ejecutar — gratis
La calculadora valida la línea temporal, une los intervalos solapados o contiguos y resta una sola vez el tiempo silencioso real. Devuelve la duración original, el silencio eliminable, la duración final estimada y recuentos útiles de segmentos. Así puede planificar podcasts, grabaciones de voz, clases y procesos multimedia por lotes sin subir ni decodificar el audio.
Prepare una línea temporal fiable
Comience con la duración total del clip en segundos y añada cada intervalo detectado mediante sus tiempos de inicio y fin, medidos desde el comienzo del mismo archivo. Se admiten decimales, por lo que puede usar directamente valores como 12.375 y 14.8. Mantenga todos los datos en una sola escala temporal: no mezcle muestras, milisegundos, códigos de tiempo ni mediciones de versiones ya recortadas. Un intervalo puede empezar en cero o terminar exactamente en la duración total. Los segmentos de longitud cero son válidos, pero no eliminan tiempo. Se rechazan límites negativos e intervalos invertidos. Además, si un final supera la duración del clip, recibirá un error en vez de una estimación engañosa. Esta validación ayuda a detectar archivos de duraciones y detecciones diferentes combinados por accidente. La herramienta solo utiliza los tiempos proporcionados; no necesita el archivo de audio.
Comprenda la resta sin duplicar solapamientos
Los detectores pueden producir intervalos solapados, anidados o unidos por el mismo límite. Si sumara cada longitud por separado, contaría el tiempo compartido varias veces y obtendría un resultado demasiado corto. La calculadora ordena los intervalos y fusiona el tiempo cubierto antes de restarlo. Por ejemplo, los silencios de 10 a 15 segundos y de 14 a 18 cubren ocho segundos únicos, no nueve. Un intervalo contenido por completo en otro no añade tiempo eliminable. Los intervalos contiguos, como 20–22 y 22–24, también se unen porque entre ambos no queda audio. La duración recortada representa, por tanto, la unión de todos los rangos no vacíos. La duración resultante es el total original menos esa unión. El recuento de entrada indica cuántos registros proporcionó y el recuento fusionado, cuántos rangos distintos quedaron. Así puede explicar cualquier diferencia respecto de una suma ingenua.
Integre la estimación en su flujo de edición
Interprete el resultado como una estimación para una regla concreta: se elimina por completo cada intervalo suministrado y no se conserva margen alrededor de la voz. Si su editor mantiene asas, aplica fundidos, exige una duración mínima de silencio o desplaza límites para conservar respiraciones, ajuste previamente los intervalos o espere una diferencia en el archivo renderizado. El cálculo resulta útil antes de procesos multimedia costosos. Puede anticipar la duración de un podcast, estimar el audio restante para transcripción o comprobar un límite de publicación. Guarde la duración original y la configuración del detector junto con la solicitud para poder auditar el resultado. El algoritmo es determinista: los mismos números producen siempre la misma respuesta. No realiza llamadas de red, decodificación, remuestreo ni análisis acústico. La solicitud API cuesta $0.002; los resultados están en segundos y su aplicación puede mostrarlos como código de tiempo.
Qué puede hacer con ella
Planifique la edición de un podcast
Estime la duración del episodio sin pausas antes de iniciar el renderizado completo.
Prevea el volumen de transcripción
Calcule cuánto audio cronometrado queda al excluir silencios de un lote de voz.
Compruebe un límite de duración
Determine si una clase, entrevista o grabación limpia cabrá en el máximo de publicación.
Preguntas frecuentes
¿Cuánto cuesta una solicitud?
Cada solicitud API cuesta $0.002.
¿Qué unidad debo utilizar?
Use segundos para la duración total y todos los límites; se admiten segundos decimales.
¿Qué ocurre si los silencios se solapan?
Los intervalos solapados, anidados o contiguos se fusionan para no restar dos veces el mismo audio.
¿Esta capacidad detecta el silencio del archivo?
No. Calcula a partir de segmentos ya detectados y no sube, decodifica ni analiza el audio.
¿Qué sucede si un segmento rebasa el clip?
La solicitud devuelve un error de entrada no válida si algún final supera total_duration.
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, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/audio/audio-silence-trim-estimate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"total_duration":120,"silence_segments":[{"start":0,"end":3.5},{"start":42,"end":47.25},{"start":110,"end":120}]}'const res = await fetch("https://api.kit.forhosting.com/audio/audio-silence-trim-estimate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"total_duration": 120,
"silence_segments": [
{
"start": 0,
"end": 3.5
},
{
"start": 42,
"end": 47.25
},
{
"start": 110,
"end": 120
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/audio/audio-silence-trim-estimate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"total_duration": 120,
"silence_segments": [
{
"start": 0,
"end": 3.5
},
{
"start": 42,
"end": 47.25
},
{
"start": 110,
"end": 120
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/audio/audio-silence-trim-estimate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"total_duration":120,"silence_segments":[{"start":0,"end":3.5},{"start":42,"end":47.25},{"start":110,"end":120}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"total_duration":120,"silence_segments":[{"start":0,"end":3.5},{"start":42,"end":47.25},{"start":110,"end":120}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/audio/audio-silence-trim-estimate", 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
{
"total_duration": 120,
"silence_segments": [
{
"start": 0,
"end": 3.5
},
{
"start": 42,
"end": 47.25
},
{
"start": 110,
"end": 120
}
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "audio.audio_silence_trim_estimate",
"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. |