Identificar hablantes
Una transcripción responde qué se dijo; la diarización responde quién lo dijo. Este endpoint escucha una grabación, determina cuántos hablantes distintos hay presentes y etiqueta cada segmento con una marca de hablante y su tiempo, la pieza que la transcripción sola deja en blanco en cualquier conversación con más de una voz.
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.
El problema que solo aparece con dos voces
Una grabación de un solo hablante nunca necesita esto: una voz, una transcripción, sin ambigüedad sobre quién habla. En el momento en que entra una segunda voz —una entrevista, una llamada de soporte, un panel, una declaración— una transcripción simple se convierte en un bloque de texto sin diferenciar, donde el lector tiene que adivinar quién dijo qué solo por contexto. La diarización es el paso que convierte ese bloque de nuevo en una conversación legible.
Qué devuelve la tarea
Envía un archivo de audio por POST a /audio/diarize y la tarea segmenta la grabación por hablante, asignando a cada segmento una etiqueta como Hablante 1 o Hablante 2 junto con su tiempo de inicio y fin, sin necesidad de saber de antemano cuántas personas hay en la grabación. Responde quién hablaba y cuándo, lo cual se combina de forma natural con una transcripción para producir un intercambio etiquetado y legible en lugar de un bloque único sin diferenciar.
En qué se diferencia de la transcripción y de la identificación de voz
La diarización no es la misma tarea que la transcripción: no necesita saber qué se dijo para detectar que empezó a hablar una voz distinta; y tampoco es lo mismo que la identificación de voz, que requeriría ya saber de antemano quién es cada hablante por su nombre. Responde una pregunta más acotada y mecánica: cuántas voces hay aquí y cuándo tiene la palabra cada una. Ese alcance más estrecho es justamente lo que la hace confiable en grabaciones donde los participantes son anónimos o desconocidos de antemano.
Dónde se usa
Los centros de contacto la usan para separar la voz del agente de la del cliente sin necesidad de una grabación dedicada en dos canales, periodistas e investigadores la usan para mantener legibles entrevistas con varias personas, y los equipos legales y de cumplimiento la usan para estructurar declaraciones y audiencias grabadas en un formato revisable. Combinar los segmentos de hablante con una transcripción produce un intercambio tipo guion etiquetado por hablante, que es lo que realmente necesitan la mayoría de estos casos de uso, más que solo texto crudo o solo tiempos.
Precio y cómo se factura
El costo es una tarifa base pequeña por solicitud más una tarifa por minuto según la duración de la grabación, publicada en esta página sin ningún multiplicador oculto por el número de hablantes detectados. La tarea procesa de forma asíncrona: envía el audio, recibe un task_id de inmediato, y recolecta el resultado etiquetado por hablante mediante webhook firmado o desde un enlace firmado válido por 24 horas; una tarea fallida reintenta automáticamente hasta tres veces y nunca se cobra si sigue sin completarse.
Qué puede hacer con ella
Transcripciones de entrevistas con varios hablantes
Un periodista procesa una entrevista grabada por el endpoint para etiquetar quién dijo qué, convirtiendo una grabación en bruto en una transcripción legible y atribuible.
Revisión de calidad en centros de contacto
Un equipo de soporte separa el habla del agente de la del cliente en llamadas grabadas sin necesitar grabaciones de doble canal, agilizando la revisión y el coaching.
Revisión de declaraciones y audiencias legales
Un equipo legal estructura una declaración grabada en segmentos etiquetados por hablante para agilizar mucho la revisión y la cita de afirmaciones específicas.
Producción de contenido de paneles y mesas redondas
Un productor de podcast diariza una grabación con varios invitados para generar automáticamente notas de episodio etiquetadas por hablante y extraer citas individuales con precisión.
Preguntas frecuentes
¿Qué hace exactamente una API de diarización de hablantes?
Analiza una grabación de audio y etiqueta qué hablante está hablando en cada segmento, con su tiempo de inicio y fin, sin necesidad de conocer de antemano la identidad de los hablantes.
¿Necesito saber cuántos hablantes hay en la grabación?
No, la tarea determina automáticamente el número de hablantes distintos presentes en el audio como parte del análisis.
¿En qué se diferencia la diarización de la transcripción?
La transcripción produce las palabras que se dijeron; la diarización produce quién dijo cada segmento y cuándo. Combinando ambas se obtiene una transcripción legible y etiquetada de una grabación con varios hablantes.
¿Puede identificar a los hablantes por su nombre?
No, la diarización etiqueta a los hablantes de forma genérica, como Hablante 1 y Hablante 2, según las diferencias de voz en el audio; no relaciona las voces con identidades conocidas.
¿La API de diarización de hablantes es gratuita?
No hay capa gratuita: las capas gratis se abusan y ralentizan a todos. El acceso funciona con un saldo prepago de ForHosting KIT: se recarga desde $10.00 (no caduca) y cada solicitud se cobra a su precio publicado, así que una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens ni créditos inventados, y una tarea fallida no se cobra.
¿Cómo recibo el resultado de la diarización?
La tarea devuelve un task_id de inmediato y procesa de forma asíncrona; los resultados llegan por webhook firmado o desde un enlace firmado válido por 24 horas.
¿Funciona con llamadas telefónicas y audio de baja calidad?
Está diseñada para funcionar con conversaciones grabadas típicas, incluidas llamadas; un audio con mucho solapamiento de voces o muy mala calidad puede reducir la precisión de los segmentos, como en cualquier tarea de análisis de habla.
¿Qué pasa si falla la diarización?
La tarea reintenta automáticamente hasta tres veces antes de devolver un error claro, y una solicitud fallida nunca se cobra.
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/diarize \
-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/diarize", {
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/diarize",
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/diarize", 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/diarize", 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.diarize",
"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. |
422 | task_failed | La tarea falló tras 3 reintentos. No se cobra. |