Alexa. Desarrollo de aplicaciones IoT para Arduino y ESP8266. Tomás Domínguez Mínguez

Читать онлайн.
Название Alexa. Desarrollo de aplicaciones IoT para Arduino y ESP8266
Автор произведения Tomás Domínguez Mínguez
Жанр Математика
Серия
Издательство Математика
Год выпуска 0
isbn 9788426732910



Скачать книгу

ajustarse necesariamente a dicho modelo de interacción.

      • Flash briefing. Proporciona al usuario contenido breve, como los titulares de las noticias o el pronóstico del tiempo. Al igual que en las habilidades de casa inteligente, utilizará un modelo preconstruido con las expresiones que utilizaría el usuario para pedir el briefing flash o solicitar las noticias (p. ej., “dame las noticias de hoy”), además del formato del contenido en el que Alexa le dará la información solicitada. El desarrollador de este tipo de habilidades se encargaría básicamente de definir las fuentes de las que se tendría que obtener dicho contenido.

      • Vídeo. Ofrece contenido de vídeo, como programas de televisión o películas. También está basado en un modelo de interacción preconstruido, con las solicitudes que maneja la habilidad (directivas del dispositivo) y las expresiones con las que el usuario puede invocarlas. En este caso, el desarrollador de la habilidad programaría el comportamiento de cada una de estas directivas (p. ej., la de buscar o reproducir contenido de vídeo), o cómo se tendrían que mostrar los resultados.

      • Música. Habilita la reproducción de canciones, listas de reproducción o emisoras de radio, a través de un dispositivo habilitado para Alexa. En este caso, quien programa la habilidad debe definir el modelo de interacción, convirtiendo las expresiones del usuario (como, por ejemplo: “Alexa, pon música”) en solicitudes que la habilidad gestionaría para enviar el contenido de audio solicitado al dispositivo.

      • Listas. Como indica su nombre, este tipo de habilidad le permitirá la gestión de listas, como, por ejemplo, la de la compra. Con ellas podrá agregar, borrar o modificar elementos a una lista de cualquier tipo.

