2022 será recordado como el año de Stable Diffusion, de Dalí 2, de increíbles modelos
generadores de texto como Palm o generadores de código como AlphaCode.
Y sin embargo, charlando el mes pasado con Andrés Torrubia, él me comentaba que lo
más interesante que había visto este año era una inteligencia artificial que venía
del laboratorio OpenAI, una IA llamada Whisper.
¿Qué es para ti de lo que ha salido este año lo más impresionante?
Pues curiosamente, fíjate, curiosamente, hasta ahora Whisper, yo creo.
¿Sabes por qué?
Curioso, eh.
Por lo que me impresiona Whisper es que Whisper funciona, es como, para mí, Whisper, si fuera
el coche autónomo, sería el primer self-driving del dictado, o sea, es el primero que se parece
a una persona.
Bueno, pero para que entiendas tú primero qué es esto de Whisper, te voy a pedir que
hagas el siguiente ejercicio.
Te voy a reproducir un audio en inglés y tu tarea es transcribir cada una de las palabras
que estés escuchando.
¿Estás listo?
Tres, dos, uno.
¿Has entendido algo?
Ya, yo tampoco.
Pues a oídos de esta inteligencia artificial, esta es la transcripción perfecta que ha conseguido.
¿Y qué tal tu coreano?
Bueno, pues para Whisper tampoco es problema y también puede transcribir este audio en
perfecto inglés.
Y bueno, también me entiende a mí.
Esto que estás viendo en pantalla ahora es el speech to text que consigue Whisper cuando
le paso la pista de audio que estás escuchando.
Fíjate bien, no sólo consigue una transcripción casi perfecta, entendiendo incluso palabras
concretas como Whisper o speech to text, sino que también es capaz de generar puntos, comas
y otros signos de puntuación que a otros muchos modelos comerciales de reconocimiento
del habla pues se le suele atragantar.
Y esto es muy interesante.
Bueno, no esto, sino Whisper.
Whisper en general tiene muchas cosas interesantes y la primera cosa interesante es el contexto
en el que esta herramienta aparece.
Tras un año de increíbles logros por parte del Laboratorio de Inteligencia Artificial
de OpenAI, de repente de la nada surge una iniciativa colaborativa como Stability.ai
que en septiembre toma por bandera el hacer open source muchas de las tecnologías que
OpenAI por su parte pues ha decidido guardarse para sí y compartir sólo bajo servicios
de pago.
Para mí esto tampoco es un problema, puesto que al final OpenAI como empresa pues tiene
que pagar sus facturas y al menos nos está dando una forma de acceder a estas potentes
inteligencias artificiales.
Aprende Google.
Pero claro, llega un muchachito nuevo a la ciudad y empieza a regalar caramelos a los
niños y de repente el chico popular pues empieza a ver desplazado.
Y en ese preciso momento llega OpenAI de la nada y nos regala a Whisper para beneficio
de todos.
Porque sí, amigos, esto es open source, que sé que os encanta escuchar estas palabras.
Al final del vídeo voy a enseñar un mini tutorial para que veáis qué sencillo es utilizar
esta herramienta y también os voy a compartir un notebook para que sea súper sencillo para
vosotros.
Y esto es lo que hace a Whisper una herramienta súper interesante, pero no es la única cosa.
Y aquí es donde viene una de las cosas que más ha llamado mi atención y es que Whisper
no es un complejo sistema que hayan diseñado para procesar audio como nunca antes había
hecho o un sistema súper complejo con un montón de módulos de procesamiento.
No, Whisper es esto de aquí, una red neuronal de tipo transformer de las de 2017, no tiene
ningún cambio, ninguna novedad.
Es una arquitectura que ya todos nosotros conocemos.
Entonces, si esto es así, por qué no existía ya una tecnología como Whisper?
Pues la clave que hace a Whisper algo tan potente está en los datos y en cómo han
estructurado su entrenamiento.
Para entrenarlo, OpenAI ha utilizado ni más ni menos que 680.000 horas de audio con su
correspondiente texto, una brutalidad.
Y es que si hacéis el cálculo 680.000 horas y empezar a reproducirlas ahora, acabarías
de escucharla dentro de 77 años.
Te podrías asegurar que en algún momento en el cielo verías surcar al cometa Halley.
Pero es que además, una cosa muy interesante es que estos audios vienen en múltiples idiomas,
permitiéndonos poder entrenar a un modelo que es multilinguaje, que puede entendernos
si le hablamos en español, en inglés, en coreano, da igual.
Pero la cosa no se queda solo ahí.
Y es que Whisper, además de ser un sistema multilinguaje, también es un sistema multitarea.
Esta es una tendencia que, como ya vimos en el vídeo sobre Gato, en el mundo del deep
learning cada vez es más frecuente.
No entrenar a la inteligencia artificial para una única tarea, sino entrenarla para varias
diferentes, haciendo así que su aprendizaje sea mucho más sólido y robusto.
Como hemos visto, Whisper puede tomar audios en inglés y transcribirlos al inglés, o
audio en coreano y transcribirlo al coreano.
Pero el mismo modelo también puede identificar qué lenguaje se está hablando, o actuar
como un detector de voz para clasificar cuando en un trozo de audio se está escuchando no
a una persona.
O también, la tarea que más interesante me parece de todas, que tú le puedas hablar
a Whisper en cualquier idioma y que él te lo transcriba automáticamente al inglés.
Y en este caso no sabría deciros por qué, pero para mí esta me parece una funcionalidad
fascinante.
Parece que tampoco nos ofrece nada nuevo, ¿no?
Al final tú puedes coger el texto que genera cualquier transcriptor de texto en tu idioma
y pasarlo por un traductor.
Pero en este caso me parece fascinante el ver cómo algo tan sencillo como un único
modelo de deep learning te permite poder hablarle en cualquier idioma y que te genere el texto
en inglés sin tener que combinar ningún tipo de herramientas.
Es súper sencillo.
Y lo de los datos que hemos comentado antes también es súper interesante.
Porque mi primera intuición aquí es que OpenAI, en la búsqueda de un dataset masivo
de estas 680.000 horas de audio que tuviera una transcripción de texto para poder hacer
este aprendizaje supervisado, pues posiblemente había acudido a una de las mayores fuentes
que podemos encontrar en Internet, que es YouTube.
Al final ya sabéis que todos los vídeos de YouTube tienen generados subtítulos automáticamente.
Pues no.
Justamente en esto OpenAI hace mucho hincapié en su paper para explicarnos que han hecho
un proceso de filtrado para eliminar del dataset cualquier aparición de texto generado por
sistemas automáticos de reconocimiento del habla.
¿Por qué?
Pues justamente para evitar que Whisper aprendiera también aquellos defectos, aquellos vicios
que los otros sistemas automáticos también pudieran tener.
Dicho esto, ahora que estamos hablando de Whisper y de YouTube, hay una teoría que
quiero contaros que me parece muy interesante, no es nada que esté confirmado, pero que
podría explicar la razón de existir de esta herramienta y que podría tener cierta relación
con un futuro GPT-4.
Esta es una idea que escuché en el canal del doctor Alan Thompson y que dice que en
un futuro próximo, donde GPT-4 pueda empezar a entrenar, Whisper podría ofrecer al sistema
una enorme fuente de datos con la que sistemas anteriores no habían contado.
Pensemos que un sistema como GPT-3 se ha entrenado con un montón de artículos de Wikipedia,
de libros, de foros, de conversaciones de Internet, pero nunca ha podido acceder a toda
esa fuente hablada que puede estar en bases de datos como YouTube.
Una herramienta como Whisper podría ser utilizada para barrer por completo a YouTube, transcribir
muchos de sus audios y obtener, desbloquear una nueva fuente de datos que antes no habría
sido posible utilizar para entrenar a un futuro modelo del lenguaje.
Este es el enorme valor que tiene una herramienta como Whisper y que creo que hace tan interesante
a esta tecnología.
No, no resuelve una tarea que sea espectacular, como generar imágenes o generar vídeo, pero
resuelve una tarea muy útil y casi la resuelve hasta la perfección.
Ojo, digo casi, no es perfecta, a veces algunas palabras se equivocan evidentemente y no cubre
todos los lenguajes que existen en el planeta Tierra y bueno, por buscar alguna limitación
frente a otras herramientas comerciales, pues tampoco funciona en tiempo real todavía.
Procesar el audio dependiendo de la longitud te puede llevar unos cuantos segundos, a veces
algún minuto, pero es una herramienta sólida, es madura, es útil y además open source,
permitiendo que ahora cualquiera pueda acceder a una herramienta profesional de transcripción
y traducción de texto mejor que cualquier alternativa gratis.
¿Qué?
Ah, que también vosotros queréis acceder a esta herramienta.
Bueno, venga va, os preparo un tutorial facilito para que todos podáis utilizarlo.
Vamos a hacerlo en Google Colab, pero antes y aprovechando que estamos hablando de programación,
de desarrollo, de innovación, dejadme que os recuerde que quedan muy poquitos días
para que se celebre el Samsung Dev Day, que es el evento tecnológico que celebra cada
año la comunidad de Samsung Dev Spain, que es la comunidad oficial de Samsung para desarrolladores
españoles.
Este será un evento gratuito que no os podéis perder.
Si estáis en Madrid podéis asistir presencialmente el día 16 de noviembre en el claustro de
los Jerónimos del Museo del Prado y si no, pues podéis conectaros online a través de
su streaming.
Pero si, hay que registrarse, yo tuve la suerte el año pasado de poder participar con una
ponencia sobre generación de código con inteligencia artificial y la experiencia fue
genial.
Así que ya lo veis, será un evento cargado de charlas geniales, hablando de tecnología,
de innovación, de aplicaciones y además va a estar presentado por mi dudev, que seguramente
muchos de vosotros le conozcáis, así que no os lo podéis perder.
Os voy a dejar abajo en la cajita de descripción un enlace a la página web de Samsung Dev
Spain, donde vais a encontrar toda la información respecto a la agenda donde registraros y un
montón de recursos más.
Nos vemos el 16 de noviembre.
Pues vamos a ver cómo podemos utilizar Whisper nosotros en nuestro propio código.
Para esto vamos a utilizar Google Colab, ya sabéis que Google aquí nos está cediendo
una máquina virtual gratuita que podemos utilizar y vamos a verificar siempre que tengamos
activado el tipo de entorno con aceleración por hardware GPU, vale, vamos a darle aquí
GPU, vamos a darle a guardar y ahora el primer paso será instalar a Whisper.
Para ello vamos a usar estos dos comandos de aquí, a instalar, esto lo podéis encontrar
en el propio repositorio de GitHub de Whisper, os voy a dejar abajo en la cajita de descripción
estos comandos, le damos a ejecutar y dejamos que se instale.
Una vez instalado vamos a subir algún audio que queramos transcribir, yo en este caso
voy a probar con la canción de Rosalía de Chicken Teriyaki, vamos a colocarla para acá,
la arrastramos y ahora el siguiente paso pues vamos a coger aquí y vamos a poner el comando
necesario para poder ejecutarlo, vamos a darle aquí a song.mp3, se llama el archivo que
hemos subido, vale, song.mp3, la tarea va a ser pues transcribir el tamaño del modelo,
hay diferentes tamaños según si quieres más velocidad a la hora de hacer la inferencia
o si quieres más precisión en los resultados, yo por lo general trabajo con el modelo Medium
que es el que me da buenos resultados, hay modelos mayores, hay modelos menores, probad
y en este caso pues simplemente donde vamos a colocar el archivo de salida, ejecutamos
y ya está, ya está, no hay que hacer nada más, vale, ya estamos utilizando Whisper,
la primera vez tardará un poco porque tiene que descargar el modelo pero a partir de este
momento podéis utilizar este sistema para transcribir cualquier audio que queráis,
mola, vale, vemos que en este caso ha detectado que el idioma es español, ha hecho la inferencia
automática porque no le hemos dicho que vamos a transcribir del español, lo podéis hacer
si queréis y cuando ya está ejecutada esta celda pues podemos venirnos para acá, vemos
que se ha generado la carpeta Audio Transcription y aquí tenemos las diferentes opciones, podemos
abrir el sound.txt y aquí abrimos el archivo, vemos que pues tenemos toda la canción perfectamente
transcrita que en este caso siendo la Rosalía pues tiene más mérito y en vez de querer
hacer la transcripción, quisierais hacer la traducción, es decir convertir vuestra
voz, vuestro audio al inglés, pues lo único que tenéis que hacer es cambiar aquí la
tarea por Translate y en este caso Whisper trabajará para traducir aquello que ha transcrito.
En este caso si os dais cuenta el comando que hemos utilizado ha sido el de consola
pero a lo mejor queréis utilizar Whisper dentro de vuestro código, entonces también
tenéis la opción de trabajar con la propia librería de Whisper, es simplemente esta
línea de código de aquí, lo importamos, cargamos el modelo que queramos, aquí pues
yo cargaría el modelo Medium que es el que como digo funciona mejor para mi caso y con
el modelo cargado luego aquí llamamos a model.transcribe, vamos a poner aquí song.mp3, le damos a ejecutar
y en cuestión de unos segundos pues ya tendremos de nuevo nuestra transcripción.
Y aquí lo tenemos, la Rosalía, rosa sin tarjeta, se la mando a tu gata, te la tengo
con ruleta, no hizo falta serenata, pues ok.
Igualmente para haceros la vida más fácil he preparado un notebook que podéis utilizar,
está abajo en la cajita de descripción, donde tenéis ya todo el código listo para
empezar a trabajar, simplemente tenéis que entrar, comprobar que está la GPU activada,
le damos a este botón de aquí para instalar pues todo lo necesario, aquí elegimos la
tarea que queremos hacer, pues si es transcribir a cualquier idioma o traducir al inglés
y le damos a ejecutar.
En este caso la celda está preparada para que en el momento en el que empieces a ejecutarla
está grabando ahora mismo tu micrófono, es decir ahora mismo estaríamos generando
un archivo de audio que luego vamos a utilizar para transcribir con Whisper, esto es por
si queréis hacer una transcripción en tiempo real de cualquier clase o cualquier cosa
que necesitéis.
Vamos a darle a parar, le damos a este botón y en un momento tenemos el resultado de lo
que hemos dicho.
Igualmente luego abajo os añado los dos comandos necesarios para poder transcribir o traducir
el audio que vosotros subáis.
Por último también tenéis que saber que si queréis algo más sencillo pues hay páginas
web donde podéis probar este sistema pues subiendo vuestros propios audios o grabando
desde el micrófono.
Y esto sería, 2022 se está quedando la verdad que un año espectacular en cuanto al número
de juguetes neuronales que están llegando a nuestras manos para construir un montón
de herramientas y para poder toquetearlos.
Ahora os toca a vosotros, ¿qué podéis hacer con esto?
Pues podéis construir un montón de cosas súper interesantes, podéis conectar por
ejemplo Whisper con Stable Diffusion para que a viva voz tú le puedas pedir que te
genere un cuadro o podéis por ejemplo coger todas vuestras clases en la universidad o
todas las reuniones de trabajo, transcribirlas, crear un enorme banco de transcripciones y
luego con la API de GPT-3 hacer un chatbot que te permita consultar, hacer preguntas
y respuestas sobre toda esa fuente de información.
Por ejemplo algo que yo quiero hacer es coger pues todos los vídeos de mi canal de YouTube
y transcribirlo, generar subtítulos de buena calidad tanto en español como en inglés
y poder hacer estadísticas y consultas de cuántas veces he dicho por ejemplo la palabra
Machine Learning.
Hay un montón de aplicaciones que podéis empezar a construir, que podéis empezar a
crear combinando todas estas tecnologías.
Tenía un perro ladrando de fondo que me estaba molestando bastante.
Bueno, lo que os decía, que podéis crear un montón de cosas y hay mucho por hacer.
Desde aquí, desde este canal vamos a seguir haciendo experimentos con esta tecnología,
voy a seguir trayendo nuevas herramientas así que si no lo has hecho todavía suscríbete,
dale a la campanita para que te lleguen siempre las notificaciones de que hay vídeo nuevo
y si quieres apoyar todo este contenido ya sabéis que podéis hacerlo a través de Patreon
abajo en la cajita de descripción.
Tenéis un par de vídeos por aquí que son súper interesantes, no sé cuáles son pero
son súper interesantes, echadle un ojo y nos vemos con más inteligencia artificial
chicos, chicas, en el próximo vídeo.