Ingeniería Inversa de Skills con Tortu

Utilizando la herramienta de diseño de diálogos para entender skills de otros desarrolladores.

Juan González
Diseñando para la Voz
7 min readAug 22, 2018

--

Parte esencial del diseño de skills para interfaces de voz es el desarrollo y prueba de diálogos. La creación de los scripts de interacción se pueden desarrollar con múltiples herramientas. De hecho, en una entrega anterior de Diseñando para la Voz hice la revisión de una de las mejores herramientas para este fin: Highland 2.

Una vez los diálogos tienen forma, el siguiente paso lógico para poder seguir validando nuestra interfaz es crear lo que se conoce como un árbol de diálogos. En este caso tomamos en cuenta todos los posibles escenarios y eventos que pueden tomar lugar en el proceso de interacción entre nuestra skill y el usuario final.

Para llevar a cabo este proceso existen igualmente una cantidad increíble de herramientas. En los aún infantes días de las plataformas de voz inteligentes, la más conocida es sin duda Storyline. Al hacer mi búsqueda inicial, casi todas las referencias y recomendaciones me llevaban justo a este producto. Sin embargo, Storyline es un overkill para el tema exclusivo de la creación de diálogos. Este servicio hace mucho más que diseñar el flujo de interacción. Te permite crear una skill completa sin necesidad de tener conocimientos de programación y yo realmente buscaba una herramienta simple y enfocada en una tarea específica.

Mientras espero el inicio de mi próximo proyecto para hacer una prueba exhaustiva de Storyline, un joven desarrollador — Pavel Gvay — me ha contactado para evaluar una herramienta que él mismo ha creado, que se acerca mucho más a lo que yo buscaba y que se encuentra en fase beta: Tortu.

Pavel comenta en el blog Hackernoon que luego de probar las principales herramientas disponibles para este fin y tropezar con las limitaciones de las mismas, decidió tomar cartas en el asunto y crear su propio producto.

En lugar de utilizar Tortu para modelar una skill completamente nueva, he decidido evaluar el producto como herramienta de apoyo para la creación de una variante de la skill Berry Bash, publicada dentro de los proyectos de ejemplo en el repositorio GitHub de Amazon.

Berry Bash es una skill con modalidad dual de quiz y diccionario que hace uso de los dispositivos con pantalla.

Con la intención de aplicar un poco de ingeniería inversa, he decidido utilizar Tortu como soporte de aprendizaje y análisis del trabajo realizado por otro desarrollador. No es necesariamente el caso de uso típico pensado para este tipo de herramientas, pero es eso precisamente lo que le añade un toque de curiosidad a mi proceso de evaluación.

A la hora de estudiar y evaluar una skill con cierto nivel de complejidad, entender su propósito y conocer las intenciones del desarrollador puede convertirse en una tarea complicada. A su vez, entender a fondo el diseño original es un paso clave para poder crear un producto nuevo basado en otro ya existente.

En este caso, utilizando la skill Berry Bash como punto de partida y realizando el análisis de interacción con la herramienta Tortu, me propongo crear una nueva skill en castellano que permita a los usuarios de habla hispana, entusiastas del mundo de Harry Potter, consultar detalles sobre los animales fantásticos y las criaturas mágicas de este universo creado por J.K. Rowling.

El primer punto de análisis donde hago foco a la hora de empezar a estudiar una skill de terceros es su modelo de interacción. En este caso, para Berry Bash el modelo de interacción es bastante simple, pero cuenta con algunas peculiaridades introducidas exclusivamente para las skills que soportan dispositivos con pantalla. El mejor lugar para entender los conceptos básicos del diseño de esta skill es en el canal de YouTube de su creador.

En el caso de Berry Bash existen dos escenarios principales de interacción:

  • El diccionario: donde se pueden consultar tanto por voz como por pantalla la información sobre las bayas.
  • El quiz: donde se puede poner a prueba el conocimiento del usuario sobre el aspecto de los distintos tipos de bayas.

En el caso de mi nueva skill “Animales Fantásticos” quiero utilizar el mismo formato y para ello debo proceder a reproducir el funcionamiento original de Berry Bash, entender todos los posibles escenarios, y proceder finalmente a reutilizar los principios que apliquen para mi propósito.

