sábado, 30 de noviembre de 2019

Inteligencia Artificial en App Inventor.

Referencia a Inteligencia Artificial

En este articulo veras como crear una sencilla AI (Inteligencia Artificial) en App Inventor. Nos introduciremos de una forma muy básica en los fundamentos de la inteligencia artificial. Verás como haciendo uso de los componentes no visibles TextoAVoz y ReconocimientoDeVoz, tu app es capaz de contestar a tus preguntas. Repasamos un poco de historia de la Inteligencia Artificial y la pondremos en práctica en su forma más básica.

Un poco de historia de la Inteligencia Artificial.

Es a Alan Turing a quien se considera padre de la inteligencia artificial (dando, de hecho, nombre al test que determina la calidad de las IA). En 1936, este visionario diseñó una máquina capaz de implementar cualquier cálculo que hubiera sido formalmente definido, pilar esencial para que un dispositivo pueda adaptarse a distintos escenarios y “razonamientos”.

En 1997, IBM demostró que un sistema informático era capaz de vencer al ajedrez al campeón del mundo Gari Kaspárov. Se llamaba Deep Blue y sirvió para que la industria tecnológica y la sociedad cobrara conciencia de las posibilidades de las IA.

Pero si hay un ejemplo de inteligencia, ese es IBM Watson. En 2011, Watson ganó el popular concurso televisivo Jeopardy! frente a los dos máximos campeones de este programa, en el que se realizan preguntas de conocimiento de todo tipo. Watson tuvo que ser capaz de entender las preguntas, a lo que ayudaron sus 200 millones de páginas de código contenido en su sistema. Realizó jugadas inteligentes y también tuvo que valorar el riesgo cuando apostó una cantidad en la ronda final.

Este último ejemplo lo utilizaremos para nuestro cometido. Crearemos una aplicación en App Inventor que sea capaz de entender nuestro lenguaje y a la vez sea capaz de darnos una respuesta coherente, creando una sencilla Inteligencia Artificial.

Diseñando la aplicación de Inteligencia Artificial

Tu app estará diseñada por una sola pantalla. Esta pantalla contendrá un botón con la imagen de un micrófono, que nos servirá para que cuando sea pulsado podamos hablar al dispositivo. También contendrá una etiqueta de texto donde se mostrará lo que has hablado. Más abajo, tendrás una serie de disposiciones verticales que contendrán un lienzo y un sprite. Este sprite hará de boca para nuestra inteligencia artificial de app inventor.

Introduciremos en nuestra app una serie de componentes no visibles, como el componente de reconocimiento de voz, texto a voz y por último un temporizador.

Pulsa para descargar el archivo AIA.

Programando nuestra Inteligencia Artificial en App Inventor.

Una vez abierta la pantalla de bloques de app inventor, tendremos que hacer un pequeño ajuste en el sprite. Para que se vea bien en distintas pantallas o distintos dispositivos, vamos a indicarle que cuando inicie la pantalla centre la X e Y de nuestro sprite en el centro de nuestra disposición vertical. Para ello vamos a decirle que la coordenada X del sprite la coloque a la mitad del ancho de la disposición vertical, menos la mitad del ancho del sprite. Haremos lo mismo con la Y del sprite. coloca los bloques de la siguiente manera.

Inicia pantalla en app inventor para cuadrar en el centro un Sprite

Necesitamos que nuestra aplicación sea capaz de escuchar lo que le dictamos, y para ello vamos a utilizar nuestro botón y el componente no visible de reconocimiento de voz. Cuando presionemos el botón haremos una llamada al componente reconocimiento de voz para convertir en texto lo escuchado y cuando soltemos el botón este se detendrá. Colocaremos los bloques de la siguiente manera.

Botones de aplicación en AI2 de presionar y soltar.

Una vez obtengamos el texto, lo mostraremos en la etiqueta que situamos debajo del micrófono. Seguido lo que haremos es mirar si dentro de su contenido está la palabra «hola». Si el texto contiene la palabra «hola», el sistema interpretará que es un saludo y llamaremos al componente no visible texto a voz para devolver el saludo.

Después de obtener texto en una aplicación de app inventor 2

