Construccion de un altavoz casero con Alexa


Con Alexa Voice Service puede disfrutar de las funciones de Alexa sin necesidad de tener un dispositivo Amazon, integrando el asistente de voz en su propio dispositivo. La popular Raspberry Pi y Alexa han demostrado ser especialmente compatibles, ya que la Raspberry Pi no solo podría ser más económica en comparación con Amazon Echo y otros dispositivos similares, sino que también se puede adaptar y personalizar a gusto del usuario por ejemplo usando potentes altavoces HIFI , un display personalizado o cualquier cosa que se nos ocurra.

Configurar Alexa en la Raspberry Pi: requisitos para AlexaPi

No todas las versiones de la Raspberry cumplen con los requisitos para incorporar Alexa sobre todo si hablamos de versiones antiguas. En caso de la Raspberry Pi 2 (modelo B) es una de las recomendadas para poder utilizar el asistente de control de voz de manera óptima pues es algo antigua y de este modo le podemos dar una segunda vida .Si optamos por una Raspberry Pi 3 o 4, nos ahorraremos complicaciones, porque estos modelos ya vienen con adaptadores WLAN de serie, pero lógicamente no tiene demasiado sentido comprar una RPi4 cuando podemos adquirir un altavoz Amazon echo por unos 50€

Por cierto no olvide que excepto que use un hub de puertos USB el modelo económico la Raspberry Pi 3 de un puerto USB no nos servirá , ya que necesitaremos al menos dos puertos USB ( para el micrófono y la salida de audio), como mas adelante explicaremos.

Además, necesitaremos los siguientes accesorios para utilizar Alexa en la Raspberry Pi:

  • Tarjeta microSD de al menos 8 GB (idealmente 16 GB o más)
  • Cargador USB de al menos 2000 mAh
  • Microfono y altavoz(*)

Convertir la Raspberry Pi en altavoz de Alexa

Antes de configurar el asistente de control de voz, primero, en caso de no tenerlo ya instalado debe instalar un sistema operativo en la Raspberry en la tarjeta SD que vayas a utilizar. Se recomienda Raspbian, que cuenta con el respaldo oficial de Raspberry Pi Foundation y que puede descargarse como un archivo de imagen . Realmente no es demasiado difícil , pues solo necesitamos descargar la imagen correspondiente a nuestro modelo de Raspberry Pi directamente desde la página web de la fundación ,descomprimir el archivo en la tarjeta SD y abrirlo para iniciar la instalación de raspbian en la sd

Después de instalar Raspbian en la SD, ya puede colocarla en la RPi y poner Alexa en marcha siguiendo unos sencillos pasos.

0- Conexiones del micrófono y la salida de audio

Aunque incluya una tarjeta de sonido la RPi , esta es de una calidad muy pobre ,por lo ante todo es imprescindible contar con los siguientes elementos:

Para mejorar el sonido, también tiene la opción de conectar una tarjeta de sonido USB a la Raspberry. Además, si no desea realizar la instalación y la configuración del sistema operativo y de Alexa de forma totalmente remota desde el ordenador (con el llamado modo headless), es importante conectar la pantalla, el teclado y el ratón al miniordenador.

1- Crear una cuenta de desarrollador de Amazon

Para acceder a Amazon Voice Service, necesita una cuenta de desarrollador de Amazon, que puede crear accediendo a la página Amazon Developer. Haga clic en “Identificarseˮ y, luego, seleccione “Crea tu cuenta deˮ. También puede iniciar sesión con su cuenta normal de Amazon si ya tiene una.

Servicios para desarrolladores de Amazon: página de inicio
Con una cuenta de Amazon Developer puedes utilizar los diversos servicios para desarrolladores de Amazon.

Introduzca sus datos de registro (nombre, dirección de correo electrónico y contraseña) y vuelva a hacer clic en “Crea tu cuenta deˮ.

Amazon Developer: creación de cuenta
Si ya tiene una cuenta normal de Amazon, le servirá para utilizar las herramientas para desarrolladores.

Después, iniciee sesión automáticamente en la zona de desarrolladores. Sin embargo, antes de poder utilizar las herramientas, como Alexa Voice Server, necesitará añadir más datos personales. Para ello, haz clic en “Finalizar registroˮ en la barra de menú superior.

2-Registrar la Raspberry Pi en Alexa Voice Service

Una vez haya proporcionado los datos requeridos y aceptado los términos y condiciones de uso, podrá acceder al panel de desarrolladores, que le permitirá ver y administrar tus diversos proyectos de Amazon. Bajo la categoría amazon alexa se encuentra el botón “Alexa Voice Serviceˮ, donde puede iniciar la activación de la Raspberry para utilizar el asistente de control de voz:

