Con Alexa, Amazon opera un servicio de voz basado en la nube para los altavoces in­te­li­ge­n­tes Amazon Echo, Echo Dot, Echo Show o Echo Spot. Al hablar de un altavoz in­te­li­ge­n­te, estamos haciendo re­fe­re­n­cia a un altavoz conectado a Internet con un asistente virtual integrado que recibe comandos a través de una interfaz de voz y, por lo tanto, permite diversas in­ter­ac­cio­nes.

Los altavoces in­te­li­ge­n­tes sirven para el uso de servicios en línea basados en audio y permiten controlar di­s­po­si­ti­vos co­ne­c­ta­dos 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 in­te­li­ge­n­te para re­pro­du­cir música, ver noticias, recibir informes de tráfico y me­teo­ro­ló­gi­cos o pro­po­r­cio­nar funciones de ca­le­n­da­rio. En co­m­bi­na­ción con los di­s­po­si­ti­vos in­te­li­ge­n­tes para el hogar, Alexa ofrece una interfaz de voz para el control de lámparas in­te­li­ge­n­tes, te­r­mo­s­ta­tos o tomas de corriente.

También pueden in­s­ta­lar­se otras funciones extra, las llamadas Skills o fu­n­cio­na­li­da­des de Alexa. La Alexa Skills Store ofrece a los usuarios más de 50.000 ex­te­n­sio­nes de de­sa­rro­lla­do­res externos, algunas de las cuales pueden activarse gra­tui­ta­me­n­te. Si quieres ser creativo, usando el Alexa Skills Kit y el AWS Lambda puedes programar tus Skills de Alexa en pocos pasos. Te mo­s­tra­re­mos cómo se hace.

¿Qué es una Skill de Alexa?

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é­c­ni­ca­me­n­te, una Skill de Alexa consta de una interfaz de usuario (el llamado frontend) y la lógica del programa (el backend). Cualquier di­s­po­si­ti­vo in­te­li­ge­n­te que soporte el servicio li­n­güí­s­ti­co de Alexa, tanto un altavoz in­te­li­ge­n­te de Amazon Echo como un re­fri­ge­ra­dor LG de­bi­da­me­n­te equipado, es capaz de funcionar como frontend de una Skill de Alexa. La lógica del programa en el backend se ejecuta en su propio servidor o en AWS Lambda, un servicio de pro­ce­sa­mie­n­to de datos de­sa­rro­lla­do por Amazon.

Nota

AWS (Amazon Web Services) es una filial de la empresa online de venta por correo Amazon. Con la pla­ta­fo­r­ma de co­mpu­tación en la nube del mismo nombre, la compañía es uno de los pro­vee­do­res líderes para el apro­vi­sio­na­mie­n­to de recursos de TI a demanda con un modelo de fa­c­tu­ra­ción basado en el uso.

Alexa Skill De­ve­lo­p­me­nt: re­qui­si­tos para el de­sa­rro­llo de Skills

Las Skills de Alexa se de­sa­rro­llan uti­li­za­n­do el Alexa Skills Kit (ASK) y se ponen a di­s­po­si­ción de los usuarios a través de la Alexa Skills Store. El acceso al Alexa Skills Kit está di­s­po­ni­ble a través de una cuenta gratuita para de­sa­rro­lla­do­res de Amazon.

Nota

El Alexa Skills Kit (ASK) es una colección de API de au­to­se­r­vi­cio, he­rra­mie­n­tas, do­cu­me­n­ta­ción y ejemplos de código que te permite crear tus Skills de Alexa uti­li­za­n­do bloques de co­n­s­tru­c­ción pre­di­se­ña­dos.

Si no deseas alojar tú mismo la lógica del programa de tu Skill de Alexa, ne­ce­si­ta­rás una cuenta AWS que te de acceso al servicio de pro­ce­sa­mie­n­to de datos de AWS Lambda.

Tutorial: Skills de Alexa en siete pasos

El proceso de de­sa­rro­llar una Skill de Alexa pe­r­so­na­li­za­da hasta la pu­bli­ca­ción de tu apli­ca­ción consta de 7 pasos:

  • En los pasos 1 y 2, se crea una nueva Skill de Alexa en la consola de de­sa­rro­llo de Amazon y se configura el modelo de in­ter­ac­ción para la interfaz de voz.
  • Basándose en este modelo de in­ter­ac­ción, se crea una función Lambda AWS en el paso 3 que incluye la lógica del programa de tu Skill. Esta se ejecuta en la pla­ta­fo­r­ma de co­mpu­tación en la nube AWS de Amazon.
  • En el paso 4, conecta la función Lambda de AWS a la consola de de­sa­rro­llo de Amazon para que tu Skill esté di­s­po­ni­ble para los di­s­po­si­ti­vos de Amazon.
  • A esto le sigue una fase de prueba en el paso 5 y la va­li­da­ción y pu­bli­ca­ción de tu Skill en los pasos 6 y 7.

Te mo­s­tra­re­mos el de­sa­rro­llo de una Skill de Alexa con un ejemplo sencillo:

Mary es una joven em­pre­n­de­do­ra que dirige un pequeño bar en la céntrica O’Connell Street, en Dublín. El Flour Pot Sa­n­d­wi­ches ofrece sá­n­d­wi­ches de sabores di­fe­re­n­tes y se ha co­n­so­li­da­do, desde su apertura, como una al­te­r­na­ti­va sabrosa y saludable a los sá­n­d­wi­ches tra­di­cio­na­les. Gracias a la fa­n­tá­s­ti­ca ubicación de su pequeño bar, a Mary nunca le han faltado clientes. No obstante, el in­sa­cia­ble espíritu em­pre­n­de­dor que la llevó a abrir su propio negocio, la impulsa ahora a buscar nuevas al­te­r­na­ti­vas que le permitan seguir creciendo. Por este motivo, Mary está tra­ba­ja­n­do no solo en la creación de su propia página web, sino que se ha ave­n­tu­ra­do a crear una Skill para el servicio li­n­güí­s­ti­co de Alexa. Para empezar poco a poco, Mary ha decidido de­sa­rro­llar una Skill de Alexa con la que sus clientes puedan comprobar el horario de apertura de su bar a través de la interfaz li­n­güí­s­ti­ca de Alexa.

