Alexa Presentation Language for Audio o APL-A

Javi Mora Díaz
Sonara
Published in
3 min readSep 1, 2020

Recientemente en el evento de Alexa Live hemos tenido la suerte de ver cómo han publicado mejores herramientas y utilidades para hacer que nuestras Skills sean más completas. Una de ellas es Alexa Presentation Language for Audio o APL-A.

Pero diréis, y ¿qué hay de nuevo? Alexa ya podía reproducir audios, si es cierto, pero podía reproducir audios de forma secuencial, por ejemplo, imaginaos que tenemos una Skill que es un concurso, y al final al ganador se le da la enhorabuena y se reproduce un sonido, hasta ahora lo que se hacía era primero reproducir el sonido y luego Alexa hablaba. Ahora con APLA podemos hacer que mientras que Alexa está felicitando al ganador, simultáneamente reproduzca un sonido o una canción por detrás, sin duda esto enriquece bastante la experiencia de usuario.

Crear Multimodal Responses

Partimos de una Skill base creada con ask-cli v2 con el backend en NodeJS y Typescript.

Lo primero que debemos hacer es acceder al menú “Multimodal Responses”.

Como podéis ver este menú ha cambiado y si accedéis a el podéis comprobar que ahora accederéis a una nueva vista donde podéis crear tanto respuestas visuales (APL) como de audio (APL-A).

Multimodal Responses View

Para los que estéis acostumbrados a la vista de APL, veréis que la de audio es bastante más sencilla, únicamente tenemos la sección de APL-A, con la estructura de la template y la de Data con los datos que usará la template.

Podéis reproducir el ejemplo que se precarga en la vista y oír cómo funciona. En nuestro caso eliminaremos la plantilla actual y crearemos la nuestra, un poco mas simple:

Lo primero es definir el tipo de nuestro componente, en nuestro caso es Mixer de esta manera podemos reproducir a la misma vez un Speech component y un Audio component, es decir, podemos reproducir un audio mientras Alexa habla.

En nuestra plantilla hemos añadido un item de tipo Speech, donde incluiremos el mensaje que reproducirá Alexa en la bienvenida de la Skill, y un item de tipo audio con el sonido que se reproducirá a la vez.

En el data.json es donde podemos añadir la información a la hora de lanzar la Skill, al igual que hacemos con APL.

Creamos los ficheros en nuestra lambda:

En launch_document.json tenemos el template que hemos creado y en launch_data.json tenemos los datos para rellenar el template.

En nuestro caso hemos modificado la bienvenida a la Skill para que se reproduzca un sonido junto al mensaje:

Los formato de audio soportados son:

  • aac
  • mp3
  • ogg
  • opus
  • wav

En la documentación oficial podéis ver todos los requisitos que debe cumplir el audio que incorporemos a nuestro APL-A.

En definitiva creo que es una gran idea, y que sin abusar de este APL-A, podemos hacer que las Skills sean mucho mas interesantes y amenas.

Si os ha interesado el diseño visual en Alexa, también podéis ver:

--

--