Controlar una placa programable usando la voz mediante un sistema de Inteligencia Artificial

  • Nivel:
    • Bachillerato
    • E.S.O.
    • Primaria
  • Área del pensamiento computacional:
    • Inteligencia Artificial
    • Programación
    • Robótica

¿Qué debo saber para empezar a trabajar con este recurso?

Niveles a los que va dirigido

Este recurso usa herramientas visuales que se pueden utilizar a partir de 8-10 años, ya que tienen un suelo bajo (que permite comenzar a realizar proyectos sencillos de forma asequible) pero también un techo alto (permitiendo que estudiantes más avanzados puedan crear proyectos tan complejos como deseen). El alumnado más joven podría desarrollar la actividad de un modo más guiado, mientras que estudiantes más mayores podrían trabajar de forma más autónoma.

Asignatura/s

Si bien se puede integrar sin problema en cualquier área o asignatura, puede ser especialmente útil para trabajar temas relacionados con el impacto social de la informática y la tecnología, ética, valores y filosofía.

¿Se requieren conocimientos previos?¿cuáles son?

Se puede realizar sin apenas conocimientos previos, tan solo una mínima competencia digital, pero se aprovecharía al máximo si se cuenta con conocimientos básicos de programación (especialmente si se ha programado previamente con Scratch), y se tienen unas nociones básicas sobre la inteligencia artificial y las placas programables (en especial, micro:bit). 

¿Qué objetivos se persigue con el recurso?

  • Conocer el funcionamiento de los asistentes virtuales que se basan en reconocimiento del habla con los que el alumnado interacciona en muchos ámbitos de su vida. 
  • Aprender a programar diferentes tipos de proyectos que hacen uso de funcionalidades de reconocimiento del habla para controlar dispositivos físicos.
  • Fomentar reflexiones críticas sobre las posibilidades, limitaciones y peligros de este tipo de sistemas de reconocimiento del habla, en particular, pero también de los sistemas de inteligencia artificial de forma más general.

¿En qué consiste el recurso?

El recurso consiste en la puesta en marcha de un sistema que permita controlar una placa micro:bit utilizando órdenes habladas. Para ello se construirá un modelo de aprendizaje automático de sonido, haciendo uso de Teachable Machine, que será capaz de reconocer diferentes instrucciones habladas. Y a continuación se programará un proyecto con Strech3, un fork de Scratch que permite incorporar modelos de aprendizaje automático para controlar nuestras placas micro:bit, lo que ofrece múltiples posibilidades creativas para experimentar con estas tecnologías.

Y ahora que sé para qué sirve, ¿cómo lo pongo en práctica?

Para poner en práctica el recurso es recomendable tener cierta soltura con la creación de modelos en Teachable Machine, para lo que este recurso de CodeINTEF te puede venir muy bien: http://code.intef.es/teachablemachinev2/ 

Y también es necesario instalar, tanto en el ordenador como en la propia placa micro:bit, el software que conectará nuestro proyecto Scratch con la placa. Tienes toda la información en https://scratch.mit.edu/microbit 

Una vez tengas esto listo, ¡ya podemos comenzar!

¿Cómo llevamos esta actividad al aula?

Paso 1. Construimos un modelo de aprendizaje automático que reconoce instrucciones habladas.

Para construir nuestro modelo de aprendizaje automático usaremos Teachable Machine: https://teachablemachine.withgoogle.com/train

En concreto vamos a construir un modelo que sea capaz de discriminar dos órdenes, “enciende” y “apaga”, cuando las pronunciemos con nuestra voz, distinguiéndolas de otras palabras y frases.

Para ello en la pantalla principal seleccionaremos “Proyecto de audio”. Aunque la herramienta permite subir archivos grabados previamente, quizás lo más fácil es crear nuestro modelo grabando directamente los audios en la propia web de Teachable Machine.

Así, en primer lugar vamos a crear tres “Clases” o categorías. La primera se llamará Ruido de fondo, la segunda Enciende y la tercera Apaga, tal como se muestra en la figura:

A continuación tenemos que grabar ejemplos de cada una de las tres clases. Podemos comenzar por Ruido de fondo, para lo que nos grabaremos mientras decimos otras palabras que no sean ni “apaga” ni “enciende”, y también podemos grabar sin pronunciar ninguna palabra concreta, de forma que se graben ruidos de fondo.

Para ello pulsamos en el botón “Micrófono” y a continuación en “Grabar 20 segundos”. Tras pasar los 20 segundos se genera una grabación, que como se muestra en la imagen, aparece dividida en 20 partes de un segundo. 