1. Pre­pa­ra­ción

Para que los usuarios de Alexa Language Service puedan programar sus propias Skills de Alexa, Amazon pro­po­r­cio­na el Alexa Skills Kit en la Alexa Developer Console como un entorno de de­sa­rro­llo con una interfaz web gráfica. La consola de de­sa­rro­llo Alexa forma parte de la consola de de­sa­rro­llo de Amazon.

Inicia sesión en Amazon Developer. Si aún no tienes una cuenta de de­sa­rro­lla­dor de Amazon, crea una cuenta de de­sa­rro­lla­dor gratuita.

Después de iniciar sesión, se te guiará a la vista general del servicio. Se­le­c­cio­na aquí “Amazon Alexa”.

Haz clic en “Alexa Skills Kit” en el menú de­s­ple­ga­ble bajo “Productos” y luego en “Develop Skill” para abrir la consola de de­sa­rro­llo de Alexa.

La página de inicio de la consola de de­sa­rro­llo de Alexa te mostrará todas las Skills de Alexa que has creado. Si estás iniciando sesión por primera vez, la lista estará vacía.

Nota

La consola de de­sa­rro­lla­dor de Alexa solo está ac­tua­l­me­n­te di­s­po­ni­ble en inglés, japonés y chino.

Haz clic en “Crear Skill” para crear una nueva Skill de Alexa.

Nombra tu Skill, se­le­c­cio­na el idioma deseado y elige uno de los cuatro tipos de modelo para el modelo de in­ter­ac­ción de tu habilidad:

  • Modelo pe­r­so­na­li­za­do (modelo de in­ter­ac­ción definido por el usuario)
  • Modelo Flash Briefing (modelo de in­ter­ac­ción pre­de­fi­ni­do para feeds de noticias)
  • Modelo Smart Home (modelo de in­ter­ac­ción pre­de­fi­ni­do para apli­ca­cio­nes Smart Home)
  • Modelo de vídeo (modelo de in­ter­ac­ción pre­de­fi­ni­do para apli­ca­cio­nes de vídeo)

En este tutorial de Alexa Skill te mo­s­tra­re­mos cómo crear modelos de in­ter­ac­ción pe­r­so­na­li­za­dos partiendo del Custom Skill Model.

Introduce como “Nombre de la Skill” (“Skill name”) el nombre con el que se mostrará tu Skill de Alexa más adelante en la vista general y en la tienda de Alexa Skills.

En nuestro ejemplo, Mary elige el nombre “Flour Pot Sa­n­d­wi­ches”.

A co­n­ti­nua­ción, haz clic en “Crear Skill” (“Create Skill”) para iniciar el proceso de de­sa­rro­llo. Se te re­di­ri­gi­rá au­to­má­ti­ca­me­n­te a la vista de edición de la consola de de­sa­rro­llo de Alexa.

Nota

Si deseas pe­r­so­na­li­zar o de­sa­rro­llar una Skill de Alexa ya creada, haz clic en el botón “Editar” (“Edit”) en la vista general de Skills para cambiar a la vista editar.

2. Co­n­fi­gu­rar el modelo de in­ter­ac­ción uti­li­za­n­do el Alexa Skills Kit

Para de­sa­rro­llar tu Skill de Alexa dispones de una interfaz gráfica de usuario que reduce al mínimo la pro­gra­ma­ción, es decir, la in­te­r­ve­n­ción manual en el código. La vista de edición de la consola de de­sa­rro­llo de Alexa está dividida en cinco secciones:

  • Build (De­sa­rro­llo)
  • Test
  • Di­s­tri­bu­tion (Pu­bli­ca­ción)
  • Ce­r­ti­fi­ca­tion (Ce­r­ti­fi­ca­ción)
  • Analytics (Análisis)

Utiliza las pestañas de la barra de na­ve­ga­ción en la parte superior de la ventana del navegador para de­s­pla­zar­te de un área a otra.

Comienza en la sección “Build” para diseñar un modelo de in­ter­ac­ción pe­r­so­na­li­za­do para tu Skill y practica con la ayuda del Alexa Skills Kit. La página de resumen del área de de­sa­rro­llo se divide en tres columnas. La Skill se crea uti­li­za­n­do la lista de co­m­pro­ba­ción del skill builder (de­sa­rro­lla­dor de la Skill) en la columna de la derecha y consta de cuatro pasos de co­n­fi­gu­ra­ción:

  • Se­le­c­cio­nar el nombre de la In­vo­ca­ción
  • Definir in­te­n­cio­nes y ejemplos de se­n­te­n­cias
  • Crear un modelo
  • Se­le­c­cio­nar el endpoint del servicio web

Si has co­m­ple­ta­do uno de los pasos re­que­ri­dos, una marca de ve­ri­fi­ca­ción de color verde te lo indicará.

Inicia uno de los pasos de la co­n­fi­gu­ra­ción haciendo clic en el botón co­rre­s­po­n­die­n­te de la lista de co­m­pro­ba­ción de Skill Builder. De manera al­te­r­na­ti­va, puedes se­le­c­cio­nar áreas de co­n­fi­gu­ra­ción de­te­r­mi­na­das mediante la barra del menú situada en la columna de la izquierda. Aquí se incluye un editor JSON y una opción de menú para se­le­c­cio­nar las in­te­r­fa­ces de usuario.

En la columna central de la página en­co­n­tra­rás material in­fo­r­ma­ti­vo sobre Alexa Skill De­ve­lo­p­me­nt, así como un vídeo sobre el área se­le­c­cio­na­da de la consola de Alexa Developer.

Se­le­c­cio­na el nombre de in­vo­ca­ción