Dashboard de Amazon Developer
En el panel de control puede consultar informes del estado de tus proyectos de Amazon Developer y anuncios sobre nuevas funciones, entre otros datos.

En el siguiente menú, haga clic en el botón “GET STARTEDˮ. Amazon le solicitará algunos datos sobre el proyecto planificado.

Amazon Developer: datos sobre el producto
A diferencia del nombre del producto, la ID del producto no puede contener espacios.

En los campos de “Product nameˮ y “Product IDˮ, por ejemplo, puede introducir “AlexaPiˮ o «RaspberryPiAlexa».

Como tipo de producto, seleccione la opción “Device with Alexa built-inˮ (dispositivo con Alexa incorporado). Responda que no a la pregunta de “Will your device use a companion app?ˮ.

En la lista desplegable de “Product categoryˮ, seleccione la opción de “Wireless Speakersˮ. En la descripción del producto, no es necesario extenderse mucho: basta con una breve descripción como “Raspberry Pi Alexa Speakerˮ.

Como nuestra intención es configurar la Raspberry Pi para Alexa como altavoz clásico, exclusivamente 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 interacción deseada.

Marque 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á específicamente diseñado para niños.

3- Crear un perfil de seguridad LWA

En el siguiente paso, debe 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 verificarlo. Para ello, haga clic en “CREATE NEW PROFILEˮ y, a continuación, escriba un nombre adecuado y una breve descripción del perfil:

Menú de Amazon Developer: LWA Security Profile
El perfil de seguridad obligatorio LWA vincule los datos de usuario y las credenciales de seguridad a uno o más productos.

Después de hacer clic en “NEXTˮ, aparecera otro menú en el que tiene que especificar las direcciones URL para la autenticación LWS. Introduzca aquí las siguientes direcciones (y guárdalas pulsando en “ADDˮ):

  • Allowed origins: localhost
  • Allowed return URLs: localhost/authresponse

Después, revise las condiciones de Amazon y Alexa Voice Service, marque la casilla de consentimiento y finalize el proceso de creación del perfil pulsando el botón “FINISHˮ:

Especificación de las URL de autenticación LWA durante el proceso de registro
Tiene la opción de añadir varias URL, así como de eliminarlas en cualquier momento pulsando el icono de equis.

Si la configuración se llevó a cabo correctamente, verá una notificación de Amazon en una ventana emergente que lo confirmará.

4- Registrar la información del producto y del cliente

A partir de ahora, el perfil que acaba de crear para tu AlexaPi estará siempre disponible en “Productsˮ. Sin embargo, en este punto, antes de pasar a instalar Alexa, debe echar un vistazo a los datos del producto y del cliente necesarios para configurar el asistente de control de voz.

Para ello, haga clic en el perfil de la Raspberry en la descripción general del producto y tome nota de los datos que figuran bajo “Client IDˮ y “Client secretˮ. La información más importante en relación con el producto es el “Product IDˮ, que equivale al nombre asignado al producto (en este tutorial, “AlexaPiˮ).

LWA: Lista de identificadores y claves de verificación
En el perfil del producto no solo puede consultar los datos de verificación, sino también habilitar funciones como las de Bluetooth o recordatorio.

5- Instalar la app Alexa en la Raspberry Pi

La forma más fácil de instalar Alexa en la Raspberry Pi es a través de la plataforma de desarrollo GitHub. Allí encontrará, entre otras cosas, la aplicación de ejemplo Alexa AVS Sample App, que permite instalar el software de control de voz en el miniordenador.

El requisito previo es disponer de un cliente Git, que se puede descargar inmediatamente después de efectuar una actualización rápida del sistema, si no está ya instalado de forma predeterminada. Para actualizar el software del sistema, introduzca, en primer lugar, los siguientes comandos en la terminal de Raspbian:

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

A continuación, es el turno del cliente git:

sudo apt-get install git

Con ayuda del cliente, descargue la aplicación de ejemplo AVS Sample App o clona el repositorio GitHub:

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

Después de transferir el repositorio de GitHub a la Raspberry Pi, transfiera los datos guardados durante el cuarto paso al archivo de instalación automatic_install.sh. Puede abrirlo con el editor de texto que prefieras como, por ejemplo, GNU nano.

Fragmento del archivo AVS-Sample-App “automatic_install.shˮ
Sustituya los marcadores de posición con tus datos individuales justo después del signo de igual (en la línea correspondiente).

Guarde los cambios e inicia la instalación de Alexa en la Raspberry Pi con el siguiente comando:

. automated_install.sh

6- Configuración durante la instalación

