Amazon Alexa, o si­m­ple­me­n­te, Alexa, es el asistente de voz de­sa­rro­lla­do por Amazon, integrado en altavoces in­te­li­ge­n­tes como Amazon Echo o Echo Dot. En estos di­s­po­si­ti­vos, Alexa actúa como una unidad de control central que responde a los comandos de voz del usuario. Por ejemplo, permite re­pro­du­cir canciones de Spotify o Amazon Music, escuchar au­dio­li­bros de Audible o acceder a noticias e in­fo­r­ma­ción me­teo­ro­ló­gi­ca. El software también es co­m­pa­ti­ble con varias apli­ca­cio­nes para organizar la rutina diaria: puedes tanto anotar como consultar las listas de la compra y las tareas pe­n­die­n­tes con suma rapidez, al igual que apuntar las citas en los ca­le­n­da­rios que quieras (incluidos los de Apple, Google y Outlook).

Este software de voz de Amazon también es co­m­pa­ti­ble con miles de di­s­po­si­ti­vos do­mé­s­ti­cos in­te­li­ge­n­tes, como lámparas, enchufes o te­r­mo­s­ta­tos, entre muchos otros, por lo que también permite au­to­ma­ti­zar el hogar.

Nota

Alexa se actualiza au­to­má­ti­ca­me­n­te a través de la nube. Además, Amazon pro­po­r­cio­na re­gu­la­r­me­n­te nuevas ca­ra­c­te­rí­s­ti­cas para este software de control de voz, de­no­mi­na­das Skills de Amazon, que pueden ad­qui­ri­r­se en la tienda Alexa Skills.

Con Alexa Voice Service puedes disfrutar de las funciones de Alexa sin necesidad de tener un di­s­po­si­ti­vo Amazon, in­te­gra­n­do el asistente de voz en tu propio di­s­po­si­ti­vo. La popular Raspberry Pi y Alexa han de­mo­s­tra­do ser es­pe­cia­l­me­n­te co­m­pa­ti­bles, ya que la Raspberry Pi no solo es más económica en co­m­pa­ra­ción con Amazon Echo y otros di­s­po­si­ti­vos similares, sino que también se puede adaptar y pe­r­so­na­li­zar a gusto del usuario.

Co­n­fi­gu­rar Alexa en la Raspberry Pi: re­qui­si­tos para AlexaPi

La Raspberry Pi se lanzó al mercado en 2012. Desde entonces, sus fa­bri­ca­n­tes han seguido de­sa­rro­lla­n­do este mi­nio­r­de­na­dor y han lanzado varias versiones, como Raspberry Pi 2 y 3 o Rasperry Pi Zero. Sin embargo, no todas las versiones de este ordenador de una sola placa cumplen con los re­qui­si­tos para in­co­r­po­rar Alexa. La Raspberry Pi 2 (modelo B) es una de las re­co­me­n­da­das para poder utilizar el asistente de control de voz de manera óptima. Dado que Alexa requiere estar conectada a Internet, en el caso de que utilices este modelo de Raspberry ne­ce­si­ta­rás también un adaptador WLAN si no deseas tener el mi­nio­r­de­na­dor conectado pe­r­ma­ne­n­te­me­n­te a Internet mediante un cable de red.

Si optas por una Raspberry Pi 3, te ahorrarás co­m­pli­ca­cio­nes, porque este modelo ya viene con un adaptador WLAN de serie.

Además, ne­ce­si­ta­rás los si­guie­n­tes ac­ce­so­rios para utilizar Alexa en la Raspberry Pi:

  • Tarjeta microSD de al menos 8 GB (idea­l­me­n­te 16 GB o más)
  • Cargador USB de al menos 2000 mAh
  • Micrófono USB
  • Altavoz USB o Bluetooth (en el caso de la Raspberry Pi 3)