Primero se define el nombre de in­vo­ca­ción de la Skill de Alexa. Haz clic en el paso 1 de la lista de co­m­pro­ba­ción de Skill Builder o se­le­c­cio­na el elemento de menú “In­vo­ca­ción” en la columna de la izquierda para abrir el área de co­n­fi­gu­ra­ción co­rre­s­po­n­die­n­te.

El nombre de in­vo­ca­ción es la expresión que uti­li­za­rán los usuarios para co­mu­ni­car­se con tu Skill. El nombre de in­vo­ca­ción puede ser el mismo que el nombre de la Skill, pero puede diferir si es necesario.

Introduce el nombre de in­vo­ca­ción deseado en el campo pro­po­r­cio­na­do para ello. Ten en cuenta los si­guie­n­tes re­qui­si­tos previos:

  • Utiliza un nombre de in­vo­ca­ción con dos o más palabras.
  • Separa las palabras con espacios.
  • Utiliza solo letras mi­nú­s­cu­las.
  • Pon el nombre de in­vo­ca­ción entre comillas si estás usando un apóstrofe o una abre­via­tu­ra con un punto.
  • Los números u otros ca­ra­c­te­res es­pe­cia­les tienen que ser escritos.
Nota

El nombre de in­vo­ca­ción no debe contener ninguna de las frases de inicio de Alexa Skill tales como “launch” (empezar), “ask” (preguntar), “tell” (decir), “load” (cargar), “open” (abrir) o “play” (jugar), ni palabras de aviso como “Alexa”, “Amazon”, “Echo” o “Computer”, que se utilizan para dirigirse al altavoz in­te­li­ge­n­te. Tampoco están pe­r­mi­ti­das las palabras “skill” y “app”.

Mary elige el nombre de in­vo­ca­ción “Flour pots sa­n­d­wi­ches” para su Skill.

Guarda el nombre de la in­vo­ca­ción haciendo clic en “Guardar modelo”. A co­n­ti­nua­ción, haz clic en “Custom” para volver a la vista general.

Definir pro­pó­si­tos (intents) y ejemplos de se­n­te­n­cias

Con los “Intents” tú defines las acciones que realiza tu Skill de Alexa tan pronto como un usuario utiliza un patrón de lenguaje es­pe­cí­fi­co. De este modo, de­te­r­mi­nas lo que un usuario de tu Skill puede decir, cuál es el propósito de su ma­ni­fe­s­ta­ción y cómo reacciona tu Skill ante ella. Cada Skill pe­r­so­na­li­za­da ya contiene cinco pro­pó­si­tos (intents) pree­s­ta­ble­ci­dos que deben im­ple­me­n­tar­se más tarde. Además, puedes añadir a tu skill intents pre­de­te­r­mi­na­dos o pe­r­so­na­li­za­dos, según sea necesario.

Procede como se indica, a co­n­ti­nua­ción, para crear un intent definido por el usuario:

Pon un nombre a la nueva intención y haz clic en “Create custom intent”.

Define las posibles formas con las que los usuarios podrían expresar su intención. Introduce la frase en el campo de texto y haz clic en el signo más (+).

A Mary le gustaría programar una intención para su Skill que permita a los usuarios preguntar sobre los horarios de apertura de su bar. Llama a la intención “Ge­tO­pe­ni­n­gHou­rs” (obtener horarios de apertura) e introduce las frases con las que los usuarios podrían pedir esta in­fo­r­ma­ción.

A co­n­ti­nua­ción, la consola de de­sa­rro­llo ampliará por apre­n­di­za­je au­to­má­ti­co los patrones de re­co­no­ci­mie­n­to de habla que has definido. Sin embargo, esto solo funciona si el sistema dispone de una base de datos su­fi­cie­n­te­me­n­te amplia. Por lo tanto, debes in­tro­du­cir al menos ocho y hasta alrededor de 30 ejemplos de ex­pre­sio­nes con la intención que elijas.

Si has in­tro­du­ci­do un amplio número de ejemplos, vuelve a la vista general con el botón “Pe­r­so­na­li­zar” para crear el modelo y en­tre­nar­lo por apre­n­di­za­je au­to­má­ti­co.

Crear modelo

Procede de la siguiente manera para crear el modelo de in­ter­ac­ción de tu Skill de Alexa basado en los ajustes que has realizado:

Haz clic en “Build Model” en la lista de co­m­pro­ba­ción de Skill Builder. La consola de de­sa­rro­llo de Amazon reproduce un mensaje push que te informará de que el proceso de co­m­pi­la­ción ha comenzado.

Espera a que la consola te notifique que tu modelo de in­ter­ac­ción se ha creado con éxito.

Nota

Si después quieres hacer cambios en el nombre de la in­vo­ca­ción, los pro­pó­si­tos o co­me­n­ta­rios de ejemplo, solo tienes que reiniciar el proceso de co­m­pi­la­ción para crear un nuevo modelo.

Se­le­c­cio­na el “Endpoint” del servicio web

El paso 4 de la lista de co­m­pro­ba­ción de Skill Builder incluye la selección del endpoint del servicio web. Aquí tienes dos opciones a elegir: la lógica del programa de tu Skill de Alexa puede ser ejecutada como una función Lambda en la pla­ta­fo­r­ma de co­mpu­tación en la nube de AWS o a través de HTTPS en su propio servidor web.

Si deseas que la lógica del programa se ejecute con tus propios recursos, necesitas un servidor web que cumpla los si­guie­n­tes re­qui­si­tos:

  • Conexión a Internet
  • HTTPS a través de un ce­r­ti­fi­ca­do SSL/TLS re­co­no­ci­do por Amazon
  • El puerto 443 está di­s­po­ni­ble para consultas

Si deseas usar AWS Lambda para el alo­ja­mie­n­to, ne­ce­si­ta­rás una cuenta de usuario para el Servicio Web de Amazon.

En este tutorial nos basamos en AWS y creamos la lógica del programa de tu Skill de Alexa como una función Lambda.