Pulsando en el botón “Extraer muestra” se generan 20 ejemplos de 1 segundo. Y podemos escuchar cada uno de estos ejemplos poniendo el ratón encima y pulsando en el botón “Play” (que aparece con un triángulo blanco).

20 ejemplos son lo mínimo que hay que tener en esta clase. Pero cuantos más ejemplos tengamos, mejor funcionará nuestro modelo. Así que podemos hacer varias grabaciones como esta.

Cuando tengamos suficientes ejemplos, 60 puede ser una buena cifra, podemos pasar a grabar ejemplos de las otras dos clases siguiendo el mismo procedimiento. Así, para la clase “Enciende” nos grabaremos pronunciando la palabra “enciende” usando diferentes entonaciones, velocidades, distinto volumen, incluso distinta voz, de forma que tengamos muchos ejemplos diferentes de esta palabra. Y lo mismo para la clase “Apaga”, para la que nos grabaremos pronunciando de diferentes maneras la palabra “apaga”.

Para las clases “Enciende” y “Apaga” puede ser recomendable modificar la duración de la grabación, y dejarla en 1 segundo, tal como se muestra en la imagen:

Para estas clases, 8 son los ejemplos mínimos que hay que tener. Pero, de nuevo, cuantos más ejemplos tengamos, mejor funcionará nuestro modelo. 

Cuando tengamos suficientes ejemplos de las tres clases, se pulsa el botón “Preparar modelo”, que está en el centro de la pantalla. 

Y una vez finalizada la preparación, nuestro modelo ya está listo para que lo probemos. Así, haremos pruebas pronunciando la palabra “enciende” y “apaga”,así como otras palabras, para ver si nuestro modelo las clasifica en la clase correcta.

Si el modelo se comporta bien, acertando en la mayoría de las ocasiones y mostrando una confianza alta (lo que se indica en las barras horizontales de color junto a cada clase), podemos pasar al siguiente paso. Si nuestro modelo no es muy certero, eso significa que tenemos que preparar más ejemplos de las tres clases y volver a entrenarlo.

Cuando consideremos que nuestro modelo está listo, pulsaremos en el botón “Exportar modelo” y a continuación en “Subir mi modelo”. Una vez subido se genera una url que tenemos que copiar para utilizarla en el siguiente paso.

Paso 2. Programamos nuestro proyecto Scratch que hace uso del modelo y controla nuestra placa.

