¿Qué es la diarización de hablantes? Cómo funciona y casos de uso
- Escrito por
- Jack Limebear
- Publicado
- Última actualización
EscucharEscucha este artículo
La diarización de hablantes toma un flujo de audio con un número desconocido de hablantes y genera una línea temporal de segmentos etiquetados: hablante A de 0:00 a 0:42, hablante B de 0:42 a 1:15 y de nuevo hablante A desde 1:15. El sistema no sabe quiénes son los hablantes, pero sabe que son personas distintas y mantiene sus etiquetas coherentes durante toda la grabación.
Este proceso es lo que hace que el audio con varios hablantes sea útil. Las notas de reuniones, los análisis de centros de llamadas, las transcripciones de entrevistas, la edición de pódcasts y los registros legales dependen no solo de saber qué se dijo, sino también de quién lo dijo.
Esta guía explica cómo funciona la diarización, en qué se diferencia de técnicas relacionadas como la segmentación y la identificación, qué herramientas de código abierto la gestionan y cómo medir si un sistema de diarización funciona bien.
Resumen
- La diarización de hablantes segmenta una grabación de audio según quién habla y genera turnos de palabra etiquetados sin identificar a nadie por su nombre.
- La diarización de hablantes se diferencia de la segmentación de hablantes, que detecta cuándo cambia el hablante, y de la identificación de hablantes, que relaciona las voces con nombres reales.
- El rendimiento de la diarización se mide con la tasa de error de diarización (DER) para la precisión general y la tasa de error de Jaccard (JER) para comprobar que esa precisión se mantiene en todos los hablantes.
¿Qué es la diarización de hablantes y cómo funciona?
La diarización de hablantes es el proceso de dividir un flujo de audio en segmentos según quién está hablando. Una transcripción con diarización de hablantes etiqueta cada segmento de audio con la identidad de un hablante. En pocas palabras, responde a la pregunta: «¿Quién habló y cuándo?».
La transcripción sin procesar de una reunión te da las palabras, mientras que una transcripción con diarización te indica que el hablante 1 hizo la pregunta, el hablante 2 respondió y el hablante 3 interrumpió a mitad de camino.
La mayoría de los sistemas de diarización de hablantes siguen un proceso de cuatro etapas:

Veamos estas etapas con más detalle.
Detección de actividad de voz (VAD)
La detección de actividad de voz separa el habla de todo lo demás: silencio, ruido de fondo, música o clics del teclado. Solo los segmentos de audio que contienen habla real pasan a la siguiente etapa.
Cualquier error en esta etapa se propagará al resto del proceso.
Segmentación
Después, esos segmentos que contienen habla se dividen en puntos en los que es probable que cambie el hablante; por ejemplo, ante un cambio en el tono de voz, una pausa entre turnos o una variación en el patrón de entonación. La mayoría de los sistemas detectan estos puntos de cambio directamente comparando las características acústicas a ambos lados de un posible límite.
Algunas herramientas de segmentación dividen el audio en ventanas cortas y uniformes, como fragmentos de dos segundos, y después recurren a la etapa de agrupamiento para unir ventanas adyacentes que pertenecen al mismo hablante.
Extracción de embeddings
Cada segmento de habla se convierte en un embedding de hablante, es decir, un vector numérico que captura las características vocales de quien habla en ese segmento. Los embeddings del mismo hablante se agrupan cerca en el espacio vectorial, mientras que los embeddings de hablantes diferentes quedan más alejados.
Agrupamiento
A continuación, los embeddings se agrupan para que los segmentos del mismo hablante compartan una etiqueta. Normalmente, el sistema no conoce de antemano el número de hablantes, así que el algoritmo de agrupamiento tiene que deducirlo y decidir si ese segmento que suena ligeramente distinto pertenece a un hablante nuevo o a la misma persona con un tono diferente.

El resultado es un conjunto de etiquetas de hablante asociadas a intervalos de tiempo, normalmente junto con una transcripción. Por ejemplo, una transcripción con diarización de una llamada entre dos personas sería así:
- [speaker_0] Gracias por llamar. ¿En qué puedo ayudarte?
- [speaker_1] Hola, llamo por mi factura del mes pasado.
- [speaker_0] Claro, déjame consultarlo.
Las etiquetas son anónimas y coherentes internamente. Speaker_0 es la misma voz cada vez que aparece, pero el sistema no sabe que speaker_0 se llama Fergal. Asociar identidades reales es una tarea distinta, que veremos a continuación.
Diferencias clave entre la segmentación y la identificación de hablantes
La segmentación de hablantes y la identificación de hablantes se solapan estrechamente con la diarización, por lo que las tres suelen confundirse entre sí.
Cada una resuelve un problema ligeramente distinto, así que entender la diferencia es importante al evaluar herramientas.
Como explicamos antes, la segmentación de hablantes es una etapa de la diarización que ocurre al principio del proceso. Detecta los límites en los que el hablante cambia de una voz a otra, sin asignar etiquetas. La segmentación te indica que hubo un cambio en 0:42. La diarización va más allá: agrupa los segmentos resultantes y genera una salida totalmente etiquetada, para que sepas que la voz de 1:15 es la misma que habló al inicio de la grabación.
La identificación de hablantes es una capacidad independiente de la diarización, aunque se combina con ella con frecuencia. La identificación determina quiénes son realmente esos hablantes. Un sistema de identificación compara las voces con huellas de voz registradas y usa una referencia de hablantes conocidos para devolver identidades. Tras la identificación, speaker_0 y speaker_1 pasan a ser «Fergal» y «Eric».
Muchos productos combinan estas herramientas para generar una transcripción final más completa. Una herramienta de reuniones puede hacerlo automáticamente —incluso tomando datos como el nombre que alguien ha configurado en Teams o Meet—, de modo que las intervenciones de cada asistente se atribuyan por nombre sin revisión manual.