Para ello deberás activar la casilla de ve­ri­fi­ca­ción de AWS Lambda ARN. ARN significa “Amazon Resource Name” (nombre del recurso de Amazon). Es un nombre único para un recurso AWS, como una función Lambda, por ejemplo.

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. Te mo­s­tra­re­mos cómo hacerlo en el punto 3 de este tutorial de Skills de Alexa.

Opcional: in­te­r­fa­ces de pro­gra­ma­ción

Las Skills de Alexa se pueden ampliar con varias API (in­te­r­fa­ces de pro­gra­ma­ción) que te ofrecen la po­si­bi­li­dad de pro­po­r­cio­nar co­n­te­ni­dos mu­l­ti­me­dia o de integrar di­s­po­si­ti­vos externos. La siguiente tabla muestra una selección de API di­s­po­ni­bles:

Interfaz De­s­cri­p­ción
Audio Player API La Audio Player API amplía el código de programa de una Skill para incluir todos los re­qui­si­tos para la re­pro­du­c­ción de contenido de audio.
Display API Una Skill de Alexa ampliada con una Display API permite la in­ter­ac­ción en la pantalla del Echo Show.
Video App API Una Skill con la API de apli­ca­cio­nes de vídeo puede re­pro­du­cir contenido de streaming de vídeo en el Echo Show.
Alexa Gadget API La API de Gadgets puede uti­li­zar­se para programar Skills de Alexa que permitan in­ter­ac­tuar con otros ac­ce­so­rios de Alexa.

3. Crear la lógica del programa para AWS Lambda

El servicio de pro­ce­sa­mie­n­to de datos AWS Lambda forma parte de Amazon Web Services. Re­gí­s­tra­te primero para obtener una cuenta AWS gratuita.

Nota

No in­cu­rri­rás en ningún gasto al registrar tu cuenta AWS. Estos solo se producen cuando se utilizan recursos de AWS. Amazon pro­po­r­cio­na durante los primeros 12 meses ciertos servicios a los usuarios recién re­gi­s­tra­dos de forma gratuita. En AWS Lambda, la cuota gratuita incluye ac­tua­l­me­n­te 1 millón de llamadas a la API y 3,2 millones de segundos de tiempo de cálculo al mes.

Accede a tu cuenta AWS y se­le­c­cio­na “AWS Ma­na­ge­me­nt Console” en “Mi cuenta”.

La consola de ad­mi­ni­s­tra­ción de AWS es una interfaz de usuario basada en el navegador que te permite acceder y ad­mi­ni­s­trar los servicios web de Amazon.

Primero, asegúrate de que tu consola está co­n­fi­gu­ra­da en la región donde quieres ofrecer tu Skill. Se­le­c­cio­na el ajuste regional “EU (Ireland)” si deseas que tu fu­n­cio­na­li­dad esté di­s­po­ni­ble para los usuarios europeos.

La consola de ad­mi­ni­s­tra­ción AWS te da acceso a una variedad de recursos de co­mpu­tación en la nube. Para encontrar el producto AWS deseado, utiliza la función de búsqueda “Find services”. Introduce la palabra clave “Lambda” en el campo de búsqueda y confirma con “Enter”. En el punto de menú “Servicios” también en­cue­n­tras un resumen de la gama de productos AWS.

En la página principal del servicio de pro­ce­sa­mie­n­to de datos AWS Lambda, la consola AWS muestra un resumen de las funciones Lambda que has creado. Si todavía no has creado ninguna, la lista estará vacía.

Haz clic en “Crear función” para iniciar el proceso de co­n­fi­gu­ra­ción de una nueva función Lambda.

Las funciones AWS Lambda pueden crearse desde cero, uti­li­za­n­do una plantilla pre­de­fi­ni­da o partiendo de una apli­ca­ción pro­po­r­cio­na­da por AWS o por socios co­la­bo­ra­do­res en el re­po­si­to­rio AWS de apli­ca­cio­nes sin servidor.

Puesto que tenemos que recurrir a varias bi­blio­te­cas para la lógica del programa de nuestra Skill, es mejor partir una plantilla.

Por lo tanto, se­le­c­cio­na la opción “Plantilla” e introduce la palabra clave “alexa” en la máscara de búsqueda.

En este caso, no importa qué plantilla elijas, ya que solo ne­ce­si­ta­mos las bi­blio­te­cas. El código lo re­s­cri­bi­re­mos co­m­ple­ta­me­n­te siguiendo estos pasos.

Para el tutorial elegimos la plantilla “alexa-skill-kit-sdk-factskill” basada en Node.js 6.10.

Confirma tu selección haciendo clic en “Co­n­fi­gu­rar”.

En el siguiente paso, se­le­c­cio­na un nombre y un rol de ejecución Lambda. Este último define las au­to­ri­za­cio­nes de la función. En línea con nuestro ejemplo, la función debería llamarse “Flou­r­PotSa­n­d­wi­ches”. Para definir sus permisos, hacemos clic en “Crear un rol definido por el usuario” en el menú de­s­ple­ga­ble bajo “Rol”.

Nota

La consola de ad­mi­ni­s­tra­ción AWS te informa de que tu función contiene bi­blio­te­cas externas.

La máscara de co­n­fi­gu­ra­ción para el rol de ejecución de la función se abre en una nueva pestaña, ya con valores es­ta­ble­ci­dos por defecto.

No cambies nada aquí y confirma el ajuste con “Allow” (permitir). La función Lambda se crea con el rol “lambda_basic_execution”. La pestaña se cierra au­to­má­ti­ca­me­n­te.

En la parte inferior de la máscara de co­n­fi­gu­ra­ción en­co­n­tra­rás el código de función Lambda de la plantilla. No es necesario que prestes atención a esto al principio. Haz clic en “Create function” (crear función).

Una vez creada la función Lambda, pasarás au­to­má­ti­ca­me­n­te a la vista general de la co­n­fi­gu­ra­ción, donde podrás realizar todos los ajustes ne­ce­sa­rios.

