Crear Skills de Alexa para reproducción de medios

Alexa, el servicio de voz basado en la nube de Amazon, es el motor de los altavoces inteligentes Amazon Echo, Echo Dot, Echo Show o Echo Spot. Estos dispositivos permiten a los usuarios interactuar con servicios en línea y controlar aparatos conectados a través de WiFi o Bluetooth, formando parte de la domótica (Smart Home). Alexa ofrece funciones básicas como reproducir música, consultar noticias, informes de tráfico y meteorológicos, y funciones de calendario.

Además de estas funciones predeterminadas, los usuarios pueden instalar "Skills" o funcionalidades adicionales. La Alexa Skills Store cuenta con más de 50.000 extensiones desarrolladas por terceros, muchas de las cuales son gratuitas. Para aquellos que deseen ser más creativos, el Alexa Skills Kit y AWS Lambda permiten programar sus propias Skills en pocos pasos.

¿Qué son las Skills de Alexa?

Las Skills de Alexa son programas activables en línea que amplían la gama de funciones del servicio de voz de Alexa. Técnicamente, una Skill de Alexa se compone de una interfaz de usuario (el frontend) y la lógica del programa (el backend). Cualquier dispositivo inteligente compatible con el servicio lingüístico de Alexa, ya sea un altavoz Amazon Echo o un refrigerador LG equipado, puede funcionar como frontend de una Skill de Alexa.

Las Alexa Skills son funciones externas que complementan el asistente virtual de Amazon. Son extensiones, como las de Google Chrome o las de otras aplicaciones en dispositivos inteligentes. Mientras que un Amazon Echo es una herramienta excepcional por sí mismo, las Skills multiplican sus beneficios y mejoran la experiencia del usuario. La mayoría de estas Skills son completamente gratuitas.

Amazon Blueprints: Creación de Skills sin programación

Crea tus Propias SKILLS de ALEXA con BLUEPRINTS 😱🔥👍

Blueprints de Skills de Alexa es una plataforma web diseñada para facilitar la creación de Skills sin necesidad de conocimientos de programación o técnicos. Utiliza "planos" o plantillas predefinidas que actúan como guías, permitiendo a los usuarios rellenar campos con su propio contenido para crear una Skill personalizada.

Estas plantillas están diseñadas para que la creación de una Skill sea lo más sencilla posible, requiriendo una configuración mínima. Sin embargo, no están pensadas para Skills complejas, sino para soluciones básicas que pueden ser útiles en el día a día. Las plantillas de Blueprints están divididas en cuatro categorías principales:

Categorías y tipos de Skills en Blueprints

  • Casa: Destinado a personalizar acciones habituales en el hogar.
    • Preguntas y respuestas personalizadas: Permite configurar preguntas para que Alexa responda lo que el usuario indique.
    • Invitados en casa: Crea una guía personalizada para visitas.
    • Cuántos días: Sirve como cuenta atrás para eventos especiales.
    • A quién toca: Skill para sorteos entre amigos, convivientes o familiares.
    • Tareas pendientes: Crea listas de miembros del hogar y tareas semanales.
  • Diversión y juegos: Orientado al entretenimiento.
    • Inspiración: Ofrece citas aleatorias.
    • Bromas: Permite crear una lista de bromas o chistes.
    • Piropos: Alexa dice frases de una lista de forma aleatoria.
    • Decisiones: Crea listas para que Alexa tome decisiones (ej. películas, platos para cocinar).
  • Comunidades y organizaciones: Permite crear feeds de noticias o publicar conferencias.
    • Resumen de noticias: Permite crear un feed de noticias que el usuario actualiza manualmente.
    • Universidad: Permite subir ponencias o conferencias con URL de audio o transmisión de radio.
  • Aprendizaje y conocimiento: Un método divertido para el aprendizaje.
    • Fichas para estudiar: Crea cuestionarios para que Alexa los realice.

Proceso de creación de una Skill con Blueprints

  1. Acceso a la plataforma: Lo primero es entrar en la página de Blueprints de Amazon, cuya URL es blueprints.amazon.es.
  2. Selección de la plantilla: En el índice de planos de Skills, se elige el modelo deseado para la creación. Al seleccionar una plantilla, se accede a una página de descripción con ejemplos e instrucciones para rellenarla.
  3. Relleno del contenido: A continuación, se procede a rellenar el contenido de la Skill, lo cual varía según la plantilla. Siempre aparece un texto de ejemplo sobre el que se debe escribir el propio contenido. Al final de la plantilla, hay un botón para añadir más elementos, permitiendo ampliar el diseño.
  4. Actualización de la cuenta de Amazon: La primera vez que se crea una Skill, Amazon actualiza la cuenta del usuario para añadirla a su portal de desarrolladores, otorgando control sobre las Skills creadas. Solo es necesario pulsar el botón "Actualizar cuenta".
  5. Creación y vinculación: El sistema tarda unos minutos en crear la Skill y dirige al usuario a la página de control. Una vez creada, la Skill se vincula automáticamente al asistente y puede utilizarse en los dispositivos con Alexa simplemente diciendo el comando configurado.