Para mejorar el sonido, también tienes la opción de conectar una tarjeta de sonido USB a la Raspberry. Además, si no deseas realizar la in­s­ta­la­ción y la co­n­fi­gu­ra­ción del sistema operativo y de Alexa de forma to­ta­l­me­n­te remota desde el ordenador (con el llamado modo headless), es im­po­r­ta­n­te conectar la pantalla, el teclado y el ratón al mi­nio­r­de­na­dor.

Tutorial de AlexaPi: convertir la Raspberry Pi en altavoz de Alexa

Antes de co­n­fi­gu­rar el asistente de control de voz, primero debes instalar un sistema operativo en la Raspberry o en la tarjeta SD que vayas a utilizar. Se re­co­mie­n­da Raspbian, que cuenta con el respaldo oficial de Raspberry Pi Fou­n­da­tion y que puede de­s­ca­r­gar­se como un archivo de imagen di­re­c­ta­me­n­te desde la página web de la fundación. De­s­co­m­pri­me el archivo en la tarjeta SD y ábrelo para iniciar la Raspberry Pi e instalar el sistema operativo. En el siguiente vídeo se explica al detalle cómo hacerlo:

Si prefieres ahorrarte el paso de instalar el sistema operativo, también puedes comprar una tarjeta SD lista para usar en la que Raspbian ya esté prei­n­s­ta­la­do: se venden, por ejemplo, en la tienda online The Pi Hut.

Después de instalar Raspbian, ya puedes poner Alexa en marcha. En la siguiente guía te ex­pli­ca­mos cómo hacerlo paso a paso.

Primer paso: crear una cuenta de de­sa­rro­lla­dor de Amazon

Para acceder a Amazon Voice Service, necesitas una cuenta de de­sa­rro­lla­dor de Amazon, que puedes crear ac­ce­die­n­do a la página Amazon Developer. Haz clic en “Ide­n­ti­fi­car­seˮ y, luego, se­le­c­cio­na “Crea tu cuenta deˮ. También puedes iniciar sesión con tu cuenta normal de Amazon si ya tienes una.

Introduce tus datos de registro (nombre, dirección de correo ele­c­tró­ni­co y co­n­tra­se­ña) y vuelve a hacer clic en “Crea tu cuenta deˮ.

Después, inicia sesión au­to­má­ti­ca­me­n­te en la zona de de­sa­rro­lla­do­res. Sin embargo, antes de poder utilizar las he­rra­mie­n­tas, como Alexa Voice Server, ne­ce­si­ta­rás añadir más datos pe­r­so­na­les. Para ello, haz clic en “Finalizar registroˮ en la barra de menú superior.

Segundo paso: registrar la Raspberry Pi en Alexa Voice Service

Una vez hayas pro­po­r­cio­na­do los datos re­que­ri­dos y aceptado los términos y co­n­di­cio­nes de uso, podrás acceder al panel de de­sa­rro­lla­do­res, que te permitirá ver y ad­mi­ni­s­trar tus diversos proyectos de Amazon. Bajo la categoría amazon alexa se encuentra el botón “Alexa Voice Serviceˮ, donde puedes iniciar la ac­ti­va­ción de la Raspberry para utilizar el asistente de control de voz:

En el siguiente menú, haz clic en el botón “GET STARTEDˮ. Amazon te so­li­ci­ta­rá algunos datos sobre el proyecto pla­ni­fi­ca­do.

En los campos de “Product nameˮ y “Product IDˮ, por ejemplo, puedes in­tro­du­cir “AlexaPiˮ o «Ra­s­p­be­rr­y­PiA­le­xa».

Como tipo de producto, se­le­c­cio­na la opción “Device with Alexa built-inˮ (di­s­po­si­ti­vo con Alexa in­co­r­po­ra­do). Responde que no a la pregunta de “Will your device use a companion app?ˮ.

En la lista de­s­ple­ga­ble de “Product categoryˮ, se­le­c­cio­na la opción de “Wireless Speakersˮ. En la de­s­cri­p­ción del producto, no es necesario ex­te­n­de­r­se mucho: basta con una breve de­s­cri­p­ción como “Raspberry Pi Alexa Speakerˮ.