Herramientas y bibliotecas populares de código abierto para diarización de hablantes
Las herramientas de código abierto para diarización de hablantes merecen la pena si necesitas control, flexibilidad o un despliegue local. La mejor opción depende del tipo de audio que proceses —llamadas telefónicas, reuniones, pódcasts o retransmisiones—, de tus requisitos de latencia y del tiempo de ingeniería que puedas dedicar.
Estas son algunas de las opciones más populares.
Pyannote.audio
Pyannote.audio es un conjunto de herramientas basado en PyTorch y creado específicamente para la diarización de hablantes; además, es una de las opciones de código abierto más utilizadas. Ofrece procesos preentrenados que cubren toda la pila de diarización, incluidos VAD, segmentación, embeddings y agrupamiento, junto con los componentes necesarios para entrenar o ajustar modelos con tus propios datos.
Sus modelos preentrenados se distribuyen a través de Hugging Face y suelen utilizarse como capa de diarización en proyectos de transcripción más grandes.
WhisperX
WhisperX combina Whisper de OpenAI con ASR, diarización y alineación forzada. Whisper por sí solo genera buenas transcripciones, pero no asigna etiquetas de hablante y sus marcas de tiempo son solo aproximadas. WhisperX añade una alineación de marcas de tiempo a nivel de palabra e integra diarización basada en pyannote, generando transcripciones en las que cada palabra incluye tanto una marca de tiempo precisa como una etiqueta de hablante.
NVIDIA NeMo
NVIDIA NeMo incluye la diarización como parte de su marco más amplio de IA conversacional. Ofrece modelos de diarización entrenables, incluidos enfoques integrales que gestionan el habla superpuesta, y está diseñado para equipos que crean sistemas de voz personalizados a escala sobre infraestructura de GPU.
Cada una de estas herramientas requiere que gestiones la infraestructura de diarización, incluido el despliegue de modelos, el escalado, la monitorización y las actualizaciones. Para equipos que no quieren asumir esa carga operativa, las API gestionadas de diarización de voz ofrecen una alternativa más sencilla. Pueden integrarse en workflows existentes o encargarse de todo el proceso de diarización, por lo que se adaptan bien a casos de uso en producción, como los análisis de atención al cliente, la transcripción de reuniones y el procesamiento de pódcasts.
Diarización en tiempo real: retos y casos de uso
La diarización en tiempo real es considerablemente más difícil que la diarización de una grabación terminada porque el sistema tiene que tomar decisiones con un contexto incompleto.
Un sistema offline ve la grabación completa antes de decidir nada. Puede comparar una voz en el minuto 2 con una voz en el minuto 40 y determinar con seguridad que pertenecen al mismo hablante, porque tiene ambos momentos disponibles a la vez. Un sistema en tiempo real nunca tiene ese privilegio: debe etiquetar el habla en cuanto llega, sin acceso a lo que se dirá después y con pocas o ninguna posibilidad de revisar una decisión una vez tomada.
La falta de contexto futuro hace que tres problemas concretos sean mucho más difíciles de resolver en tiempo real:
- Latencia frente a precisión: sin poder revisar toda la conversación, cumplir plazos de respuesta más ajustados supone directamente sacrificar precisión.
- Habla superpuesta: cuando varias personas hablan a la vez, un sistema que pudiera reprocesar el audio podría separarlas. Un sistema en tiempo real tiene que forzarlo a una sola etiqueta o recurrir sobre la marcha a modelos especializados que detecten solapamientos.
- Intervenciones cortas: un «sí» o «adelante» apenas proporciona al sistema voz suficiente para analizar y, sin contexto alrededor en el que apoyarse, debe asignar una etiqueta de inmediato.
A pesar de la dificultad, algunas aplicaciones no pueden esperar a que termine una grabación. Los subtítulos en directo para reuniones y retransmisiones necesitan etiquetas de hablante a medida que las personas hablan. El software para centros de llamadas que ofrece indicaciones a agentes durante la llamada necesita saber en tiempo real qué palabras usa el cliente. Los agentes de voz que gestionan llamadas con varios participantes necesitan saber sin demora quién pregunta qué. En cada caso, un sistema ligeramente menos preciso pero inmediato es mejor que otro más preciso pero con retraso.
Para cargas de trabajo que no requieren realmente etiquetas en tiempo real, como análisis, revisión de cumplimiento normativo y generación de transcripciones, la diarización por lotes sigue siendo la mejor opción porque es mucho más precisa.
Cómo evaluar el rendimiento de la diarización de hablantes
Dos métricas son las más importantes para medir la precisión de la diarización: la tasa de error de diarización (DER), que captura la precisión general, y la tasa de error de Jaccard (JER), que comprueba si esa precisión se mantiene para todos los hablantes.
La DER calcula específicamente la proporción del tiempo total de habla que se atribuye de forma incorrecta. Combina tres tipos de errores:
- Falsa alarma de habla: el sistema etiquetó un segmento como habla cuando nadie estaba hablando.
- Habla omitida: alguien estaba hablando, pero el sistema lo etiquetó como silencio.
- Confusión de hablantes: se detectó habla, pero se atribuyó al hablante incorrecto.
DER = (falsa alarma + habla omitida + confusión de hablantes) / duración total del habla
Una DER del 10 % significa que los errores equivalen a una décima parte del tiempo total de habla, entre esos tres tipos. Cuanto más baja, mejor; las puntuaciones solo son comparables si se miden con los mismos datos y en las mismas condiciones. La DER varía enormemente según la calidad del audio, el número de hablantes y el grado de solapamiento de la grabación.
La tasa de error de Jaccard (JER) mide por separado la precisión de la diarización para cada hablante y, después, calcula la media entre todos ellos. Para cada hablante de referencia, el evaluador empareja la etiqueta de hablante más cercana del sistema y compara el tiempo durante el que coinciden correctamente con el tiempo total asignado a cualquiera de los dos hablantes.
Por ejemplo, imagina una reunión de 60 minutos en la que el hablante A habla durante 50 minutos y el hablante B durante 10. Un sistema de diarización etiqueta correctamente 48 de los 50 minutos del hablante A, pero solo 4 de los 10 minutos del hablante B. Su DER global puede seguir pareciendo relativamente buena porque la mayor parte de la reunión corresponde al hablante A. La JER da el mismo peso al mal resultado del hablante B, ya que evalúa de forma independiente a los hablantes A y B antes de calcular la media de sus puntuaciones.
JER_hablante = 1 - (solapamiento_correcto / (tiempo_ref + tiempo_sist - solapamiento_correcto))
La JER final es la media de esas tasas de error por hablante:
JER = (1 / N) * Σ[JER_hablante_i] para i = 1..N
Hacer seguimiento tanto de la DER como de la JER ofrece una visión más completa de la precisión de la diarización: la DER mide la precisión general y la JER comprueba si esa precisión se mantiene para todos los participantes, incluidas las personas que hablan con menos frecuencia.
Pruebas con audio representativo de producción
Al evaluar un sistema de diarización de hablantes, calcula tanto la DER como la JER en audio que refleje tus condiciones reales de despliegue: el número habitual de hablantes, la calidad de tu audio y el grado de conversación cruzada.
Las puntuaciones de benchmarks publicadas pueden medirse en conjuntos de datos limpios y controlados, como grabaciones de estudio, que rara vez se parecen a grabaciones de llamadas reales o reuniones en directo. Un sistema que obtiene buenos resultados en benchmarks puede rendir mucho peor con audio real, ruidoso y con solapamientos. Prueba con tus propios datos antes de decidirte por un producto de diarización.
Empieza con ElevenAPI para la diarización de hablantes
Si quieres crear una función de transcripción compatible con varios hablantes, Scribe v2 de ElevenLabs pone la diarización de hablantes a tu alcance mediante una única API de Voz a Texto. Envía audio a la ruta de API con diarize=true y la respuesta JSON etiqueta cada palabra con un ID de hablante, para hasta 32 hablantes, en más de 90 idiomas y en archivos de hasta 10 horas.
Dos opciones amplían la salida de diarización estándar. Para grabaciones de llamadas, detect_speaker_roles=true etiqueta a los hablantes como agente y cliente en lugar de usar números anónimos. Si tu espacio de trabajo cuenta con perfiles de hablante registrados, use_speaker_library=true puede relacionar los hablantes detectados con voces registradas, combinando diarización e identificación en una sola solicitud.
Un parámetro de umbral de diarización te permite ajustar el equilibrio entre dividir demasiado y fusionar hablantes. Además, cuando los hablantes ya están aislados en canales de audio independientes, como en grabaciones de llamadas estéreo, la transcripción multicanal asigna hablantes por canal y omite por completo la diarización.
La guía de inicio rápido de Voz a Texto explica paso a paso la primera integración. Para despliegues regulados, la plataforma cumple con SOC 2, ISO 27001, PCI DSS L1 y HIPAA, y ofrece residencia de datos en la UE y modo de retención cero.
¿Quieres incorporar la diarización de hablantes a tus sistemas? Empieza por obtener tu clave de API o consulta la documentación de ElevenLabs para obtener más información.