En la parte superior del panel de co­n­fi­gu­ra­ción en­co­n­tra­rás el diseñador de funciones y un editor con el que podrás in­te­r­ve­nir ma­nua­l­me­n­te en el código de función. Al editor le siguen otros botones de co­n­fi­gu­ra­ción, que no se tratan en detalle en este tutorial de Skills de Alexa.

De­s­plá­za­te hacia abajo hasta la sección “Código de función”, marca el código completo en el editor con [Ctrl] +[E] y bórralo con la tecla DEL.

Ahora cambia a la consola de de­sa­rro­llo de Amazon y abre el modelo de in­ter­ac­ción de tu Skill en el Editor JSON. El botón co­rre­s­po­n­die­n­te se encuentra en el menú de na­ve­ga­ción en el lado izquierdo de la ventana.

De­s­plá­za­te hacia abajo hasta la sección “Código de función”, marca todo el código JSON con [Ctrl]+[E] y cópialo usando [Ctrl] + [C].

El modelo de in­ter­ac­ción para nuestro ejemplo “Flou­r­Pots­Sa­n­d­wi­ches” es el siguiente:

{
    "interactionModel": {
        "languageModel": {
            "invocationName": “flour pots sandwiches”,
            "intents": [
                {
                    "name": "AMAZON.FallbackIntent",
                    "samples": []
                },
                {
                    "name": "AMAZON.CancelIntent",
                    "samples": []
                },
                {
                    "name": "AMAZON.HelpIntent",
                    "samples": []
                },
                {
                    "name": "AMAZON.StopIntent",
                    "samples": []
                },
                {
                    "name": "AMAZON.NavigateHomeIntent",
                    "samples": []
                },
                {
                    "name": "GetOpeningHours",
                    "slots": [],
                    "samples": [
                        “horarios de apertura”,
                        “cómo son los horarios de apertura”,
                        “cuáles son los horarios de apertura”,
                        “cuándo cierra el bar”,
                        “cuándo está abierto el bar”,
                       “cuándo abre el bar”,
                        “a qué hora cierra el bar”,
                        “hasta qué hora está abierto el bar”,
                        “a qué hora abre el bar”,
                        “cuándo se abre el bar”,
                        “cuándo está abierto al público el bar”
                    ]
                }
            ],
            "types": []
        }
    }
}

El código muestra el modelo de in­ter­ac­ción creado pre­via­me­n­te en formato JSON.

Nota

JSON (Ja­va­S­cri­pt Object Notation) es un formato de in­te­r­ca­m­bio de datos compacto y basado en texto que es fácil de procesar tanto para humanos como para máquinas. Los datos en formato JSON se almacenan como pares nombre-valor o como listas ordenadas.

Nuestro documento JSON contiene los pro­pó­si­tos (intents) de nuestra Skill Alexa, así como los ejemplos de de­cla­ra­cio­nes asignadas a las in­te­n­cio­nes (si están di­s­po­ni­bles). Por lo tanto, incluye todas las po­si­bi­li­da­des de in­ter­ac­ción que están di­s­po­ni­bles en el lado del usuario.

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. Para ello, uti­li­za­mos la apli­ca­ción web Ski­lli­na­tor.io. Con esta he­rra­mie­n­ta gratuita puedes convertir un modelo de in­ter­ac­ción en formato JSON, con un simple clic del ratón, en una plantilla Lambda válida.

Abre la dirección https://ski­lli­na­tor.io/ en el navegador web y pega el modelo de in­ter­ac­ción copiado en el po­r­ta­pa­pe­les en la ventana derecha de la apli­ca­ción web. A co­n­ti­nua­ción, haz clic en “Generate” (generar).

Copia esta plantilla Lambda en el po­r­ta­pa­pe­les y abre el resumen de la co­n­fi­gu­ra­ción de tu función Lambda en la consola de gestión AWS. Ahora inserta la plantilla como código de función para tu función Lambda. Guarda el cambio.

Ahora has creado una función Lambda con una lógica de programa válida. Sin embargo, hay im­po­r­ta­n­tes secciones del código de función que están llenas de ma­r­ca­do­res de posición como, por ejemplo, la salida de voz que Alexa reproduce tan pronto como un usuario pronuncia una frase que co­rre­s­po­n­de a la intención definida an­te­rio­r­me­n­te.

Por lo tanto, a co­n­ti­nua­ción, es necesario revisar la plantilla creada con Ski­lli­na­tor.io línea por línea y re­es­cri­bir las secciones co­rre­s­po­n­die­n­tes ma­nua­l­me­n­te.

En este tutorial de Skills de Alexa limitamos la ada­p­ta­ción del código al we­l­co­meOu­t­put (el mensaje de bie­n­ve­ni­da) y a la salida de voz para el propósito (intent) “Ge­tO­pe­ni­n­gHou­rs” definido en el modelo de in­ter­ac­ción. En la práctica, sin embargo, deberías definir una salida de voz propia para todos los pro­pó­si­tos (intents) de tu Skill.

El we­l­co­meOu­t­put se define por la variable del mismo nombre y se encuentra en el área comentada “1. Text strings” (cadenas de texto). Re­em­pla­za­mos el marcador de posición “This is a pla­ceho­l­der welcome message. This skill includes 6 intents. Try one of your intent ut­te­ra­n­ces to test the skill.” con un saludo propio.

El We­l­co­meOu­t­put se co­m­ple­me­n­ta con un we­l­co­me­Re­pro­mpt. En él se define lo que Alexa debe decir si el usuario no contesta el saludo.

Consejo

Para apli­ca­cio­nes de voz, trabaja siempre con va­ria­cio­nes. Diseña la in­ter­ac­ción con tu Skill de la forma más variada posible. Por ejemplo, el reprompt debe ser siempre una re­fo­r­mu­la­ción del primer resultado obtenido.

// 1. Text strings =====================================================================================================
 //    Modify these strings and messages to change the behavior of your Lambda function
let speechOutput;
let reprompt;
let welcomeOutput = “Bienvenido a Flour Pots Sandwiches ¿qué puedo hacer por ti?”;
let welcomeReprompt = “¿En qué puedo ayudarte?”;