Como nuestra intención es co­n­fi­gu­rar la Raspberry Pi para Alexa como altavoz clásico, ex­clu­si­va­me­n­te por control de voz, marca las opciones de “Hands-freeˮ (control de voz desde cerca) y “Far-fieldˮ (control de voz desde lejos) como tipos de in­ter­ac­ción deseada.

Marca la casilla de “noˮ en las preguntas finales sobre el uso comercial, “Alexa for Businessˮ y “Alexa Mobile Accessory Protocolˮ, así como en la pregunta de si el proyecto está es­pe­cí­fi­ca­me­n­te diseñado para niños.

Tercer paso: crear un perfil de seguridad LWA

En el siguiente paso, debes crear un perfil de seguridad LWA (Login with Amazon, o iniciar sesión con Amazon) para la Raspberry Pi, con el fin de que Amazon pueda ve­ri­fi­car­lo. Para ello, haz clic en “CREATE NEW PROFILEˮ y, a co­n­ti­nua­ción, escribe un nombre adecuado y una breve de­s­cri­p­ción del perfil:

Después de hacer clic en “NEXTˮ, aparece otro menú en el que tienes que es­pe­ci­fi­car las di­re­c­cio­nes URL para la au­te­n­ti­ca­ción LWS. Introduce aquí las si­guie­n­tes di­re­c­cio­nes (y guárdalas pulsando en “ADDˮ):

  • Allowed origins: https://localhost:3000
  • Allowed return URLs: https://localhost:3000/au­th­re­s­po­n­se

Después, revisa las co­n­di­cio­nes de Amazon y Alexa Voice Service, marca la casilla de co­n­se­n­ti­mie­n­to y finaliza el proceso de creación del perfil pulsando el botón “FINISHˮ:

Si la co­n­fi­gu­ra­ción se llevó a cabo co­rre­c­ta­me­n­te, verás una no­ti­fi­ca­ción de Amazon en una ventana emergente que lo co­n­fi­r­ma­rá.

Cuarto paso: registrar la in­fo­r­ma­ción del producto y del cliente

A partir de ahora, el perfil que acabas de crear para tu AlexaPi estará siempre di­s­po­ni­ble en “Productsˮ. Sin embargo, en este punto, antes de pasar a instalar Alexa, debes echar un vistazo a los datos del producto y del cliente ne­ce­sa­rios para co­n­fi­gu­rar el asistente de control de voz. Para ello, haz clic en el perfil de la Raspberry en la de­s­cri­p­ción general del producto y toma nota de los datos que figuran bajo “Client IDˮ y “Client secretˮ. La in­fo­r­ma­ción más im­po­r­ta­n­te en relación con el producto es el “Product IDˮ, que equivale al nombre asignado al producto (en este tutorial, “AlexaPiˮ).

Quinto paso: instalar Alexa en la Raspberry Pi

La forma más fácil de instalar Alexa en la Raspberry Pi es a través de la pla­ta­fo­r­ma de de­sa­rro­llo GitHub. Allí en­co­n­tra­rás, entre otras cosas, la apli­ca­ción de ejemplo Alexa AVS Sample App, que permite instalar el software de control de voz en el mi­nio­r­de­na­dor. El requisito previo es disponer de un cliente Git, que se puede descargar in­me­dia­ta­me­n­te después de efectuar una ac­tua­li­za­ción rápida del sistema, si no está ya instalado de forma pre­de­te­r­mi­na­da. Para ac­tua­li­zar el software del sistema, introduce, en primer lugar, los si­guie­n­tes comandos en la terminal de Raspbian:

sudo apt-get update
sudo apt-get upgrade -y

A co­n­ti­nua­ción, es el turno del cliente git:

sudo apt-get install git

Con ayuda del cliente, descarga la apli­ca­ción de ejemplo AVS Sample App o clona el re­po­si­to­rio GitHub:

sudo git clone https://github.com/alexa/alexa-avs-sample-app.git
Nota

