Whisper Notes ya identifica a los hablantes

28 de julio de 2026
·
8 min read
·Whisper Notes Team

Una transcripción te dice qué se dijo. En entrevistas, juntas y podcasts, falta la otra mitad: saber quién lo dijo. En investigación del habla, este problema se conoce como diarización de hablantes. Desde iPhone 1.8.5, Mac App Store 1.3.2 y la versión de Mac descargada desde el sitio 1.5.1, Whisper Notes ejecuta la diarización íntegramente en el dispositivo.

Aquí explicamos cómo funciona, compartimos los resultados de un benchmark frente a una referencia generada en la nube y describimos el único fallo que no pudimos eliminar con ingeniería, además de la solución que adoptamos.

Qué hace

Abre una nota —una grabación, un archivo de audio o video importado o una grabación de una junta— y presiona el botón de hablantes. A los pocos segundos, cada párrafo muestra una etiqueta de hablante y una marca de tiempo.

Diarización de hablantes local en Whisper Notes para Mac: transcripción de un podcast con etiquetas y marcas de tiempo, procesada en el dispositivo Etiquetas de hablantes en Whisper Notes para iPhone: transcripción con nombres y marcas de tiempo por hablante

Etiquetas de hablantes en Mac y iPhone. Al tocar una frase, la reproducción salta a ese instante.

Las etiquetas empiezan como Hablante 1 y Hablante 2. Si cambias una, se actualiza toda la transcripción. Toca cualquier frase para llevar la reproducción al instante exacto; así resulta fácil contrastar una cita con la voz original.

Cambiar el nombre de un hablante en Whisper Notes actualiza su etiqueta en toda la transcripción

Al cambiar el nombre de un hablante, se actualizan todos los párrafos de la nota.

En las grabaciones de reuniones, la identificación de hablantes se ejecuta automáticamente al terminar la llamada; puedes desactivarla en Configuración. Las etiquetas se conservan al exportar: Copiar transcripción con hablantes las copia al portapapeles, y los archivos SRT y VTT las incluyen en los subtítulos.

La diarización trabaja con voces, no con palabras. Por eso se comporta igual en los más de 100 idiomas que la app transcribe.

Un modelo de 19 MB en el Neural Engine

La diarización responde a «quién habló y cuándo» en tres pasos. Primero divide el audio en segmentos con voz. Después convierte cada segmento en una huella vocal: un vector compacto que describe la voz, no las palabras. Por último, agrupa las huellas; los segmentos del mismo grupo reciben la misma etiqueta.

Whisper Notes utiliza el pipeline community-1 de pyannote, convertido a Core ML para que sus dos etapas funcionen en el Neural Engine. La descarga única ocupa 19 MB, y una conversación de 5.7 minutos tarda entre 2 y 4 segundos en un Mac con chip M.

Audio → segmentos con voz → huellas vocales → grupos → etiquetas

Todos los pasos se ejecutan en el dispositivo.

Esto importa aún más en la diarización que en la transcripción. Una huella vocal es un dato biométrico: identifica a una persona como lo hace una huella dactilar. Al ejecutar el proceso localmente, las huellas de tu voz, de tus compañeros y de las personas que entrevistas se calculan, agrupan y descartan en el dispositivo. Nunca se envían a ningún sitio.

Qué medimos

Mantenemos un benchmark fijo de dos archivos para la diarización. La referencia procede de un servicio de ASR y diarización en la nube (ElevenLabs) y se revisa a mano. La medición asigna cada 10 ms de voz a un hablante y toma la mejor correspondencia entre el resultado y la referencia. Dos archivos son una muestra pequeña: tomamos estas cifras como una referencia, no como una conclusión.

El primer archivo representa el caso habitual: un podcast de cinco minutos en inglés con dos voces claramente distintas. Así son la mayoría de las entrevistas, los podcasts y las juntas de dos personas.

Podcast en inglés con dos hablantes (5 min) Resultado
Atribución por trama (resolución de 10 ms) 96.7%
Precisión por frase (lo que lees) 99.1%
Tiempo de procesamiento, Neural Engine de la serie M 2–4 s

El 0.9% restante corresponde a tres oscilaciones en los límites de las frases que suman 3.4 segundos, dentro de la resolución de la propia referencia. En este tipo de material, el resultado en el dispositivo iguala al servicio en la nube que generó nuestra referencia.