A co­n­ti­nua­ción, nos de­s­pla­za­mos hasta el área “2. Skill Code” (código de Skill). Aquí en­co­n­tra­mos seis intent-slots de acuerdo con nuestro modelo de in­ter­ac­ción: los cinco pro­pó­si­tos (intents) estándar y el que hemos definido, “Ge­tO­pe­ni­n­gHou­rs”.

El propósito “Ge­tO­pe­ni­n­gHou­rs” co­rre­s­po­n­de a la intención de un usuario de solicitar el horario de apertura de Flour Pots Sa­n­d­wi­ches. Re­em­pla­za­mos el marcador de posición “This is a pla­ceho­l­der response for the intent named Ge­tO­pe­ni­n­gHou­rs. This intent has no slots. Anything else?” por una respuesta co­rre­s­po­n­die­n­te al propósito.

'GetOpeningHours': function () {
		speechOutput = '';
		//any intent slot variables are listed here for convenience
		//Your custom intent handling goes here
		speechOutput = “Flour Pots Sandwiches abre hoy entre las 10 y las 18 horas”;
		this.emit(":ask", speechOutput, speechOutput);
    },

Después de guardar los cambios, nuestra Skill de Alexa está teó­ri­ca­me­n­te lista para la primera prueba. Para ello, primero tenemos que vincular la función Lambda “Flou­r­Pots­Sa­n­d­wi­ches” con la co­n­fi­gu­ra­ción web de la Skill en la consola de de­sa­rro­llo de Alexa.

4. Enlazar el modelo de in­ter­ac­ción con la función Lambda de AWS

Para que los usuarios puedan dirigirse a nuestra Skill uti­li­za­n­do un altavoz in­te­li­ge­n­te, se requiere un enlace en los dos sentidos. Pro­ce­de­re­mos en dos pasos:

  • Primero de­fi­ni­re­mos el modelo de in­ter­ac­ción co­n­fi­gu­ra­do en la consola Alexa Developer como un di­s­pa­ra­dor para la función AWS Lambda.
  • A co­n­ti­nua­ción, in­tro­du­ci­re­mos la función Lambda “Flou­r­Pots­Sa­n­d­wi­ches” en la consola de de­sa­rro­llo de Alexa como enpoint del servicio web para la Skill.

Definir el modelo de in­ter­ac­ción como di­s­pa­ra­dor

Accede a la co­n­fi­gu­ra­ción de tu función Lambda en la consola de gestión AWS y se­le­c­cio­na la opción “Alexa Skills Kit” en el diseñador de funciones.

El kit de fu­n­cio­na­li­da­des de Alexa aparece ahora como un di­s­pa­ra­dor en la re­pre­se­n­ta­ción gráfica de la función Lambda, pero requiere una co­n­fi­gu­ra­ción adicional.

Para ello ne­ce­si­ta­mos el ID de cua­li­fi­ca­ción del modelo de in­ter­ac­ción creado en la consola de Alexa Developer. Para en­co­n­trar­lo, ve a la consola de de­sa­rro­llo de Alexa y se­le­c­cio­na allí el punto “Endpoint” en la barra de na­ve­ga­ción, en el lado izquierdo de la ventana de tu navegador.

Copia la cadena de ca­ra­c­te­res que aparece en “Your Skill ID” en el po­r­ta­pa­pe­les y, a co­n­ti­nua­ción, in­tro­dú­ce­lo como el ID de cua­li­fi­ca­ción de tu función Lambda. Confirma la co­n­fi­gu­ra­ción haciendo clic en “Add” (añadir) y guarda los cambios (“Save”).

Registrar la función Lambda como endpoint

Para definir el enpoint del servicio web para tu Skill, de­s­plá­za­te hacia arriba en el panel de co­n­fi­gu­ra­ción de tu función Lambda. Copia el ARN en la esquina superior derecha de la ventana de tu navegador y cambia a la consola de de­sa­rro­llo de Alexa.

En el menú de na­ve­ga­ción de la consola de de­sa­rro­llo Alexa, vuelve a se­le­c­cio­nar “Endpoint” (si no está se­le­c­cio­na­do ya) y pega el ARN copiado en el campo “Default Region”.

Debes definir, al menos, un endpoint pre­de­te­r­mi­na­do para tu Skill. También puedes es­pe­ci­fi­car endpoints al­te­r­na­ti­vos para No­r­te­amé­ri­ca, Europa e India, así como para Oriente Próximo y Lejano. Guarda los ajustes con un clic en “Save Endpoints”.

Tu Skill de Alexa está lista para la primera prueba.

5. Test

En la sección “Test”, la consola de de­sa­rro­llo de Alexa ofrece un entorno de pruebas completo para Skills, in­clu­ye­n­do un simulador de Alexa con salida de voz. Puedes acceder al entorno de pruebas haciendo clic en la pestaña “Test” de la barra del menú situada en la parte superior de la ventana del navegador.

De forma pre­de­te­r­mi­na­da, el entorno de pruebas está des­ac­ti­va­do para las Skills de Alexa recién creadas. Actívalo cambiando el menú de­s­ple­ga­ble de “Off” (des­ac­ti­va­do) a “De­ve­lo­p­me­nt” (de­sa­rro­llo).

Ahora puedes in­ter­ac­tuar con tu Skill de Alexa en la etapa actual de de­sa­rro­llo para ase­gu­rar­te de que funcione en la práctica tal y como ima­gi­na­s­te.

Provee al simulador de Alexa de acceso a un micrófono o introduce comandos de voz uti­li­za­n­do el teclado. Llama a tu nueva Skill Alexa usando la in­vo­ca­ción y prueba un comando de voz que co­rre­s­po­n­da a la intención que has definido pre­via­me­n­te.

Nuestra Skill puede iniciarse con la in­vo­ca­ción “flour pots sa­n­d­wi­ches”. Alexa responde con el we­l­co­meOu­t­put definido en la lógica del programa:

     “Bie­n­ve­ni­do a Flour Pots Sa­n­d­wi­ches. ¿Qué puedo hacer por ti?”