Illustration

      El modelo de interacción establece la interacción con la habilidad a través de un diálogo. Sería análogo a la interfaz de una aplicación tradicional. La diferencia es que ahora las aplicaciones son habilidades y las interfaces gráficas son de voz. Por ese motivo, en vez de ventanas, botones o menús, lo que manejará a partir de ahora serán expresiones (frases).

      De todos los tipos de habilidad descritos, trabajará únicamente con las personalizadas, ya que, al no tener que ceñirse a modelos de iteración preconstruidos, son los que dan mayor libertad a la hora de definir la forma en la que deberá transcurrir la conversación con el asistente. En realidad, este tipo de habilidades engloba a todas las demás.

      Un modelo de interacción establece la estructura de la conversación que Alexa mantendrá con el usuario en el contexto de una habilidad. Se compone de los siguientes elementos principales:

      • Intenciones (intents). Son las acciones que el usuario puede llegar a solicitar, cada una de las cuales corresponde (como indica el nombre de este componente) a una intención específica. Por ejemplo, una habilidad que controlara la luz de una habitación podría tener tres intenciones: las que atienden las órdenes para encenderla o apagarla, y una tercera que permita preguntar por el estado en el que se encuentra (encendida o apagada).

      • Expresiones de muestra (Sample Utterances). Son las palabras o frases utilizadas por los usuarios para invocar una intención. Estas expresiones deben abarcar todas las formas posibles de solicitar la ejecución de una determinada acción. Cuantas más haya y más variadas sean, mayor facilidad tendrá Alexa para saber a qué intención corresponden. Por ejemplo, para encender la televisión, se podría decir: “pon la televisión” o “enciende la tele”. Ambas expresiones deberían invocar la misma intención, es decir, realizar la misma acción: encender la televisión.

      Es muy difícil introducir todas las variaciones posibles de expresiones empleadas para solicitar las acciones. Por eso, Alexa dispone de algoritmos de inteligencia artificial que le permiten generalizar dichas frases. Aplicando estos algoritmos, podrá saber si lo que ha dicho el usuario “encaja” con alguna de las expresiones de ejemplo, aunque no coincida exactamente con ella. En cualquier caso, cuantas más declaraciones de ejemplo tenga una intención, más probabilidades habrá de que se invoque la más adecuada.

      • Tipos de slots. Las expresiones de los usuarios representan texto libre difícil de procesar por un programa informático, que es el que realmente tiene que realizar las acciones. Por ese motivo, es necesario extraer la información relevante de dichas expresiones (lo que vulgarmente se conoce separar la paja del grano), función que realizan los slots. Estos componentes pueden verse como variables, que recogen la información proporcionada como entrada al programa encargado de realizar la acción solicitada.

      Al igual que cada variable es de un determinado tipo, los slots también pertenecen a un tipo de slot (slot type). Por ejemplo, si un usuario dijera: “Alexa, enciende la luz de la sala”, la palabra “sala” podría ser el valor de un tipo de slot que sirviera para identificar la habitación en la que está situada la luz. Ese valor sería el utilizado por el programa encargado de atender la petición para saber a qué dispositivo (en este caso, el situado en la sala) tiene que dirigir la orden.

      • Modelo de diálogo. Este último componente, que es opcional, identifica la conversación que sería necesario mantener con el usuario para recopilar toda la información requerida para invocar una intención. Si este dijera, por ejemplo: “Enciende la luz” y hubiera varias luces en la casa, para poder llevar a cabo esta orden habría que preguntarle en qué habitación se encuentra. Este diálogo puede ser delegado en Alexa, que se encargaría de hacer las preguntas y recoger la información necesaria de las respuestas dadas por el usuario, simplificando el código de la habilidad. Siguiendo con el ejemplo de la luz, Alexa preguntaría: “¿En qué habitación está la luz que desea encender?”. Si la respuesta fuera: “La de la cocina”, recogería el valor del slot que contiene la habitación (en este caso “cocina”) de la misma forma que si el usuario hubiera dicho en un primer momento: “Enciende la luz de la cocina”.

      En un próximo capítulo estudiará con más detalle todos estos conceptos mientras practica con ellos desarrollando una habilidad que le permitirá “hablar” con una máquina de café para que se lo prepare a su gusto.

      Para invocar una habilidad personalizada, deberá llamarla por su nombre (invocation name). Por ejemplo, si este fuera “previsión meteorológica”, cuando dijera: “Alexa, previsión meteorológica” ya podría empezar a plantear cuestiones sobre el tiempo.

      Aunque para iniciar una habilidad solo se requiere decir su nombre de invocación, se pueden añadir otras palabras que hagan la expresión más natural. Dependiendo del tipo de habilidad invocada, se podría utilizar: “pide”, “abre, “empieza”, “empiece”, “lanza”, “juegue”, “juega el juego”, “pon” o “inicia”. Por lo tanto, la habilidad del ejemplo anterior también podría invocarse diciendo: “Alexa, abre previsión meteorológica”. Dicha expresión se muestra gráficamente en la siguiente imagen.

Illustration

      Para empezar a hablar con el asistente, primero se ha usado la palabra “Alexa”, a la que se conoce como palabra de activación porque es la que despierta el asistente, poniéndole a la escucha de lo que se diga a continuación. Luego viene la palabra de lanzamiento (opcional), que indica a Alexa que lo que va a decir a continuación es el nombre de la habilidad que deberá invocar. Por último, aparece el nombre de invocación de la habilidad, en este caso “previsión meteorológica”.

Illustration

      Como pronto descubrirá, cuando utilice el simulador o la aplicación de Alexa en un teléfono móvil, no será necesario que diga la palabra de activación (“Alexa”).