Integración de Funcionalidad de Reproducción en Skills de Alexa

Con Alexa, Amazon opera un servicio de voz basado en la nube para los altavoces inteligentes Amazon Echo, Echo Dot, Echo Show o Echo Spot. Estos dispositivos sirven para el uso de servicios en línea basados en audio y permiten controlar dispositivos conectados a través de WiFi o Bluetooth como parte de la domótica (Smart Home).

El Alexa Language Assistant ofrece ya de fábrica varias funciones básicas. Los usuarios pueden hablar por voz con su altavoz inteligente para reproducir música, ver noticias, recibir informes de tráfico y meteorológicos o proporcionar funciones de calendario. También pueden instalarse otras funciones extra, las llamadas Skills o funcionalidades de Alexa. La Alexa Skills Store ofrece a los usuarios más de 50.000 extensiones de desarrolladores externos, algunas de las cuales pueden activarse gratuitamente.

Si quieres ser creativo, usando el Alexa Skills Kit (ASK) y el AWS Lambda puedes programar tus Skills de Alexa en pocos pasos. Las Skills de Alexa son programas que pueden activarse en línea y que sirven para ampliar la gama de funciones del servicio de habla de Alexa. Técnicamente, una Skill de Alexa consta de una interfaz de usuario (el llamado frontend) y la lógica del programa (el backend). Cualquier dispositivo inteligente que soporte el servicio lingüístico de Alexa, tanto un altavoz inteligente de Amazon Echo como un refrigerador LG debidamente equipado, es capaz de funcionar como frontend de una Skill de Alexa. AWS (Amazon Web Services) es una filial de la empresa online de venta por correo Amazon. Las Skills de Alexa se desarrollan utilizando el Alexa Skills Kit (ASK) y se ponen a disposición de los usuarios a través de la Alexa Skills Store.

diagrama del flujo de interacción de una Skill de Alexa

El Proceso de Creación de una Skill de Alexa

El proceso de desarrollar una Skill de Alexa personalizada hasta la publicación de tu aplicación consta de 7 pasos:

  1. Se crea una nueva Skill de Alexa en la consola de desarrollo de Amazon y se configura el modelo de interacción para la interfaz de voz.
  2. Basándose en este modelo de interacción, se crea una función Lambda AWS que incluye la lógica del programa de tu Skill. Esta se ejecuta en la plataforma de computación en la nube AWS de Amazon.
  3. Se conecta la función Lambda de AWS a la consola de desarrollo de Amazon para que tu Skill esté disponible para los dispositivos de Amazon.
  4. A esto le sigue una fase de prueba.
  5. La validación y publicación de tu Skill.

Para que los usuarios de Alexa Language Service puedan programar sus propias Skills de Alexa, Amazon proporciona el Alexa Skills Kit en la Alexa Developer Console como un entorno de desarrollo con una interfaz web gráfica. Es necesario iniciar sesión en Amazon Developer y la página de inicio de la consola de desarrollo de Alexa mostrará todas las Skills de Alexa que hayas creado.

Al crear una Skill, se debe nombrar, seleccionar el idioma deseado y elegir uno de los cuatro tipos de modelo para el modelo de interacción:

  • Modelo personalizado (modelo de interacción definido por el usuario)
  • Modelo Flash Briefing (modelo de interacción predefinido para feeds de noticias)
  • Modelo Smart Home (modelo de interacción predefinido para aplicaciones Smart Home)
  • Modelo de vídeo (modelo de interacción predefinido para aplicaciones de vídeo)

Generalmente, se recomienda empezar con el Custom Skill Model para crear modelos de interacción personalizados.

Definición del Modelo de Interacción y Lógica de Programa

Para desarrollar tu Skill de Alexa, dispones de una interfaz gráfica de usuario que reduce al mínimo la programación manual en el código. Se comienza en la sección "Build" para diseñar un modelo de interacción personalizado con la ayuda del Alexa Skills Kit.

Primero se define el nombre de invocación de la Skill de Alexa. Este es la expresión que utilizarán los usuarios para comunicarse con tu Skill y no debe contener frases de inicio de Alexa Skill como “launch”, “ask”, “tell”, “load”, “open” o “play”, ni palabras de aviso como “Alexa”, “Amazon”, “Echo” o “Computer”.

Con los Intents, se definen las acciones que realiza tu Skill de Alexa tan pronto como un usuario utiliza un patrón de lenguaje específico. De este modo, se determina lo que un usuario de tu Skill puede decir, cuál es el propósito de su manifestación y cómo reacciona tu Skill ante ella. Cada Skill personalizada ya contiene cinco propósitos (intents) preestablecidos que deben implementarse más tarde. Se elige cualquier nombre para tu intención y se definen las posibles formas con las que los usuarios podrían expresar su intención.