Ya podemos interactuar saludando a nuestra inteligencia artificial. Pero vamos a dotarla de más complejidad. Ahora quiero que interprete un saludo que contiene una pregunta, tal como «Hola, ¿cómo estás?» o Hola, ¿que tal?. Para ello haremos lo mismo que en el ejemplo anterior, pero esta vez en la comprobación del bloque if, nos ayudaremos de los bloques lógicos «Y» o «O» con las palabras clave que se pueden encontrar en las frases anteriores.

bloques lógicos "Y" o "O" con las palabras clave que se pueden encontrar en una frase AI2

Vamos a darle una vuelta de tuerca más, y lo que haremos ahora es que a una misma pregunta, pueda contestar de diferente manera. Para ello vamos a crear una variable local a la que llamaremos «Aleatorio», y que inicializamos con un número aleatorio entre 1 y 100, es decir cada vez que obtengamos texto de nuestra voz, la variable contendrá un valor distinto siempre dentro de este rango.

Variable local inicializada con número aleatorio App inventor 2

Una vez definida y inicializada nuestra variable, la utilizaremos para decirle a nuestra app que si el valor de esta es menor de 50 nos dé una contestación. O si por el contrario es mayor de 50, pueda darnos otra diferente. Fijate el abanico de posibilidades que nos abres esta última opción.

Resultado aleatorio en App Inventor 2

Bien con esto podemos generar tantas contestaciones a preguntas como deseemos, solo tenemos que seguir el patrón anterior. Si en el texto de la pregunta formulada, se encuentran ciertas palabras, contestaremos de forma aleatoria.

Animando nuestra IA.

Ahora veremos otro ejemplo. En este al final de cada mensaje hablado de nuestra inteligencia artificial, pondremos nuestro temporizador como cierto, para más adelante animar nuestro sprite. Podemos ver el ejemplo en la siguiente imagen.

Resultado aleatorio en AI2

Antes de continuar vamos a animar a nuestra inteligencia artificial. En los bloques anteriores hicimos que cada vez que hablara la inteligencia artificiial se pusiera como cierto el temporizador, pues bien vamos a utilizar dicho temporizador para animar.

Lo único que tenemos que hacer es comprobar que el temporizador ha llegado al final de la cuenta, si esto es así pondremos el alto del sprite con un número aleatorio entre 1 y 100. Seguido comprobaremos que ha dejado de hablar. En este momento pondremos la activación del temporizador a falso, y el alto del sprite en 25. De esta manera conseguiremos el efecto de una boca hablando. Puedes ver los bloques en la siguiente imagen.

Animación sprite con temporizador en App Inventor.

He creado unas cuantas situaciones más, dando una respuesta a mi propio nombre cuando el programa me lo pida, o preguntando a la inteligencia artificial qué sexo tiene. Como ves puedes generar contestaciones a casi cualquier pregunta.

Respuestas de una IA en app inventor

Más preguntas para tu inteligencia artificial en App Inventor 2.

También podemos hacer uso de otros bloques que no sean de texto para generar una contestación lógica, como son los bloques de reloj. Si añadimos un componente no visible Reloj a nuestro programa, (aprende más sobre utilización de la hora y fecha en App Inventor) y utilizas los bloques del mismo para generar contestaciones, puedes preguntarle cosas como el día de la semana que es hoy, o la hora actual. Puedes ver el siguiente ejemplo.

Respuestas de una IA utilizando bloques que no son de texto.

Con este articulo nos hemos introducido de una manera básica pero interesante al mundo de la inteligencia artificial. Viendo como podemos simular de una manera sencilla una inteligencia en nuestra aplicación.

Si tienes algun comentario que hacerme acerca del articulo, si crees que podemos hablar de algo relacionado con el mundo de App Inventor, no dudes dejarlo en los comentarios. Un saludo y hasta la próxima inventor.

Vector de Microfono creado por alvaro_cabrera – www.freepik.es


No hay comentarios:

Publicar un comentario

Compartir archivos y texto con Sharing

En alguna ocasión, tendrás que crear una aplicación en app inventor en la que quieras mandar fotos y videos a otras aplicaciones instaladas ...