Por ahora, la web puede utilizar un par de backends diferentes dependiendo del navegador y el sistema operativo. La forma más eficiente sería utilizar el backend WebGPU, pero eso requiere la API WebGPU que solo está disponible en Chrome Canary detrás de la bandera. Así que en mi ejemplo, estoy utilizando WebGL, que es el backend más eficiente que está disponible en la mayoría de los navegadores en este momento.
Ahora, probablemente todos hayamos visto ejemplos básicos de reconocimiento de imágenes, como en este caso la detección de puntos de referencia faciales, donde podemos dar una imagen como entrada y luego recibir la posición de los puntos clave en la cara. Y las imágenes funcionan bastante bien con el aprendizaje automático porque al final, los modelos de aprendizaje automático esperan una entrada numérica y devuelven una salida, y las imágenes no son más que los valores numéricos RGB en un rectángulo 2D.
Ahora, en mi caso, quiero reconocer ciertas palabras, y bueno, las palabras no son imágenes, ¿verdad? Excepto cuando lo son. Así que al final, cada fragmento de audio se puede convertir en un espectrograma, y imaginemos que tenemos 100 grabaciones de mí diciendo las palabras a Sandler. Ahora tenemos 100 imágenes de este clip de dos segundos que ahora podemos comparar con el espectrograma de mi charla. Ahora, por supuesto, es difícil comparar un espectrograma de toda la charla que crece con el tiempo con mi clip de dos segundos, pero podemos dividir la pista completa en partes de dos segundos y comparar esos dos segundos con nuestro modelo. El problema aquí es que perderemos muchas palabras, porque no podemos estar seguros de que la división realmente corte una palabra completa. La solución aquí sería agregar una superposición. En este caso, tenemos una superposición de 0.5, lo que significa que tenemos más imágenes por segundo para analizar. Cuanto mayor sea la superposición, más imágenes habrá para analizar y más precisa será la detección. En mi ejemplo, incluso necesité una superposición de 0.95 para obtener un resultado significativo.
Ahora, similar a la detección de puntos de referencia faciales, TensorFlow también ofrece detección de comandos de voz, y al igual que antes, podemos importarlo, podemos crear un reconocedor y podemos comenzar a escuchar. El modelo predeterminado busca un par de palabras clave predefinidas, pero por supuesto, mis palabras en suizo alemán no están en esa lista, así que necesito entrenar mi propio modelo. Con Teachable Machine, Google publicó una aplicación web que te permite entrenar tu propio modelo de imagen o audio basado en tus propios datos de entrada. En la derecha puedes ver mis datos de entrenamiento, donde tengo alrededor de una hora de mí hablando como la clase de fondo, y luego tenemos 50 y 70 ejemplos de las dos palabras clave que quiero detectar. Y con Teachable Machine, ahora puedo entrenar los datos en el navegador y simplemente genera el modelo para mí. Ahora, todo lo que necesito hacer es pasar el modelo creado y los metadatos a la función Create y ahora usará el nuevo modelo para detectar mi entrada personalizada. Mis diapositivas se están ejecutando en el navegador y ahora puedo activar el oyente. Eso puede llevar algo de tiempo. Ahora, cada vez que digo palabras como MandEffect, activará el zumbador. Y en realidad funcionó bastante bien en mi última charla en suizo alemán. Así que realmente espero haberlos inspirado con esta breve visión del aprendizaje automático en el navegador para que podamos usar modelos, entrenar nuevos modelos, todo directamente en el dispositivo en el navegador. Para obtener más y un conocimiento más profundo, también puedo recomendar el curso gratuito de Jason Maes de Google Machine Learning para desarrolladores web. Y con esto, me gustaría agradecerles por su interés y les deseo un buen resto de la conferencia. ¡Adiós!
Comments