El asistente de voz Alexa se basa en un algoritmo de aprendizaje automático que amplía de forma independiente las frases de ejemplo que has definido. Luego, se debe seleccionar el endpoint del servicio web, activando la casilla de verificación de AWS Lambda ARN ("Amazon Resource Name"). Antes de poder enlazar con ARN a una función Lambda que contiene la lógica del programa de tu Skill, primero debes crearla en la consola AWS. Las Skills de Alexa se pueden ampliar con varias API (interfaces de programación) que te ofrecen la posibilidad de proporcionar contenidos multimedia o de integrar dispositivos externos.

esquema de los intents de una Skill de Alexa

Configuración de la Función Lambda

El servicio de procesamiento de datos AWS Lambda forma parte de Amazon Web Services. No se incurrirá en ningún gasto al registrar tu cuenta AWS, ya que Amazon proporciona ciertos servicios a los usuarios recién registrados de forma gratuita durante los primeros 12 meses. Es importante asegurarse de que tu consola esté configurada en la región donde quieres ofrecer tu Skill.

En la consola de administración AWS, se utiliza la función de búsqueda "Find services" e se introduce "Lambda". En la página principal del servicio AWS Lambda, la consola muestra un resumen de las funciones Lambda que has creado. En el siguiente paso, se selecciona un nombre y un rol de ejecución Lambda, el cual define las autorizaciones de la función. Por ejemplo, la función puede llamarse “FlourPotSandwiches” y se crea con el rol “lambda_basic_execution”, que garantiza que la función pueda escribir logs y realizar las peticiones necesarias.

En la parte inferior de la máscara de configuración se encuentra el código de función Lambda de la plantilla. La ventana "Código de función Lambda" muestra el código de programa de la plantilla seleccionada. En la parte superior del panel de configuración se encuentra el diseñador de funciones y un editor con el que podrás intervenir manualmente en el código de función.

Finalmente, se cambia a la consola de desarrollo de Amazon y se abre el modelo de interacción de tu Skill en el Editor JSON (JavaScript Object Notation), un formato de intercambio de datos compacto y basado en texto. Este documento JSON contiene los propósitos (intents) de la Skill Alexa, así como los ejemplos de declaraciones asignadas a las intenciones. La forma en que nuestra Skill reacciona a las señales del usuario se define en el código de función de nuestra función Lambda. La plantilla Lambda incluye todo el código de programa que tu Skill necesita para responder a las preguntas de los usuarios.

Coding the Amazon Echo (Alexa) - How to create custom Alexa skills from scratch with AWS Lambda

Cómo Agregar un Reproductor de Música a tu Skill de Alexa con Alexa .NET

Alexa .NET es la librería para C# que te permite crear Skills para Alexa de una manera súper fácil. Si ya sabes cómo construir tu Skill, aquí te explicamos cómo agregar un reproductor de música a tu Skill.

Lo primero es asegurarte de que el audio player esté habilitado en tu Skill. Luego, en nuestro código, debemos verificar el intent de nuestro Skill y también el intent amazon.resumeintent, ya que si el usuario detiene o pausa y luego continúa, queremos seguir reproduciendo la canción. En el ejemplo, el intent principal para la música se llama music.

configuración de Skill de Alexa con AudioPlayer habilitado

Pruebas y Publicación de la Skill

Una vez que se han guardado los cambios en la lógica de la función Lambda, la Skill de Alexa está teóricamente lista para la primera prueba. Para que los usuarios puedan dirigirse a nuestra Skill utilizando un altavoz inteligente, se requiere un enlace en los dos sentidos. Para ello, se necesita el ID de cualificación del modelo de interacción creado en la consola de Alexa Developer. Copia la cadena de caracteres que aparece en “Your Skill ID” y, a continuación, introdúcelo como el ID de cualificación de tu función Lambda. Una Skill definida con ayuda del Alexa Skills Kit solo puede actuar como disparador si puede verificarse a sí misma con su Skill ID.

En la sección “Test”, la consola de desarrollo de Alexa ofrece un entorno de pruebas completo para Skills, incluyendo un simulador de Alexa con salida de voz. De forma predeterminada, el entorno de pruebas está desactivado para las Skills de Alexa recién creadas. Se puede proveer al simulador de Alexa de acceso a un micrófono o introducir comandos de voz utilizando el teclado. La Skill puede iniciarse con su nombre de invocación.

tags: #agregar #reproduccion #en #sdk #alexa