Construir Amazon Echo -Alexa- con una RaspberryPi

FullSetupAlexa es un asistente virtual desarrollado por Amazon, utilizado por primera vez en los altavoces inteligentes Amazon Echo y Amazon Echo Dot creados en Amazon Lab126. Cuenta con la capacidad de interactuar a través de la voz, reproducir música, crear listas de tareas pendientes, establecer alarmas, reproducir podcasts, reproducir audiolibros y proveer información en tiempo real del clima, tráfico y noticias entre otros. Alexa puede también controlar varios dispositivos inteligentes tomando el rol de sistema de automatización del hogar (domótica). Los usuarios pueden extender las habilidades de Alexa instalando «skills» (funcionalidades adicionales desarrolladas por terceros) que se asemejan a «apps».

Para construir nuestra Alexa necesitamos:

  • Rasberry Pi 3B p 3B+
  • ReSpeaker 2 Mics Pi HAT (Comprar aquí)
  • Parlantes
  • Teclado
  • Mouse
  • Pantalla con soporte HDMI

 

Paso 1) Primero (recomendamos hacer la instalación con la imágen de disco de seeed que puede descargar en aquí, si deseas usar la imágen oficial de raspberry, puedes seguir con la oficial, aunque puedes tener problemas con el Kernel) debemos instalar Raspbian con Noobs (versión Desktop), por lo cual puede seguir la siguiente documentación: https://www.raspberrypi.org/documentation/installation/noobs.md y finalmente realizamos conexión a nuestra red de Internet. Y luego cambiamos los repositorios que allí ya trae por los oficiales de Raspbian en el archivo /etc/apt/sources.list

deb http://archive.raspbian.org/raspbian stretch main contrib non-free
deb-src http://archive.raspbian.org/raspbian stretch main contrib non-free

Luego adicionamos la llave de los repositorios y actualizamos nuestro sistema:

wget https://archive.raspbian.org/raspbian.public.key -O - | sudo apt-key add -
sudo apt update
sudo apt dist-upgrade
reboot

Paso 2) Ahora que nuestro dispositivo tiene conectividad a Internet, abra un terminal y verificamos que debe aparecer en el directorio /home/pi. Copie y pegue el siguiente comando en la ventana de su terminal y presione Enter.

wget https://raw.githubusercontent.com/alexa/avs-device-sdk/master/tools/Install/setup.sh
wget https://raw.githubusercontent.com/alexa/avs-device-sdk/master/tools/Install/pi.sh
wget https://raw.githubusercontent.com/alexa/avs-device-sdk/master/tools/Install/genConfig.sh

Paso 3) Creamos en el directorio /home/pi un archivo llamado config.txt y le agregamos el siguiente contenido:

DEVICE_SERIAL_NUMBER="123456"
CLIENT_ID=""
PRODUCT_ID=""

config

Paso 4) Es hora de copiar y pegar las credenciales de su producto en su archivo de configuración. En su navegador web, ingrese al panel de AVS Amazon donde puede ver todos sus productos asociados con su cuenta de desarrollador. Si ha cerrado sesión, vuelva a iniciar sesión y haga clic en el enlace de la Consola de desarrollador en la esquina superior derecha de su navegador. Luego haga clic en el botón «SERVICIO DE VOZ DE ALEXA» en la navegación para regresar a su AVS Console. Ingresamos a la opción CREATE PRODUCT y llenamos los campos con la siguiente información:

Product Name: RaspberryPi
Product ID: RaspberryPi
CHECK en Device with Alexa built-in
Will your device use a companion app: No
Product category: Other
Brief product description: RaspberryPi
How will end users interact with your product: CHECK in Touch-initiated & Hands-free
Do you intend to distribute this product commercially: No
Will your device be used for Alexa for Business: No
Is this a children’s product or is it otherwise directed to children younger than 13 years old: No

Presionamos la opción Next y luego presionamos en CREATE NEW PROFILE, en los dos campos que aparecen colocamos: RaspberryPi y NEXT

Luego aceptamos términos y condiciones (si estás de acuerdo, claro está) CHECK en I agree to theAmazon Developer Services Agreement,including theAlexa Voice Service Program Requirements.  Y presionamos la opción FINISH

Paso 5) Abrimos el archivo config.txt y en los campos en cuestión colocamos:

PRODUCT_ID="RaspberryPi"
CLIENT_ID=VER_SIGUIENTE_IMAGEN

Haga clic en el enlace Perfil de seguridad en la sección Detalles y administración, luego vaya a Otros dispositivos y plataformas desde la Web – Android / Kindle – iOS – Otras opciones de dispositivos y plataformas.

Profile

El archivo debería quedar algo como lo siguiente, guardamos cambios…

DEVICE_SERIAL_NUMBER="1234"
CLIENT_ID="amzn1.application-oa2-client.12345678901234567890123456789012"
PRODUCT_ID="RaspberryPi"

Adicionalmente descargue el archivo de configuración JSON que ofrece AVS de Amazon, y ubíquelo en el mismo directorio /home/pi/

Paso 6) Abre la terminal y coloca el siguiente comando, está pendiente de la shell ya que hará algunas preguntas donde deberemos aceptar, este proceso de compilación tardará algún tiempo… así que paciencia…

cd /home/pi/
sudo bash setup.sh config.json [-s 123456]

Luego hará una pregunta, escribimos AGREE y continuamos el proceso, al final visualizaremos lo siguiente, si todo salió en orden:

Complete

 

Ahora solo necesitaos iniciar la aplicación de muestra y obtener un token de actualización de AVS para que su dispositivo pueda autenticarse con la nube a través de Iniciar sesión con Amazon (LWA). Para ello colocamos el comando:
cd /home/pi/
sudo bash startsample.sh

Ingresamos ahora al sitio https://www.amazon.com/a/code e ingresamos el Token de autorización que nos ha proporcionado el Script.

Nota: Si la ventana de su terminal muestra repetidamente el mensaje de verificación de autorización, desplácese hacia arriba hasta que encuentre el código requerido. Debe mantener la aplicación de muestra en ejecución mientras ingresa el código.

CBL

Para finalizar y empezar a hablar con Alexa, colocamos el siguiente comando:

sudo bash startsample.sh

Para cambiar el idioma presionamos la tecla ‘c’ y seguimos los pasos que el asistente indica. Feliz Hacking!  Puedes configurar otras opciones más en: https://alexa.amazon.com/spa/index.html