En 2018, la apli­ca­ción AVS Sample App estuvo algún tiempo en modo de ma­n­te­ni­mie­n­to, durante el cual no incluía las últimas funciones de Alexa. En tales casos, la solución AVS-Device-SDK sí incluye las ca­ra­c­te­rí­s­ti­cas más recientes del asistente de control de voz.

Después de tra­n­s­fe­rir el re­po­si­to­rio de GitHub a la Raspberry Pi, tra­n­s­fie­re los datos guardados durante el cuarto paso al archivo de in­s­ta­la­ción automatic_install.sh. Puedes abrirlo con el editor de texto que prefieras como, por ejemplo, GNU nano.

Guarda los cambios e inicia la in­s­ta­la­ción de Alexa en la Raspberry Pi con el siguiente comando:

. automated_install.sh

Sexto paso: primeros pasos de co­n­fi­gu­ra­ción durante la in­s­ta­la­ción

Ya durante la in­s­ta­la­ción del software de control de voz, debes realizar las primeras co­n­fi­gu­ra­cio­nes y responder a algunas preguntas. Por ejemplo, al principio tienes que aceptar los términos y co­n­di­cio­nes y el uso de apli­ca­cio­nes de terceros (si procede). En la siguiente pregunta, declaras que ya tienes una cuenta de de­sa­rro­lla­dor de Amazon, mientras que en la tercera confirmas los datos sobre el “Product IDˮ, el “Client IDˮ y el “Client secretˮ. En los tres casos, escribe «y» y, después, pulsa la tecla [Enter].

A co­n­ti­nua­ción, aparece una de las opciones de co­n­fi­gu­ra­ción más im­po­r­ta­n­tes: la elección de la salida de voz deseada. Elige la opción es-ES para es­ta­ble­cer el español como el idioma en el que te co­mu­ni­ca­rás con Alexa. Además, durante la in­s­ta­la­ción, debes de­te­r­mi­nar si la salida de sonido del altavoz Raspberry Pi de Alexa debe ser a través de un conector de clavija (3,5 mm) o del conector HDMI. Fi­na­l­me­n­te, debes es­pe­ci­fi­car si deseas mantener la palabra de ac­ti­va­ción pre­de­te­r­mi­na­da (Alexa) o utilizar otro comando de voz para iniciar el asistente.

Séptimo paso: au­te­n­ti­car el altavoz Raspberry-Pi de Alexa

Para au­te­n­ti­car la Raspberry, ahora necesitas el Alexa Companion Service, una especie de interfaz o puerta de enlace para es­ta­ble­cer la conexión entre el mi­nio­r­de­na­dor y los se­r­vi­do­res de AVS. Para utilizar este servicio, cambia al di­re­c­to­rio adecuado mediante la terminal y, después, inicia la apli­ca­ción con el servicio de paquetes npm. Para ello, introduce los si­guie­n­tes comandos uno tras otro:

cd ~/alexa-avs-sample-app/samples/companionService
npm start

Si se ha iniciado co­rre­c­ta­me­n­te, la terminal muestra el mensaje “Listening on Port 3000ˮ. Minimiza la ventana de la terminal y abre una nueva instancia del símbolo del sistema.

Nota

Es im­po­r­ta­n­te minimizar y no cerrar la ventana de la terminal en la que se ha iniciado Alexa Companion Service. El servicio debe eje­cu­tar­se en segundo plano para que la Raspberry Pi pueda co­mu­ni­car­se con los se­r­vi­do­res de Alexa Voice.

El siguiente paso es abrir el di­re­c­to­rio del cliente de Companion. Como está pro­gra­ma­do en Java, puedes utilizar Maven, la he­rra­mie­n­ta de gestión de proyectos Java (mvn):

cd ~/alexa-avs-sample-app/samples/javaclient
mvn exec:exec

Unos segundos después de in­tro­du­cir el comando, se abre una ventana de diálogo emergente que te pide que accedas a una URL es­pe­cí­fi­ca con un navegador para registrar la Raspberry. Acepta la solicitud haciendo clic en “Aceptarˮ. El enlace se abrirá au­to­má­ti­ca­me­n­te en el navegador pre­de­te­r­mi­na­do.