Ya durante la instalación del software de control de voz, debe realizar las primeras configuraciones y responder a algunas preguntas. Por ejemplo, al principio tiene que aceptar los términos y condiciones y el uso de aplicaciones de terceros (si procede).

En la siguiente pregunta, declara que ya tiene una cuenta de desarrollador de Amazon, mientras que en la tercera confirma los datos sobre el “Product IDˮ, el “Client IDˮ y el “Client secretˮ. En los tres casos, escriba «y» y, después, pulsa la tecla [Enter].

A continuación, aparece una de las opciones de configuración más importantes: la elección de la salida de voz deseada. Elija la opción es-ES para establecer el español como el idioma en el que se comunicará con Alexa.

Además, durante la instalación, debe determinar 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. Finalmente, debe especificar si deseas mantener la palabra de activación predeterminada (Alexa) o utilizar otro comando de voz para iniciar el asistente.

7-Autenticar el altavoz Raspberry-Pi de Alexa

Para autenticar la Raspberry, ahora necesita el Alexa Companion Service, una especie de interfaz o puerta de enlace para establecer la conexión entre el miniordenador y los servidores de AVS. Para utilizar este servicio, cambie al directorio adecuado mediante la terminal y, después, inicie la aplicación con el servicio de paquetes npm. Para ello, introduzca los siguientes comandos uno tras otro:

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

Si se ha iniciado correctamente, la terminal muestra el mensaje “Listening on Port 3000ˮ. Minimize la ventana de la terminal y abre una nueva instancia del símbolo del sistema. 

Es importante minimizar y no cerrar la ventana de la terminal en la que se ha iniciado Alexa Companion Service. El servicio debe ejecutarse en segundo plano para que la Raspberry Pi pueda comunicarse con los servidores de Alexa Voice.

El siguiente paso es abrir el directorio del cliente de Companion. Como está programado en Java, puedes utilizar Maven, la herramienta de gestión de proyectos Java (mvn):

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

Unos segundos después de introducir el comando, se abre una ventana de diálogo emergente que le pide que acceda a una URL específica con un navegador para registrar la Raspberry. Acepte la solicitud haciendo clic en “Aceptarˮ. El enlace se abrirá automáticamente en el navegador predeterminado

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

En el navegador, verá la página de inicio de sesión de Amazon o, en algunos casos, el mensaje de que el sitio web no está disponible. Esto último, sin embargo, no supone ningún problema: no tiene más que hacer clic en “Advancedˮ (avanzado) en la esquina inferior izquierda y, después, en “Proceed to localhostˮ (continuar a localhost) para acceder a la ventana de inicio de sesión. Inicie sesión con tu cuenta de desarrollador de Amazon y confirme que su altavoz Raspberry Pi de Alexa puede obtener acceso a la cuenta de Amazon.

Si la autenticación se lleva a cabo con éxito, el navegador genera el mensaje de “device tokens readyˮ. Ahora pueds pulsar “OKˮ en la ventana del cliente Java que ignoraste previamente para finalizar la autenticación.

8-Activar la detección de la palabra de activación

Alexa ya está lista para usar, por lo que puede interactuar con el software de voz en cualquier momento a través del cliente AVS: para ello, haga clic en el icono del micrófono y formula la pregunta que desees. Sin embargo, para que Alexa también se active cuando diga la palabra de activación, como Alexa, necesitas iniciar el llamado Wake Word Agent. Para ello, en una nueva ventana de la terminal, accede al directorio del agente (KITT AI) y, luego, inícialo:

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

Si la terminal muestre el mensaje “Connected to AVS clientˮ, puede utilizar Alexa con normalidad mediante el control por voz.

9- Ultimo paso :crear un script de inicio automático para Alexa en la Raspberry Pi

Para evitar tener que iniciar Alexa manualmente cada vez que encienda la Raspberry Pi, también deberá crear un script de inicio que se ejecute automáticamente cada vez que se encienda la RPi.

Para hacerlo, en primer lugar, cree el archivo de script con el siguiente comando de terminal:

sudo nano alexa.sh

En el script, introduzca las siguientes 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 automatiza el proceso de autenticación descrito en el séptimo paso, iniciando primero el Alexa Companion Service y, después, el cliente Java. Posteriormente, inicia el Wake Word Agent descrito en el octavo paso.

Guarde el script y conceda al sistema los derechos de acceso necesarios mediante chmod:

sudo chmod +x alexa.sh

Para el script, cree un archivo de inicio automático:

sudo nano /home/pi/.config/autostart

Complete este archivo con el siguiente contenido, de modo que el script generado se ejecute automáticamente 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

Po

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.