Tutorial parte 1: Desarrolla aplicaciones de voz multiplataforma con VOXA

Octavio Menocal
5 min readSep 9, 2019
Imagen vía www.supercoloring.com y adaptada al contexto de dispositivos inteligentes

Este es el primer artículo de una serie de 5, donde aprenderás porqué es una buena idea usar un framework multi plataforma para tu siguiente proyecto de aplicación de voz. También explicaré lo que haremos para crear un juego multi plataforma para Alexa y el Asistente de Google desde cero para aprovechar las ventajas de las APIs de VOXA.

Para el tiempo que este artículo fue escrito, ya habían pasado 4 años desde que el primer kit de desarrollo fue lanzado para una de las primeras plataformas de voz: Amazon Alexa. Desde entonces, la plataforma ha evolucionado asombrosamente, y otros competidores se han unido al mercado. Hablo del Asistente de Google, Cortana, Siri, Samsung Bixby, y otros.

Las compañías que crearon estas plataformas también han creado frameworks para que los desarrolladores puedan crear aplicaciones para sus plataformas. Y he aquí el dilema número 1 para desarrolladores: si quiero crear mi skill en mas de 1 plataforma: ¿ debería escribir mi código en 2 o 3 frameworks distintos?

Déjame decirte lo que me respondí a mí mismo: OCTAVIO, POR FAVOR NO!!! No lo hagas :D. En su lugar, usa un framework que soporte algunas de esas plataformas o todas ellas.

Bueno, eso es lo que he hecho desde entonces para desarrollar skills para Alexa y actions para Google Assistant. Escogí VOXA, un framework escrito en Node.js que implementa los principios de máquinas de estado y MVC para desarrollar aplicaciones de voz para Alexa y Google Assistant. Además, también soporta desarrollo de apps para las plataformas Telegram y Facebook Messenger.

Si eres un desarrollar que empieza a investigar sobre el mundo de las aplicaciones de voz para Alexa y Google Assistant, o un diseñador de experiencia de usuario sin habilidades de programación, o, un desarrollador experimentado que ha creado skills/actions con otros frameworks como el Alexa SDK o el Google Assistant SDK, encontrarás en VOXA una extraordinaria herramienta para trabajar de forma colaborativa con tu equipo.

Por tanto, quiero mostrarte como puedes crear fácilmente skills para Alexa y Google Assistant usando VOXA. El framework también tiene una genial interfaz de línea de comandos (CLI, por sus siglas en inglés): VOXA-CLI, con un grupo de comandos útiles para crear un proyecto con VOXA, descargar uterancias y respuestas, y mucho más. Sí estás trabajando en equipo con otros desarrolladores y/o Diseñadores de Interfaces de voz (VUI, por sus siglas en inglés), e incluso con un Project Manager, todos ellos pueden colaborar en la parte VUI de la aplicación.

Esto es extremadamente útil, por ejemplo, cuando un diseñador VUI quiere agregar, modificar, o eliminar uterancias para los intents de la aplicación, o quiere modificar una respuesta. Podrían haber muchas formas para obtener estos cambios del diseñador. Por ejemplo:

  • Tener un único archivo en el proyecto, y que el diseñador VUI haga los cambios al archivo y lo suba de nuevo al proyecto.
  • Subir el código a un repositorio Git repository y que el diseñador VUI abra un Pull Request con los cambios del archivo.

Mientras esas 2 propuestas son opcionales, el diseñador VUI tal vez no sepa Git. O podría cometer un error en el archivo. Con VOXA, puedes crear una hoja de Google de Excel, y que el diseñador VUI, la persona de mercadeo, el Project Manager o cualquiera a cargo de la parte VUI, modifique la hoja de Excel y con un simple comando en tu terminal, puedes descargar sus cambios para crear el archivo de respuestas de la aplicación, el modelo de interacción para Alexa y el agente de Dialogflow para Google Assistant.

Este es nuestro caso de uso: el juego se llamará, Quick Maths: El usuario necesita hacer un cálculo matemático tan rápido como pueda, si ellos responden correctamente ellos recibirán una puntuación acorde a las siguientes reglas:

El usuario responde correctamente en 1- 2 segundos: 10 puntos

El usuario responde correctamente en 3–4 segundos: 8 puntos

El usuario responde correctamente en in 5–6 segundos: 4 puntos

El usuario responde correctamente en más de 6 segundos: 1 punto

Y la parte interesante es esta: si el usuario no responde correctamente, se deducirán 2 puntos de su puntuación 😈😈😈 si tienen 0 puntos, no se deduce nada ;)

Super simple, cierto? Bueno, lo haremos un poquito más complejo. Vamos a obtener la información del usuario con VOXA:

  • Obtener perfil del Usuario: necesitaremos el nombre del usuario para saludar al usuario con su nombre. Y el correo del usuario para guardar la información en la base de datos. Configuraremos Account Linking para Alexa y Google’s Sign-in para Assistant para obtener esta información.

La parte divertida será la siguiente: vamos a agregar una competencia a nuestro juego. El usuario con el puntaje más alto será el ganador de la competencia del mes. Mostraremos una tabla de liderazgo con los 10 puntajes más altos. Y a cómo debes estar pensando, agregaremos una suscripción. Se cobrará $0.99 al mes al usuario para continuar participando en la competencia.

¿Esto te suena a monetización?? SI !!!!!

Usaremos ISP para Alexa y Digital Goods para Google Assistant para esta característica. Y para hacerlo más interesante, le pediremos al usuario permiso para acceder a su ubicación para que podamos mostrar en la tabla de liderazgo de dónde son.

Los siguientes 4 artículos te mostrarán como configurar el proyecto con VOXA. Aquí están los detalles:

Parte 2: Configurar VOXA, Account Linking de Alexa, y Google’s Sign-In, intents y uterancias.

Parte 3: Desarrollar la lógica del juego, obtener el perfil del usuario y guardar el puntaje del usuario en AWS DynamoDB.

Parte 4: Agregar ISP para Alexa y Digital Goods para Google Assistant para la suscripción de la competencia y obtener ubicación del usuario.

Parte 5: Agregar tabla de liderazgo al juego y Unit Testing

Fin

Este fue el primer artículo de la serie donde mostraré que fácil es crear aplicaciones de voz con VOXA, y cómo podemos tomar ventajas de sus APIs para crear escenarios más complejos!

¡Gracias por leer! Asegúrate de leer los demás artículos de la serie.

Recuerda: No tires basura al océano!

--

--

Octavio Menocal

Software engineer at Soar.com. Nicaraguan developing Amazon Alexa Skills and actions for Google Assistant. Pingpong lover, big fan of Ma Long!