Nota

Después de hacer clic en “Aceptar, se abre otra ventana de diálogo en el cliente Java, a la que no debes prestar atención en este momento.

En el navegador, verás la página de inicio de sesión de Amazon o, en algunos casos, el mensaje de que el sitio web no está di­s­po­ni­ble. Esto último, sin embargo, no supone ningún problema: no tienes más que hacer clic en “Advancedˮ (avanzado) en la esquina inferior izquierda y, después, en “Proceed to lo­ca­lho­s­tˮ (continuar a localhost) para acceder a la ventana de inicio de sesión. Inicia sesión con tu cuenta de de­sa­rro­lla­dor de Amazon y confirma que tu altavoz Raspberry Pi de Alexa puede obtener acceso a la cuenta de Amazon.

Si la au­te­n­ti­ca­ción se lleva a cabo con éxito, el navegador genera el mensaje de “device tokens readyˮ. Ahora puedes pulsar “OKˮ en la ventana del cliente Java que ignoraste pre­via­me­n­te para finalizar la au­te­n­ti­ca­ción.

Octavo paso: activar la detección de la palabra de ac­ti­va­ción

Alexa ya está lista para usar, por lo que puedes in­ter­ac­tuar con el software de voz en cualquier momento a través del cliente AVS: para ello, haz clic en el icono del micrófono y formula la pregunta que desees. Sin embargo, para que Alexa también se active cuando digas la palabra de ac­ti­va­ción, como Alexa, necesitas iniciar el llamado Wake Word Agent. Para ello, en una nueva ventana de la terminal, accede al di­re­c­to­rio del agente (KITT AI) y, luego, inícialo:

cd ~/alexa-avs-sample-app/samples/wakeWordAgent/src
./wakeWordAgent -e kitt_ai

Si la terminal muestra el mensaje “Connected to AVS clientˮ, puedes utilizar Alexa con no­r­ma­li­dad mediante el control por voz.

Noveno paso: crear un script de inicio au­to­má­ti­co para Alexa en la Raspberry Pi

Para evitar tener que iniciar Alexa ma­nua­l­me­n­te cada vez que enciendas la Raspberry Pi, también debes crear un script de inicio que se ejecute au­to­má­ti­ca­me­n­te cada vez que se encienda el mi­nio­r­de­na­dor. Para hacerlo, en primer lugar, crea el archivo de script con el siguiente comando de terminal:

sudo nano alexa.sh

En el script, introduce las si­guie­n­tes líneas de código:

#!/bin/bash
lxterminal -l -e "cd ~/alexa-avs-sample-app/samples/companionService && npm start;" &
sleep 10s
lxterminal -l -e "cd ~/alexa-avs-sample-app/samples/javaclient && mvn exec:exec;" &
sleep 30s
lxterminal -l -e "cd ~/alexa-avs-sample-app/samples/wakeWordAgent/src && ./wakeWordAgent -e kitt_ai;" &

Esta secuencia de comandos au­to­ma­ti­za el proceso de au­te­n­ti­ca­ción descrito en el séptimo paso, iniciando primero el Alexa Companion Service y, después, el cliente Java. Po­s­te­rio­r­me­n­te, inicia el Wake Word Agent descrito en el octavo paso.

Guarda el script y concede al sistema los derechos de acceso ne­ce­sa­rios mediante chmod:

sudo chmod +x alexa.sh

Para el script, crea un archivo de inicio au­to­má­ti­co:

sudo nano /home/pi/.config/autostart

Completa este archivo con el siguiente contenido, de modo que el script generado se ejecute au­to­má­ti­ca­me­n­te cada vez que inicies la Raspberry Pi como altavoz de Alexa:

[Desktop Entry]
Comment=Comment
Exec=/home/pi/alexa.sh
Name=alexa.sh
Path=/home/pi/alexa.sh
Type=Shell
Ir al menú principal