El caso difícil

El segundo archivo es difícil a propósito: dos voces masculinas parecidas en una sala con reverberación y un presentador que interviene 19 veces, durante una media de 2.3 segundos cada vez. El invitado habla 272 segundos; el presentador, 43. Este es el perfil acústico que hace fallar la diarización en cualquier idioma: voces similares que se alternan en intervenciones breves.

Aquí, la agrupación automática colapsa. Las dos huellas están tan cerca que el algoritmo las fusiona y asigna casi toda la conversación a una sola etiqueta. Resulta que la grabación es un programa de entrevistas en chino, lo que nos permitió probar la hipótesis obvia: que un modelo especializado en el idioma funcionaría mejor. Por eso ejecutamos, en un pipeline de CPU, dos modelos de hablantes entrenados específicamente con voz china:

Modelo Podcast en inglés Caso difícil* Tiempo (audio de 5.7 min)
pyannote community-1 (nuestro modelo, Neural Engine) 96.7% 81–82% 2–4 s
CAM++ (entrenado en chino, CPU) 93.9% 81.2% 36–103 s
ERes2NetV2 (entrenado en chino, CPU) 80.5% 220–290 s

* Atribución por trama en el archivo difícil con el número de hablantes indicado. Sin ese dato, todos los modelos colapsan hacia un único hablante.

Ambos colapsan de la misma forma y requieren entre 10 y 100 veces más cálculo. La dificultad es acústica, no lingüística: el límite está en lo que las representaciones de voz actuales pueden distinguir, en cualquier idioma.

Esto descartó la solución obvia y señaló otra: darle al proceso un dato que no puede deducir, el número de personas que hay en la sala. Al indicar el número (una opción del menú de 2 a 6), el archivo difícil pasa del colapso a una precisión por frase del 89%. La detección automática sigue siendo la opción por defecto, porque acierta con el material habitual.

Volver a ejecutar la detección de hablantes en Whisper Notes con un número concreto y exportar SRT y VTT con etiquetas

Repetir la detección con el número exacto de hablantes. El mismo menú exporta SRT y VTT con sus etiquetas.

Corregir las intervenciones breves

Una vez fijado el número, cerca de la mitad de los errores restantes estaba en intervenciones de menos de tres segundos. Un fragmento de dos segundos ofrece muy poca señal al modelo de representación; en intercambios rápidos, su huella también absorbe parte de la voz del hablante contiguo.

Tras la agrupación, el proceso vuelve a examinar cada frase de menos de 3.5 segundos. Recalcula la huella vocal con una máscara que cubre exactamente las tramas de esa frase, la compara con el ancla de cada hablante —la media de sus intervenciones más largas— y solo cambia la etiqueta cuando la diferencia es concluyente. Se reutiliza el modelo existente, sin ninguna descarga adicional.

Precisión por frase de extremo a extremo Antes de la corrección Después
Caso difícil (número de hablantes indicado) 89.0% 94.8%
Podcast en inglés (automático) 98.5% 99.1%

El umbral es conservador: entre los dos archivos, el corrector cambió 21 etiquetas y no introdujo ningún error nuevo.

Limitaciones

• Las etiquetas aparecen cuando termina la grabación, no durante la llamada. Si necesitas subtítulos en vivo con los nombres de los hablantes mientras continúa una junta, un servicio en la nube como Otter o Notta es una opción más adecuada.

• Cuando dos personas hablan a la vez, cada frase recibe una sola etiqueta.

• Las voces parecidas siguen siendo difíciles. El 94.8% obtenido en nuestro archivo difícil es el límite actual con el número de hablantes indicado, no un problema resuelto.

Disponibilidad

La identificación de hablantes está incluida en el compra única de $6.99, junto con los tres motores de transcripción de la app —Parakeet V3, Whisper Large V3 Turbo y SenseVoice— y la edición local con IA. No existe un nivel aparte y no necesitas crear una cuenta.

iPhone: App Store, versión 1.8.5 o posterior.

Mac App Store: versión 1.3.2 o posterior.

Descarga directa para Mac (DMG): versión 1.5.1 o posterior desde whispernotes.app, con prueba gratis.

Para conocer cómo funciona la grabación de juntas, lee nuestro artículo sobre transcripción de juntas sin conexión.