Gestión y compartición de Skills

En la página de Blueprints, hay una sección dedicada a "tus skills", donde se lista todas las Skills creadas, sus nombres y características. Es importante saber que no todas las Skills pueden compartirse o publicarse; por ejemplo, las de preguntas personalizadas son solo para uso individual.

Para publicar o compartir una Skill compatible, se debe acceder a su ficha. Debajo de las opciones de editar y eliminar, aparecerán las opciones de compartir y publicar. Al elegir compartir, se solicita especificar si el contenido es apto para menores. Tras esto, se selecciona cómo compartir la Skill. Una vez compartida, en la ficha de la Skill aparecerá "Compartida" como indicativo de visibilidad.

Amazon también ofrece la posibilidad de publicar la Skill, aunque requiere la validación de la cuenta por parte de la empresa. Este proceso se explica en varios pasos y se recomienda solo para Skills completas y bien desarrolladas, con un nombre y comando específicos, y en las que se haya invertido tiempo para optimizarla.

Desarrollo de Skills de Alexa con Alexa Skills Kit (ASK) y AWS Lambda

Para usuarios con conocimientos de programación, Amazon proporciona el Alexa Skills Kit (ASK) en la Alexa Developer Console. Este entorno de desarrollo con una interfaz web gráfica permite programar Skills de Alexa de forma potente, rápida y sencilla.

Componentes técnicos de una Skill

  • Alexa Skills Kit (ASK): Conjunto de herramientas, documentación, ejemplos de código y API para añadir Skills a Alexa.
  • AWS Lambda: Parte de Amazon Web Services, un servicio de procesamiento de datos en la nube donde se ejecuta la lógica del programa de la Skill. No incurre en gastos iniciales, y Amazon ofrece servicios gratuitos durante los primeros 12 meses para nuevos usuarios.

Pasos para desarrollar una Skill personalizada

Diagrama del proceso de desarrollo de una Skill de Alexa

El proceso de desarrollo y publicación de una Skill personalizada consta de 7 pasos:

  1. Creación de la Skill y configuración del modelo de interacción:
    • Acceder a la Alexa Developer Console e iniciar sesión en Amazon Developer.
    • En la página de inicio, se muestran todas las Skills creadas. Se nombra la Skill, se selecciona el idioma y se elige uno de los cuatro tipos de modelo de interacción:
      • Modelo personalizado (Custom Skill Model): Para interacciones definidas por el usuario.
      • Modelo Flash Briefing: Para feeds de noticias.
      • Modelo Smart Home: Para aplicaciones de domótica.
      • Modelo de vídeo: Para aplicaciones de vídeo.
    • Se introduce un "Nombre de la Skill" y se hace clic en "Crear Skill".
  2. Diseño del modelo de interacción:
    • En la sección "Build", se diseña el modelo de interacción personalizado.
    • Se define el nombre de invocación, que es la expresión que los usuarios usarán para comunicarse con la Skill. No debe contener frases de inicio de Alexa ni palabras de aviso.
    • Se definen los Intents, que son las acciones que la Skill realizará cuando un usuario utilice un patrón de lenguaje específico. Cada Skill personalizada incluye cinco Intents preestablecidos. Se elige un nombre para el Intent y se definen las posibles frases que los usuarios podrían decir para expresar su intención. Alexa ampliará estos patrones de reconocimiento de voz mediante aprendizaje automático.
    • Se hace clic en "Build Model" para crear el modelo de interacción.
  3. Creación de la función Lambda AWS:
    • Se crea una función Lambda AWS que incluye la lógica del programa de la Skill.
    • En la consola de administración AWS, se busca "Lambda" y se crea una nueva función.
    • Se selecciona un nombre para la función y un rol de ejecución Lambda que define sus autorizaciones.
    • El código de la función Lambda puede generarse con herramientas como Skillinator.io, que proporciona la plantilla de código necesaria para que la Skill responda a las preguntas de los usuarios. Esta plantilla se copia y se inserta como código de función en la consola AWS.
    • Se adapta el código, por ejemplo, el welcomeOutput (mensaje de bienvenida) y la salida de voz para los Intents definidos. Es crucial usar variaciones en los mensajes para una interacción más natural.
  4. Conexión de la función Lambda de AWS a la consola de desarrollo de Amazon:
    • Se requiere un enlace bidireccional entre la Skill y la función Lambda.
    • Se copia el "Skill ID" de la consola de Alexa Developer y se introduce como ID de calificación de la función Lambda.
    • Se define al menos un endpoint predeterminado para la Skill en el panel de configuración de la función Lambda.
  5. Fase de prueba:
    • La sección "Test" en la consola de desarrollo de Alexa ofrece un entorno de pruebas completo con un simulador de Alexa.
    • Se activa el entorno de pruebas, se proporciona acceso al micrófono o se introducen comandos de voz con el teclado para probar la Skill.
  6. Validación de la Skill.
  7. Publicación de la Skill.