El acceso a la lógica del programa ha fu­n­cio­na­do. La entrada y salida que ha procesado el servicio de habla de Amazon en la consulta se muestra en la ventana Skill I/O en formato JSON.

Ahora haz una pregunta que co­rre­s­po­n­da a la intención. Siguiendo nuestro ejemplo, pre­gu­n­ta­mos por el horario de apertura del snack bar:

   "¿A qué hora está abierto el bar hoy?"

Alexa entiende nuestra pregunta y nos da la in­fo­r­ma­ción que ne­ce­si­ta­mos:

  “Flour Pots Sa­n­d­wi­ches está abierto de 10:00 a 18:00 hoy.”

Nota

Al­te­r­na­ti­va­me­n­te, prueba las nuevas Skills de Alexa en todos los di­s­po­si­ti­vos co­ne­c­ta­dos a tu cuenta de Amazon Developer, incluso antes de su la­n­za­mie­n­to.

6. Pu­bli­ca­ción

Si has probado tu nueva Skill de Alexa y la has en­co­n­tra­do sa­ti­s­fa­c­to­ria, puedes ponerla a di­s­po­si­ción de otros usuarios a través de la Alexa Skills Store. Debes pro­po­r­cio­nar toda la in­fo­r­ma­ción necesaria para su pu­bli­ca­ción.

Para ello, ve a la sección “Di­s­tri­bu­tion” (pu­bli­ca­ción) haciendo clic en el botón del mismo nombre situado en el menú de na­ve­ga­ción de la consola de de­sa­rro­llo de Alexa. Rellena todos los campos obli­ga­to­rios bajo “Skill Preview” (vista previa de ha­bi­li­da­des), “Privacy & Co­m­plia­n­ce” (Pri­va­ci­dad y cu­m­pli­mie­n­to) y “Avai­la­bi­li­ty” (di­s­po­ni­bi­li­dad).

En “Skill preview”, introduce toda la in­fo­r­ma­ción que debe mostrarse en la vista previa a los usuarios en el país de destino deseado. Debes pro­po­r­cio­nar esta in­fo­r­ma­ción:

  • Nombre de la Skill
  • Breve de­s­cri­p­ción (máx. 160 ca­ra­c­te­res)
  • De­s­cri­p­ción detallada (máx. 4 000 ca­ra­c­te­res)
  • Al menos tres ejemplos de in­vo­ca­cio­nes
  • Icono de la Skill (pequeño)
  • Icono de la Skill (grande)
  • Categoría

Si es necesario, también puedes in­tro­du­cir in­fo­r­ma­ción sobre nuevas funciones e incluso enlaces a las di­s­po­si­cio­nes de pro­te­c­ción de datos o a las co­n­di­cio­nes de uso de tu Skill.

Consejo

¿No tienes un icono de tu Skill a mano ahora mismo? Entonces usa el Co­n­s­tru­c­tor de Iconos de Alexa Skill.

En “Pri­va­ci­dad y cu­m­pli­mie­n­to”, es­pe­ci­fi­ca­rás si los usuarios pueden utilizar funciones de pago dentro de tu Skill, si recopilas datos pe­r­so­na­les de los usuarios, si tu Skill está dirigida a usuarios menores de 13 años o si incluye pu­bli­ci­dad.

Nota

La ac­ti­va­ción de una Skill de Alexa a través de la Alexa Skills Store es gratuita. Los proyectos pro­gra­ma­dos con el Alexa Skills Kit pueden mo­ne­ti­zar­se mediante la compra de Skills y su­s­cri­p­cio­nes.

Además de todo esto, debes confirmar que tu Skill cumple con los re­qui­si­tos de ex­po­r­ta­ción de Alexa Skills (Export Co­m­plia­n­ce). Si la ve­ri­fi­ca­ción por parte del equipo de Alexa tiene que seguir ciertas in­s­tru­c­cio­nes como, por ejemplo, con respecto a los re­qui­si­tos de hardware o software, puedes de­s­cri­bi­r­los en un campo de texto pro­po­r­cio­na­do para este propósito.

Fi­na­l­me­n­te, en “Di­s­po­ni­bi­li­dad”, define las re­s­tri­c­cio­nes para la di­s­po­ni­bi­li­dad de tu Skill. ¿Debería estar di­s­po­ni­ble para todos los usuarios o solo para de­te­r­mi­na­das or­ga­ni­za­cio­nes?, ¿deben realizar las pruebas beta de­te­r­mi­na­das personas?, y ¿en qué países y regiones te gustaría pu­bli­car­la?

Guarda tus datos en las áreas “Vista previa de ha­bi­li­da­des”, “Pri­va­ci­dad y cu­m­pli­mie­n­to” y “Di­s­po­ni­bi­li­dad” haciendo clic en “Save and continue” (guardar y continuar).

Tus datos serán validados en el marco de la ce­r­ti­fi­ca­ción de tu Skill.

7. Ce­r­ti­fi­ca­ción

Una vez que hayas ingresado toda la in­fo­r­ma­ción requerida para la pu­bli­ca­ción, puedes entregar tu Skill para para su va­li­da­ción.

Después de haber guardado tus datos de pu­bli­ca­ción haciendo clic en “Guardar y continuar”, serás re­di­ri­gi­do au­to­má­ti­ca­me­n­te al área “Ce­r­ti­fi­ca­tion” (ce­r­ti­fi­ca­ción). La consola Alexa Developer comprueba tus datos y te pide, si es necesario, que revises la in­fo­r­ma­ción in­co­rre­c­ta o que pro­po­r­cio­nes los datos que faltan.

Si has in­tro­du­ci­do la in­fo­r­ma­ción requerida co­rre­c­ta­me­n­te o la has corregido si ha sido necesario, puedes continuar con una prueba de fu­n­cio­na­mie­n­to. Inicia la prueba haciendo clic en “Run” (ejecutar).