En primer lugar vamos a ir a la web de Strech3 (https://stretch3.github.io/), que es una modificación de Scratch que incorpora muchas extensiones extra. Y vamos a cargar las extensiones TM2Scratch, que permite interactuar con modelos de aprendizaje automático creados en Teachable Machine, y micro:bit, que nos permite controlar nuestras placas.

Al cargar la extensión micro:bit nos aparecerá una ventana en la que podemos seleccionar la placa micro:bit con la que queremos conectar. Es imprescindible que se haya cargado el software controlador tanto en el ordenador como en la placa micro:bit y que esta se encuentre encendida, ya sea conectada por USB o a la batería.

Una vez cargadas las extensiones, lo primero que hará nuestro proyecto será lo siguiente:

  1. Mostrar un punto en el centro de la pantalla de leds de la placa micro:bit, lo que nos permitirá saber que la conexión funciona correctamente.
  2. Hacer uso de nuestro modelo de sonido creado con Teachable Machine previamente, para lo que incluiremos la url de nuestro modelo.
  3. Establecer un margen de confianza de 0.7, lo que hará que solo se tengan en cuenta órdenes para las que nuestro modelo esté bastante seguro de que han sido clasificadas correctamente, evitando falsos positivos.

Y ahora preparamos otro programa que se va a encargar de lo siguiente:

  • Cuando reciba una orden que ha sido clasificada como “Enciende”, encenderá todos los leds de la pantalla de nuestra micro:bit.
  • Cuando reciba una orden que ha sido clasificada como “Apaga”, apagará los leds de la placa.

¡Y ya tendríamos todo listo!

A partir de este momento, cada vez que digamos la palabra “enciende”, nuestra placa micro:bit encenderá todos los leds de su pantalla. Y cuando digamos la palabra “apaga”, los apagará. Puedes ver un ejemplo en vivo en este vídeo (aunque en este caso usan las órdenes “luz” y “apaga”): https://twitter.com/J_MorenoL/status/1360561354055237636 

Paso 3. Reflexionamos sobre esta tecnología.

Como hemos mencionado a lo largo del recurso, la tecnología que se usa para el reconocimiento del habla se llama aprendizaje automático. Pero, ¿qué significa exactamente “aprendizaje automático” y cómo “aprende” una máquina?

Los modelos de aprendizaje automático están entrenados con grandes cantidades de datos históricos en los que el modelo busca patrones para poder predecir respuestas cuando encuentre nuevos datos que no estaban en el conjunto de entrenamiento. Pero este enfoque tiene algunas limitaciones, porque cuanto menos variados sean los datos que se usan en el entrenamiento, más sesgo e inexactitud mostrará la tecnología cuando la usemos en el futuro.

Así, si construimos un modelo usando solamente sonidos grabados con personas que tienen la voz muy aguda o un determinado acento, es probable que el modelo tenga problemas para reconocer el habla de personas con otras entonaciones o acentos. 

Por tanto, este tipo de tecnología es claramente susceptible a problemas de “sesgo algorítmico”. Es decir, que por diferentes motivos un sistema construido con esta tecnología podría entender las palabras de algunas personas con mayor precisión que las de otras, incurriendo incluso en posibles discriminaciones.

Para profundizar en esta cuestión se puede visualizar el vídeo “Sesgos en Inteligencia Artificial” https://www.youtube.com/watch?v=oevsEYp6t6g. Y, para estudiantes más mayores, puede también leerse el artículo “¿Es posible acabar con los sesgos de los algoritmos?” https://users.dcc.uchile.cl/~rbaeza/bias/sesgos-algoritmos.html 

Tras ello se puede comenzar un debate en el aula para que el alumnado reflexione de manera crítica sobre el impacto que este tipo de sistemas de aprendizaje automático que estamos ya usando en nuestras vidas, cómo nos pueden afectar los sesgos que presentan y si debería regularse su uso en según qué circunstancias. 

¿Qué habilidades de los alumnos se desarrollan que no se pueden obtener de manera más tradicional?

El alumnado va a comprender cómo funcionan las tecnologías de aprendizaje automático que permiten a los ordenadores, entre otras cosas, entender el habla de las personas. 

Al programar proyectos prácticos con esta tecnología, y además controlando dispositivos del mundo físico, el alumnado tendrá experiencias personales que le ayudarán a entender las posibilidades del aprendizaje automático, pero también sus límites, problemas y riesgos.

¿Qué ventaja obtengo de utilizar este recurso en el aula?

Desarrollar este tipo de proyectos prácticos en el aula ofrece la oportunidad de generar conversaciones más profundas sobre la ética de la inteligencia artificial, de manera que el alumnado sea consciente de cómo y hasta qué punto estos sistemas pueden afectar a nuestro día a día en muchos aspectos.

¿Qué materiales necesito para ponerlo en práctica en el aula?

Un dispositivo compatible con el software Scratch Link (https://scratch.mit.edu/microbit), un micrófono, una conexión a internet y una placa micro:bit.

¿Cómo evalúo las competencias adquiridas por mis alumnos con este recurso?

Al tratarse de cuestiones tan novedosas no existen demasiadas herramientas validadas para la evaluación de conocimientos de inteligencia artificial. En la mayoría de experiencias documentadas se han usado diferentes tipos de cuestionarios. Uno de estos cuestionarios que sí ha sido validado fue propuesto por un grupo de investigación español. El cuestionario está disponible en la web en inglés, y puede ser un buen punto de partida para adaptarlo a las necesidades concretas de cada docente y a las características del grupo de estudiantes con el que se esté trabajando.

Cuestionario disponible en: https://github.com/kgblll/kgblll-ReplicationPackage-2021-SIGCSE/blob/master/AI-tests/pre-test.txt 

Enlaces de interés:

Aprendemos a enseñar a un ordenador con Teachable Machine V2
http://code.intef.es/teachablemachinev2/ 

La placa microbit

http://code.intef.es/la-placa-microbit/

Aplicaciones didácticas de V2, la nueva versión de micro:bit
http://code.intef.es/aplicaciones-didacticas-de-v2-la-nueva-version-de-microbit/ 

Estudiantes de 10 a 16 años aprenden inteligencia artificial en red https://intef.es/Noticias/estudiantes-de-10-a-16-anos-aprenden-inteligencia-artificial-en-red-una-investigacion-desarrollada-en-espana-durante-el-confinamiento/ 

Iniciativas para evitar que la IA continúe discriminando a las mujeres https://programamos.es/iniciativas-evitar-ia-continue-discriminando-mujeres/ 

Desafío: trata de lograr que tu sistema de IA sea más justo que un juez https://programamos.es/desafio-trata-de-lograr-que-tu-sistema-de-ia-sea-mas-justo-que-un-juez/