audio processing

Tutorial de OpenAI Whisper: Construyendo una Aplicación de Identificación de Hablantes utilizando Pyannote

Creating a speaker identification app with OpenAI Whisper and Pyannote

Descubriendo OpenAI Whisper: Un Hito en el Reconocimiento de Voz

OpenAI ha introducido Whisper, un sistema de reconocimiento de voz de vanguardia que ha sido meticulosamente ajustado con más de 680,000 horas de datos supervisados multilingües y multitarea de la web. Este extenso conjunto de datos mejora significativamente la capacidad de Whisper para manejar acentos, ruido de fondo y lenguaje especializado, convirtiéndolo en una solución robusta para la transcripción en múltiples idiomas. Además, Whisper incluso puede traducir contenido al inglés, añadiendo otra capa de funcionalidad.

A pesar de sus impresionantes capacidades, Whisper enfrenta desafíos para identificar hablantes individuales durante una conversación. Diarización, el proceso de determinar quién está hablando en cada momento, es esencial para analizar conversaciones de manera efectiva. En este tutorial de OpenAI Whisper, exploraremos cómo reconocer a los hablantes y alinear sus contribuciones con las transcripciones de Whisper utilizando pyannote-audio. ¡Sumergámonos!

Preparando el Audio

El primer paso implica preparar el archivo de audio para su procesamiento. Para ello, utilizaremos los primeros 20 minutos del podcast de Lex Fridman con Yann LeCun. Para descargar el video y posteriormente extraer el audio, utilizaremos el paquete yt-dlp, asegurándonos de que ffmpeg esté instalado en nuestro sistema.

El proceso es sencillo, requiriendo solo unos pocos comandos en la terminal. Una vez que hayamos ejecutado estos comandos, tendremos un archivo llamado download.wav en nuestro directorio de trabajo. A continuación, utilizaremos el paquete pydub para recortar este archivo de audio a los primeros 20 minutos, resultando en un archivo llamado audio.wav.

Diarización con Pyannote

pyannote.audio es un conjunto de herramientas de código abierto desarrollado en Python específicamente para la diarización de hablantes. Construido sobre el marco de aprendizaje automático PyTorch, este conjunto de herramientas proporciona una serie de bloques de construcción entrenables que pueden crear y optimizar procesos de diarización de hablantes.

Con los modelos preentrenados y las tuberías disponibles en pyannote.audio, los usuarios pueden realizar efectivamente tareas tales como detección de actividad de voz, segmentación de hablantes y detección de habla superpuesta.

Para empezar, instalaremos Pyannote y lo ejecutaremos utilizando el audio extraído del podcast. Después de ejecutar el proceso de diarización, revisaremos la salida, que normalmente muestra segmentos detallando los tiempos de inicio y fin de las contribuciones de cada hablante, junto con un indicador de si el hablante es Lex o no.

Preparando el Archivo de Audio a partir de la Diarización

Después del proceso de diarización, organizaremos los segmentos de audio según los datos de diarización, utilizando un espaciador como delimitador para asegurar claridad en las transiciones entre hablantes.

Transcripción con Whisper

Con los segmentos de audio preparados, procederemos a transcribir estos segmentos utilizando Whisper. Sin embargo, es importante señalar que podría haber un conflicto de versión con pyannote.audio que podría presentar un error. Nuestra solución es ejecutar Pyannote primero y luego ejecutar Whisper, permitiendo una transcripción sin problemas y sin preocupación por el error.

La instalación de OpenAI Whisper se puede realizar fácilmente. Una vez instalado, ejecutamos Whisper sobre el archivo de audio preparado, que escribe la transcripción en un archivo especificado. Los usuarios pueden personalizar el tamaño del modelo según sus necesidades consultando la tarjeta del modelo en GitHub.

Para procesar archivos .vtt de manera efectiva, también necesitaremos instalar la biblioteca webvtt-py.

Igualando Transcripciones con Diarizaciones

A continuación, igualaremos cada línea de transcripción con los segmentos de diarización correspondientes. Esto se mostrará en un formato estructurado generando un archivo HTML. Para asegurar una representación precisa del tiempo, también incorporaremos cualquier sección de audio donde no se identificó un hablante.

Aplicaciones Prácticas de Este Conocimiento

Una aplicación emocionante de estas habilidades podría involucrar el desarrollo de una aplicación Whisper durante un hackathon de IA, colaborando con innovadores afines de todo el mundo. Tras la fase de desarrollo, los participantes pueden postularse al programa Slingshot de New Native para una mayor aceleración del proyecto. Eventualmente, el objetivo sería lanzar la solución comercialmente y abordar desafíos globales relevantes con IA.

Alternativamente, los individuos podrían optar por internalizar estas habilidades y dejar sus proyectos a un lado, permitiendo que otros lideren el cambio. Si bien esta opción es factible, no se recomienda particularmente.

Más de 54,000 personas han participado en AI Hackathons de lablab.ai a nivel global en diversos campos, dando lugar a la creación de más de 900 prototipos. ¡Esta comunidad sigue creciendo, convirtiéndola en la oportunidad perfecta para conectar con otros constructores de IA y contribuir a innovaciones significativas!

Puede que te interese

AI art tutorial featuring stable diffusion and QR code integration.
Illustration showing the process of setting up AutoGPT with key components.

Dejar un comentario

Todos los comentarios se revisan antes de su publicación.

Este sitio está protegido por hCaptcha y se aplican la Política de privacidad de hCaptcha y los Términos del servicio.