Si el informe de prueba muestra errores, tienes la opción de volver al área de­te­r­mi­na­da, corregir el error y realizar una nueva prueba de fu­n­cio­na­mie­n­to.

Una vez que la Skill de Alexa que has pro­gra­ma­do completa con éxito el test funcional, estará lista para el paso final de la pu­bli­ca­ción, la “Su­b­mi­s­sion” (enviar). Haz clic en “Submit for Review” (enviar para revisión) para ce­r­ti­fi­car tu Skill.

Nota

Mientras tiene lugar el proceso de ce­r­ti­fi­ca­ción, no se puede cambiar la co­n­fi­gu­ra­ción de tu Skill. Sin embargo, puedes ca­n­ce­lar­lo en cualquier momento. Haz clic en el botón “Withdraw from Ce­r­ti­fi­ca­tion” (retirar de la ce­r­ti­fi­ca­ción).

Una vez Amazon ha co­m­ple­ta­do la revisión, recibirás un correo ele­c­tró­ni­co en la cuenta asociada a tu cuenta de de­sa­rro­lla­dor de Amazon. Existen bá­si­ca­me­n­te dos es­ce­na­rios posibles:

  • Tu Skill se ha ce­r­ti­fi­ca­do con éxito: en este caso, se te co­mu­ni­ca­rá por correo ele­c­tró­ni­co cuándo se espera que tu Skill se publique en la Alexa Skills Store.
  • Tu Skill no ha sido ce­r­ti­fi­ca­da: en este caso, Amazon ha ide­n­ti­fi­ca­do problemas durante el proceso de ce­r­ti­fi­ca­ción. El correo ele­c­tró­ni­co incluirá un informe detallado de los cambios que se requieren para su ce­r­ti­fi­ca­ción. Una vez que hayas hecho los ajustes ne­ce­sa­rios, puedes volver a presentar tu Skill en cualquier momento.

Puedes ver el estado actual de todas las Skills de Alexa que has creado en la vista general de Skills de la Alexa Developer Console.

  • “In de­ve­lo­p­me­nt”: tu Skill está en de­sa­rro­llo.
  • “Ce­r­ti­fi­ca­tion”: tu Skill está en el proceso de ce­r­ti­fi­ca­ción.
  • “Live”: tu Skill está di­s­po­ni­ble para los usuarios a través de la Alexa Skills Store.
Nota

Si tu Skill ha alcanzado el estado “Live”, no podrás ajustar su co­n­fi­gu­ra­ción po­s­te­rio­r­me­n­te. Además de la versión en vivo, en la consola de de­sa­rro­lla­do­res está di­s­po­ni­ble una versión para de­sa­rro­lla­do­res de la Skill publicada que puede ser revisada in­de­pe­n­die­n­te­me­n­te de la original. Una vez que Amazon haya ce­r­ti­fi­ca­do una versión revisada de tu Skill, esta re­em­pla­za­rá a la versión anterior en vivo y creará au­to­má­ti­ca­me­n­te una nueva versión de de­sa­rro­llo

Mejor ex­pe­rie­n­cia de usuario con la interfaz de voz

¿Por qué deberías, como em­pre­sa­rio, de­sa­rro­llar una Skill de Alexa? La razón es obvia: la in­ter­ac­ción entre seres humanos se basa, en gran medida, en la co­mu­ni­ca­ción oral. Sin embargo, cuando se trata de máquinas, seguimos re­cu­rrie­n­do a he­rra­mie­n­tas que nos presten ayuda: lo que in­tro­du­ci­mos en el sistema con el teclado, el ratón o la pantalla táctil conduce a una respuesta en la pantalla. No obstante, esto está a punto de cambiar con Amazon Alexa, Google Assistant y Apple Siri, pues la operación se basa en un diálogo en el que los objetos se co­n­vie­r­ten en in­te­r­lo­cu­to­res y la forma de tratarlos se vuelve más intuitiva.

Esta te­c­no­lo­gía está todavía dando sus primeros pasos, pero Voice as UI es una tendencia que tiene el potencial de cambiar la forma en que pe­r­ci­bi­mos e in­ter­ac­tua­mos con las máquinas. Para ti como em­pre­sa­rio o em­pre­sa­ria, un servicio li­n­güí­s­ti­co como Amazon Alexa ofrece una gran cantidad de opciones.

Utiliza Alexa Skills, por ejemplo, para demostrar a tus clientes que tu empresa está a la va­n­gua­r­dia de las nuevas te­c­no­lo­gías. Pre­sé­n­ta­te de una manera moderna y dinámica, ofre­cie­n­do a tus clientes po­si­bi­li­da­des de in­ter­ac­ción co­m­ple­ta­me­n­te nuevas. En España, Voice as UI todavía tiene el encanto de lo nuevo y puede convertir las ac­ti­vi­da­des banales en una ex­pe­rie­n­cia.

Como producto de la empresa Amazon, Alexa se beneficia de un enorme alcance. Junto con Google, la empresa domina el mercado de los altavoces in­te­li­ge­n­tes. Los co­n­su­mi­do­res perciben el smart speaker como un medio re­vo­lu­cio­na­rio y esto da paso a un canal de co­mu­ni­ca­ción co­m­ple­ta­me­n­te nuevo para el marketing. En el área de atención al cliente, por ejemplo, Alexa ofrece la opo­r­tu­ni­dad de pe­r­so­na­li­zar los procesos de co­mu­ni­ca­ción au­to­ma­ti­za­dos.

Por el momento, los asi­s­te­n­tes de habla virtuales siguen ce­n­trá­n­do­se en una función de ase­so­ra­mie­n­to. Pero en el futuro, los smart speakers harán posible varias co­n­ve­r­sio­nes como, por ejemplo, la compra por comandos de voz. Alexa Skill se co­n­ve­r­ti­rá entonces en una sucursal virtual ubicada di­re­c­ta­me­n­te en el salón de tus clientes. Esto ya es una realidad para los miembros de Amazon Prime que pueden hacer compras de voz a través de Amazon Pay.

Ir al menú principal