# Raspberry Pi y Alexa: tutorial de Alexa

[Amazon Alexa](https://developer.amazon.com/de/alexa "Página informativa sobre Amazon Alexa"), o simplemente, Alexa, es el asistente de voz desarrollado por Amazon, integrado en altavoces inteligentes como Amazon Echo o Echo Dot. En estos dispositivos, Alexa actúa como una **unidad de control central** que responde a los **comandos de voz** del usuario. Por ejemplo, permite reproducir canciones de Spotify o Amazon Music, escuchar audiolibros de Audible o acceder a noticias e información meteorológica. El *software* también es compatible con varias aplicaciones para **organizar la rutina diaria**: puedes tanto anotar como consultar las listas de la compra y las tareas pendientes con suma rapidez, al igual que apuntar las citas en los calendarios que quieras (incluidos los de Apple, Google y Outlook).

Este *software* de voz de Amazon también es compatible con miles de dispositivos domésticos inteligentes, como lámparas, enchufes o termostatos, entre muchos otros, por lo que también permite **automatizar el hogar**.

Nota Alexa se actualiza automáticamente a través de la nube. Además, Amazon proporciona regularmente nuevas características para este *software* de control de voz, denominadas [Skills de Amazon](https://www.ionos.es/digitalguide/online-marketing/vender-en-internet/alexa-skills/ "Alexa Skills"), que pueden adquirirse en la tienda Alexa Skills.

Con [Alexa Voice Service](https://developer.amazon.com/de/alexa-voice-service "Amazon-Developer-Feature: Alexa Voice Service") puedes disfrutar de las funciones de Alexa sin necesidad de tener un dispositivo Amazon, **integrando el asistente de voz en tu propio dispositivo**. La popular Raspberry Pi y Alexa han demostrado ser especialmente compatibles, ya que la Raspberry Pi no solo es 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.

## Configurar Alexa en la Raspberry Pi: requisitos para AlexaPi

La Raspberry Pi se lanzó al mercado en 2012. Desde entonces, sus fabricantes han seguido desarrollando este miniordenador 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 requisitos para incorporar Alexa. La Raspberry Pi 2 (modelo B) es una de las recomendadas 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 necesitarás también un adaptador WLAN si no deseas tener el miniordenador conectado permanentemente a Internet mediante un cable de red.

Si optas por una **Raspberry Pi 3**, te ahorrarás complicaciones, porque este modelo ya viene con un adaptador WLAN de serie.

Además, necesitarás 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
- 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 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.

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

Antes de configurar 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 recomienda **Raspbian**, que cuenta con el respaldo oficial de Raspberry Pi Foundation y que puede descargarse como un archivo de imagen directamente desde la [página web de la fundación](https://www.raspberrypi.org/downloads/raspbian/ "raspberrypi.org: centro de descargas de la Fundación Raspberry Pi"). Descomprime 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:

[YouTube video](https://www.youtube.com/watch?v=0Xo01pQFcn0)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é preinstalado: se venden, por ejemplo, en la tienda online [The Pi Hut](https://thepihut.com/ "The Pi Hut").

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

### Primer paso: crear una cuenta de desarrollador de Amazon

Para acceder a Amazon Voice Service, necesitas una cuenta de desarrollador de Amazon, que puedes crear accediendo a la [página Amazon Developer](https://developer.amazon.com/de/ "Amazon Developer Services y Tecnologías"). Haz clic en “**Identificarse**ˮ y, luego, selecciona “**Crea tu cuenta de**ˮ. También puedes iniciar sesión con tu cuenta normal de Amazon si ya tienes una.

[![Imagen: Servicios para desarrolladores de Amazon: página de inicio](https://www.ionos.es/digitalguide/fileadmin/_processed_/4/c/csm_amazon-developer-services_befa259030.webp "Servicios para desarrolladores de Amazon: página de inicio")](https://www.ionos.es/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/amazon-developer-services.jpg) Servicios para desarrolladores de Amazon: página de inicio Introduce tus **datos de registro** (nombre, dirección de correo electrónico y contraseña) y vuelve a hacer clic en “Crea tu cuenta deˮ.

[![Imagen: Amazon Developer: creación de cuenta](https://www.ionos.es/digitalguide/fileadmin/_processed_/6/b/csm_amazon-developer-create-account_d6d32da6d5.webp "Amazon Developer: creación de cuenta")](https://www.ionos.es/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/amazon-developer-create-account.png) Amazon Developer: creación de cuenta Después, inicia sesión automáticamente en la zona de desarrolladores. Sin embargo, antes de poder utilizar las herramientas, como Alexa Voice Server, necesitarás añadir más datos personales. 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 proporcionado los datos requeridos y aceptado los términos y condiciones de uso, podrás **acceder al panel de desarrolladores**, que te permitirá ver y administrar tus diversos proyectos de Amazon. Bajo la categoría ***amazon alexa*** se encuentra el botón “**Alexa Voice *Service***ˮ, donde puedes iniciar la activación de la Raspberry para utilizar el asistente de control de voz:

[![Imagen: Dashboard de Amazon Developer](https://www.ionos.es/digitalguide/fileadmin/_processed_/f/1/csm_amazon-developer-dashboard_14aaec6242.webp "Dashboard de Amazon Developer")](https://www.ionos.es/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/amazon-developer-dashboard.jpg) Dashboard de Amazon Developer En el siguiente menú, haz clic en el botón “**GET STARTED**ˮ. Amazon te solicitará algunos datos sobre el proyecto planificado.

[![Imagen: Amazon Developer: datos sobre el producto](https://www.ionos.es/digitalguide/fileadmin/_processed_/3/8/csm_amazon-developer-product-information-specification_9ef597b009.webp "Amazon Developer: datos sobre el producto")](https://www.ionos.es/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/amazon-developer-product-information-specification.jpg) Amazon Developer: datos sobre el producto En los campos de “**Product name**ˮ y “**Product ID**ˮ, por ejemplo, puedes introducir “AlexaPiˮ o «RaspberryPiAlexa».

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

En la lista desplegable de “**Product category**ˮ, selecciona 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.

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

### Tercer paso: crear un perfil de seguridad LWA

En el siguiente paso, debes crear un perfil de seguridad LWA (**L**ogin **w**ith **A**mazon, o iniciar sesión con Amazon) para la Raspberry Pi, con el fin de que Amazon pueda verificarlo. Para ello, haz clic en “**CREATE NEW PROFILE**ˮ y, a continuación, escribe un nombre adecuado y una breve descripción del perfil:

[![Imagen: Menú de Amazon Developer: LWA Security Profile](https://www.ionos.es/digitalguide/fileadmin/_processed_/1/7/csm_amazon-developer-lwa-security-profile-menu_052495b9c3.webp "Menú de Amazon Developer: LWA Security Profile")](https://www.ionos.es/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/amazon-developer-lwa-security-profile-menu.jpg) Menú de Amazon Developer: LWA Security Profile Después de hacer clic en “**NEXT**ˮ, aparece otro menú en el que tienes que especificar las direcciones URL para la autenticación LWS. Introduce aquí las siguientes direcciones (y guárdalas pulsando en “ADDˮ):

- Allowed origins: *https://localhost:3000*
- Allowed return URLs: *https://localhost:3000/authresponse*

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

[![Imagen: Especificación de las URL de autenticación LWA durante el proceso de registro](https://www.ionos.es/digitalguide/fileadmin/_processed_/4/e/csm_lwa-verification-urls-specified-during-the-registration-process_d7fd55e923.webp "Especificación de las URL de autenticación LWA durante el proceso de registro")](https://www.ionos.es/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/lwa-verification-urls-specified-during-the-registration-process.jpg) Especificación de las URL de autenticación LWA durante el proceso de registro Si la configuración se llevó a cabo correctamente, verás una notificación de Amazon en una ventana emergente que lo confirmará.

### Cuarto paso: registrar la información del producto y del cliente

A partir de ahora, el perfil que acabas de crear para tu AlexaPi estará siempre disponible 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 necesarios para **configurar el asistente de control de voz**. Para ello, haz clic en el perfil de la Raspberry en la descripción general del producto y toma 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ˮ).

[![Imagen: LWA: Lista de identificadores y claves de verificación](https://www.ionos.es/digitalguide/fileadmin/_processed_/a/0/csm_lwa-list-of-verification-ids-and-keys_88f5771642.webp "LWA: Lista de identificadores y claves de verificación")](https://www.ionos.es/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/lwa-list-of-verification-ids-and-keys.jpg) LWA: Lista de identificadores y claves de verificación ### 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 plataforma de desarrollo GitHub. Allí encontrarás, 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**, introduce, en primer lugar, los siguientes comandos en la terminal de Raspbian:

```none
sudo apt-get update
sudo apt-get upgrade -y
```

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

```none
sudo apt-get install git
```

Con ayuda del cliente, descarga la aplicación de ejemplo AVS Sample App o clona el [repositorio GitHub](https://github.com/shivasiddharth/headless-alexa-avs-sample-app "Alexa GitHub"):

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

Nota En 2018, la aplicación AVS Sample App estuvo algún tiempo en modo de mantenimiento, durante el cual no incluía las últimas funciones de Alexa. En tales casos, la solución [AVS-Device-SDK](https://github.com/alexa/avs-device-sdk/wiki "github.com – AVS-Device-SDK") sí incluye las características más recientes del asistente de control de voz.

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

[![Imagen: Fragmento del archivo AVS-Sample-App “automatic_install.shˮ](https://www.ionos.es/digitalguide/fileadmin/_processed_/8/c/csm_extract-from-the-avs-sample-app-file-automated_install.sh_146f118687.webp "Fragmento del archivo AVS-Sample-App “automatic_install.shˮ")](https://www.ionos.es/digitalguide/fileadmin/DigitalGuide/Screenshots_2020/extract-from-the-avs-sample-app-file-automated_install.sh.jpg) Fragmento del archivo AVS-Sample-App “automatic\_install.shˮ Guarda los cambios e inicia la **instalación** de Alexa en la Raspberry Pi con el siguiente comando:

```none
. automated_install.sh
```

### Sexto paso: primeros pasos de configuración durante la instalación

Ya durante la instalación del software de control de voz, debes realizar las primeras configuraciones y responder a algunas preguntas. Por ejemplo, al principio tienes que **aceptar los términos y condiciones** y el uso de aplicaciones de terceros (si procede). En la siguiente pregunta, declaras que ya tienes una **cuenta de desarrollador 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 continuación, aparece una de las opciones de configuración más importantes: la **elección de la salida de voz deseada**. Elige la opción es-ES para establecer el español como el idioma en el que te comunicarás con Alexa. Además, durante la instalación, debes 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, debes especificar si deseas mantener la **palabra de activación** predeterminada (Alexa) o utilizar otro comando de voz para iniciar el asistente.

### Séptimo paso: autenticar el altavoz Raspberry-Pi de Alexa

Para autenticar la Raspberry, ahora necesitas 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, cambia al directorio adecuado mediante la terminal y, después, inicia la aplicación con el **servicio de paquetes npm**. Para ello, introduce los siguientes comandos uno tras otro:

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

Si se ha iniciado correctamente, 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 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):

```none
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 te pide que accedas a una URL específica con un navegador para registrar la Raspberry. Acepta la solicitud haciendo clic en “Aceptarˮ. El enlace se abrirá **automáticamente en el navegador predeterminado**.

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á disponible. 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 localhostˮ (continuar a *localhost*) para acceder a la ventana de inicio de sesión. Inicia sesión con tu **cuenta de desarrollador de Amazon** y confirma que tu 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 puedes pulsar “**OK**ˮ en la ventana del cliente Java que ignoraste previamente para finalizar la autenticación.

### Octavo paso: activar la detección de la palabra de activación

Alexa ya está lista para usar, por lo que puedes interactuar 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 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:

```none
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 normalidad mediante el control por voz.

### Noveno paso: crear un script de inicio automático para Alexa en la Raspberry Pi

Para evitar tener que iniciar Alexa manualmente cada vez que enciendas la Raspberry Pi, también debes crear un *script* de inicio que **se ejecute** automáticamente cada vez que **se encienda el miniordenador**. Para hacerlo, en primer lugar, crea el archivo de *script* con el siguiente comando de terminal:

```none
sudo nano alexa.sh
```

En el *script*, introduce las siguientes líneas de código:

```none
#!/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.

Guarda el *script* y concede al sistema los **derechos de acceso** necesarios mediante *chmod*:

```none
sudo chmod +x alexa.sh
```

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

```none
sudo nano /home/pi/.config/autostart
```

Completa 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:

```none
[Desktop Entry]
Comment=Comment
Exec=/home/pi/alexa.sh
Name=alexa.sh
Path=/home/pi/alexa.sh
Type=Shell
```


This is a markdown version of: [https://www.ionos.es/digitalguide/servidores/configuracion/raspberry-pi-y-alexa/](https://www.ionos.es/digitalguide/servidores/configuracion/raspberry-pi-y-alexa/) for AI/LLM consumption.