Características de una Skill de Alexa de calidad

Para crear una Skill de calidad y atractiva para el usuario final, es importante considerar varios aspectos:

  • Internacionalización: Publicar la Skill en diferentes idiomas, siempre que el caso de uso sea válido en esas regiones. Ofrecer variedad en las respuestas para que la Skill sea dinámica y natural.
  • Persistencia de datos: Implementar el almacenamiento de datos (por ejemplo, en una tabla de DynamoDB) para personalizar la experiencia del usuario. Esto permite adaptar los mensajes de bienvenida y la interacción según si el usuario es nuevo, ocasional o habitual.
  • Atributos de sesión: Almacenar datos recogidos durante la conversación para mantener el contexto y mejorar la experiencia del usuario en una sesión (ej. recordar preferencias).
  • Personalización de los mensajes: Dirigirse al usuario por su nombre o conectar con APIs externas (como una API meteorológica) para enriquecer la información y la experiencia.
  • APL y/o APL-A (Alexa Presentation Language): Considerar a los usuarios con dispositivos con pantalla. APL proporciona una capa visual de apoyo a la voz, sin sustituirla. APL-A permite reproducir audio simultáneamente con el habla de Alexa, añadiendo un toque de calidad. Es vital un buen diseño visual.
  • FallbackIntent: Manejar peticiones que la Skill no pueda gestionar, ofreciendo mensajes de error menos bruscos y permitiendo recopilar información no capturada.
  • Interceptores: Unificar código para tareas como el registro de eventos o la limpieza de entidades dinámicas, aunque no afecte directamente al usuario final.
  • Entonación y diálogos (SSML): Utilizar SSML (Speech Synthesis Markup Language) para que Alexa suene más humana. Permite variar la velocidad, hacer pausas, cambiar voces y añadir expresiones y emociones, logrando un tono más natural en la Skill.

Beneficios de las Skills de Alexa

Las Skills de Alexa ofrecen numerosos beneficios que mejoran la experiencia del usuario:

  1. Accesibilidad: La mayoría de las Skills son gratuitas, y las de pago suelen ser asequibles, permitiendo añadir muchas funcionalidades sin coste.
  2. Simplicidad: Están diseñadas para ser intuitivas, versátiles y fáciles de usar, con una instalación sencilla y sin problemas de configuración.
  3. Versatilidad: Existe una oferta ilimitada de Skills para todo tipo de tareas, desde organización y productividad hasta ocio y educación. Constantemente surgen nuevas Skills para satisfacer diversas necesidades.
  4. Personalización: Las Skills pueden personalizarse según las preferencias del usuario, permitiendo establecer comandos o frases predeterminadas para realizar conjuntos de tareas al instante.
  5. Compatibilidad: Como parte de los servicios de Amazon, se integran con todos los servicios del gigante tecnológico (streaming, e-commerce) y aplicaciones externas, centralizando la gestión en un solo lugar y sincronizándose con múltiples dispositivos.

Limitaciones de las Skills de Alexa

A pesar de sus beneficios, las Skills de Alexa también presentan algunas limitaciones:

  • Cantidad de Skills disponibles: Alexa permite un máximo de 75 Skills. Al alcanzar este límite, es necesario eliminar Skills existentes para instalar nuevas.
  • Almacenamiento: La capacidad de almacenamiento varía, especialmente para Skills de desarrolladores, dependiendo de los servicios y dispositivos integrados.
  • Permisos: Algunas Skills pueden tener funcionalidades limitadas si no se activan los permisos correctos, que a veces deben configurarse manualmente.
  • Idioma: Algunas de las mejores Skills solo están disponibles en inglés.
  • Conexión a internet: Las Skills requieren una conexión a internet estable para funcionar correctamente; una conexión inestable puede interrumpir su servicio.

tags: #crear #skills #para #alexa #reproduccion