Con el fin de simplificar las imágenes y dejar el foco en las funcionalidades específicas de la skill, he decidido dejar por fuera los Intents básicos provistos por Amazon en el modelo de interacción (Cancel, Help, More, etc.)

El escenario de Bienvenida mantiene su funcionamiento original pero sustituye el concepto de bayas por animales fantásticos.

En Tortu podemos modelar los diferentes caminos y escenarios alternativos de la skill.

En el caso de Animales Fantásticos, el diccionario de las bayas se convertirá en un Manual del Magizoólogo. Al igual que sucede con el resto de las funcionalidades básicas de la skill original, se mantiene la lógica y se reemplazan los elementos básicos: bayas => animales fantásticos.

Modelado del árbol de diálogo para el Manual del Magizoólogo con Tortu.

Modelar las conexiones implementadas originalmente por el desarrollador de Berry Bash en Tortu me permite tener una visión general del comportamiento de la skill y de las posibles rutas que como desarrollador debo gestionar con el nuevo contexto, tanto de la nueva skill como del nuevo idioma utilizado.

En Tortu es posible especificar los Intents y las Utterances para cada elemento de interacción, tanto de la interfaz (Alexa en este caso) como del usuario final.

El quiz de las bayas en mi caso se convierte en el Quiz de las Criaturas y aunque su funcionamiento es el mismo, tanto el contenido como las imágenes y la gestión del idioma se personalizan.

Modelado del árbol de diálogo para el Quiz de las Criaturas con Tortu.

Es importante destacar que a la hora de adaptar skills desarrolladas en inglés, queda como responsabilidad de quien las adapta, el gestionar temas como el uso de los artículos, plural/singular, y sobre todo el género, ya que estas consideraciones no existen o se aplican de una forma distinta en el idioma inglés.

Por último, una de las características más interesantes de Tortu es la posibilidad de realizar las pruebas de interacción “en caliente” basándonos en los elementos que hemos modelado para cada escenario.

Prototipo interactivo del Quiz de las Criaturas modelado con Tortu.

Es posible revisar el histórico de cada paso, probar con distintas variantes de enunciados (utterances) y deshacer/rehacer acciones para poder facilitar la navegación en cada nivel. Parte esencial del proceso de pruebas y validación.

Repasar los textos en pantalla es otra de las actividades básicas a la hora de validar el modelo de interacción y evaluar como nuestra skill se comporta en diferentes casos. Leer en voz alta el texto que hemos diseñado en fases iniciales del proyecto nos permitirá crear una experiencia de usuario superior, idealmente reduciendo la fricción y “humanizando” lo más posible a la skill.

En resumen

Tortu es una herramienta interesante, con mucho potencial para crecer y muy fácil de utilizar. Me ha resultado increíblemente útil a la hora de modelar y estudiar la estructura de una skill que no he creado yo.

A la vez, me ha facilitado el ahondar en conceptos desconocidos para mi al momento de afrontar el proyecto y agilizar así el proceso de aprendizaje, edición y adaptación de la skill creada por Jamie Elliott Grossman.

Al momento de escribir las últimas líneas de este artículo, han liberado una nueva versión que incluye varias de las mejoras que ya me apuntaba en la lista de deseos para el futuro. El desarrollo de software es así de dinámico estos días :-)

Lo que aún extraño en esta versión (beta)

  • Echo en falta la posibilidad de alternar de manera automática y aleatoria los enunciados (utterances) que he configurado en mi modelo de interacción.
  • Me gustaría poder indicar valores para los ciclos y poder realizar una prueba de funcionalidades como la del quiz de una forma más realista, aún cuando sea con un modelo de datos pequeño.
  • Quisiera poder trabajar en equipo — colaboración en línea — para poder editar y validar en tiempo real con otras personas involucradas en el proceso de desarrollo.

Tortu es actualmente una herramienta gratuita y cualquier persona puede darse de alta para probar la versión beta.

¿Conoces la herramienta y me ha quedado algo interesante por mencionar? ¡Déjalo en la sección de comentarios!

Gracias por leer,

Juan.

Diseñando para la Voz es una iniciativa personal de Juan González Ponce que trae contenido relacionado al mundo del desarrollo de Alexa Skills para el servicio de Amazon, en Castellano, con la finalidad de compartir ideas y lecciones aprendidas en el camino.

--

--