Vamos a crear nuestro propio asistente de Google por menos dinero que el Google Home Mini (también un poco más limitado). Para ello podemos utilizar cualquier Raspberry Pi 2/3. Necesitamos:

  • Micrófono
  • Altavoz

Nos sirve cualquier micrófono y cualquier altavoz, tanto USB como HAT.

Este tutorial también sirve si tienes el Voice Kit Google AIY. Tanto la V1 como la V2. Cuesta sobre 30 euros en Ebay/Aliexpress.

Puedes utilizar diferentes altavoces y micrófonos.

Resumen del artículo

Desde nuestro ordenador

Vamos a primero a utilizar nuestro ordenador, tanto Windows como Mac. En esta parte vamos a registrarnos e utilizar los SDK de Google. La API gratuita está limitada a unas 500 solicitudes por día. Después de un par de meses probandolo de forma intensiva, lo máximo que he gastado es de unas 100 al día, así que no hay problema y es totalmente funcional.

1. Console Actions Google

Vamos a crear el proyecto: https://console.actions.google.com

Pulsamos sobre Add/Import Project. Rellenamos los datos. Necesitamos poner un nombre, el lenguaje y el país.

Raspberry Pi Google Home Assistant 0

Luego bajamos en esa misma página y buscamos: Device registration.

Raspberry Pi Google Home Assistant 1

2. 🔁 Registro

Al final del paso anterior, pulsamos el botón que dice Device Registration.

Raspberry Pi Google Home Assistant 2

Nos llevará a la consola del proyecto de nuestro asistente. Ahí pulsamos Register model para registrar nuestra Raspberry Pi. Los datos a continuación no son realmente importantes pero nos van a ayudar a identificarlo más adelante.

Raspberry Pi Google Home Assistant 3

Una vez completados los datos vamos a pulsar en Register Model. La siguiente pestaña es muy importante. Vamos a pulsar el botón Download OAuth 2.0 credentials y las guardamos en el Escritorio o en un lugar fácil de acceder. Luego ya pulsamos Next.

En Specify traits pulsamos Skip ya que no necesitamos ninguno.

Si en algún momento o por algún casual, perdemos las credenciales, podemos volver a descargarlas pulsando sobre los 3 puntos de nuestro dispositivo. También podemos añadir más Raspberry Pi repitiendo el proceso (no reutilizando las credenciales).

Raspberry Pi Google Home Assistant 4

3. Console Developers Google

Abrimos la siguiente web: https://console.developers.google.com/apis/library/embeddedassistant.googleapis.com

Seleccionamos en la parte superior, al lado de Google APIs. En la pestaña TODO está el proyecto que creamos anteriormente. Una vez tengamos seleccionado el proyecto, pulsamos Habilitar.

Raspberry Pi Google Home Assistant 5

Cuando se active, vamos a la pestaña Credenciales. Y después a la subpestaña Pantalla de consentimiento de OAuth. Ahí tan solo necesitamos añadir nuestro correo (por defecto). No lo va a utilizar nadie como correo electrónico de asistencia ya que somos nosotros los administradores y es local. No necesitamos añadir más datos. Pulsamos el botón Guardar.

Raspberry Pi Google Home Assistant 6

Volvemos a la subpestaña Credenciales. Pulsamos Crear CredencialesAyúdame a elegir.

  • ¿Qué tipo de API?: Google Assistant API
  • ¿Desde donde va a ser llamada la API?: Otra UI (consola, CLI...)
  • ¿A que datos va a acceder?: Datos usuario

En el siguiente paso pulsamos sobre el ID de cliente (letras azules) que creamos en el paso 2. Model ID = ID de cliente.

Raspberry Pi Google Home Assistant 7

Y ya solo tenemos que pulsar guardar.

3.1. Activar Google Cuenta

Vamos a la gestión de nuestra cuenta de Google: https://myaccount.google.com/activitycontrols

Lo recomendado es activar todo. Pero para el funcionamiento del asistente solo necesitamos:

  • Actividad en la Web y en Aplicaciones
    • Incluir el historial de Chrome y la actividad en sitios web, aplicaciones y dispositivos que usan los servicios de Google
  • Información de tus dispositivos
  • Actividad de Voz y Audio

5. Instalamos la imagen de sistema

Vamos a utilizar la imagen de sistema de AIY aunque no usemos el kit y usemos otro micrófono / altavoces USB o por HAT. Esta imagen ya contiene las librerías necesarias para el Google Assistant.

La descargamos desde: https://github.com/google/aiyprojects-raspbian/releases

Sin descomprimir el .img.xz descargamos y abrimos el programa Balena Etcher. Su uso es muy sencillo. Abrimos el programa, seleccionamos el .img.xz que acabamos de descargar. Luego seleccionamos la tarjeta SD que vamos a utilizar y por último pulsamos en Flash.

Desde la Raspberry Pi

Introducimos la SD en la Raspberry Pi, los altavoces, el micrófono y todos los dispositivos necesarios.

1. Configuración inicial

Por defecto ya tiene activado el SSH. Tan solo seguimos los pasos de la pantalla de inicio. Nos pedirá poner el idioma (desmarcar el US keyboard), la selección y contraseña del WiFi, actualizar y un reinicio para finalizar.

Abrimos la terminal y escribimos:

ip addr show

Ahí podemos ver nuestra IP.

Volvemos a nuestro ordenador Windows o Mac y descargamos Putty. Lo abrimos y ponemos la IP. Nos pedirá el usuario (por defecto: pi) y la contraseña. Ahora solo tenemos que copiar los siguientes comandos y luego en Putty al pulsar el botón izquierdo del ratón nos lo pegará.

Comprobamos que la actualización se ha hecho correctamente:

sudo apt update && sudo apt upgrade

1.1. Configuración del sonido

Podemos configurar el sonido desde el escritorio en el acceso directo Pulse Audio. Desactivamos las tarjetas que no son y activamos las que sí.

Luego probamos tanto los altavoces como el micrófono desde el acceso directo también en el escritorio Check Sound.

2. Las credenciales

Vamos a crear el archivo assistant.json con los datos de las credenciales del paso 2. Abrimos y copiamos las credenciales en Windows con el notepad, después ejecutamos este comando en la Raspberry Pi y una vez abierto las pegamos.

nano assistant.json

Para salir de nano pulsamos CTRL+X.

Ahora ya solo queda acceder a la carpeta de ejemplos y ejecutar el programa de Asistente de Google. En el primer inicio nos dirá ir a una URL para activar el asistente.

cd ~/AIY-projects-python/src/examples/voice
./assistant_library_demo.py

3. Script para iniciar el Asistente al inicio

Escribimos el comando:

sudo raspi-config

Y en la opción 3 Boot Options. Luego Wait for network at Boot. Pulsamos Yes y luego Finish. Tecla ESC para salir.

Ahora descargamos el Script inicio.sh:

wget a.luisiblogdeinformatica.com/as1 -O /home/pi/inicio.sh

Creamos un servicio para poder iniciar el asistente al inicio. Para ello solo tenemos que crear un archivo.

sudo nano /lib/systemd/system/asistente.service

Y pegamos lo siguiente:

[Unit]
Description=Asistente Google Home
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
Environment=DISPLAY=:0
ExecStart=/bin/bash /home/pi/inicio.sh
Restart=on-abort
User=pi
Group=pi

[Install]
WantedBy=multi-user.target

Activamos para que se ejecute al inicio, lo hacemos correr ahora mismo y comprobamos el estado del servicio.

sudo systemctl enable asistente.service
sudo systemctl start asistente.service
sudo systemctl status asistente.service

Ya solo queda comprobar que inicia una vez reiniciada la Raspberry Pi. Esperamos un momento después de reiniciar para que se ejecute automáticamente el script de inicio.

sudo reboot

Última tarea

Ya tienes tu asistente de Google trabajando en la Raspberry Pi. Ya solo queda que descargues la App de Google Home en tu móvil, tanto Android como IOS.

Desde la app puedes tener un control total de todos los dispositivos que vayas añadiendo. Prueba a comprar unas luces o unos enchufes y explotarás todo su potencial.

Tan solo tienes que ir a Amazon y buscar: luces wifiRaspberry Pi Google Home Assistant 8 (+ tu modelo de bombilla) o enchufe wifiRaspberry Pi Google Home Assistant 8. Hay muchos más aparatos que puedes incluir. Por ejemplo sensores, alarmas, cámaras. Cada día se desarrollan nuevos dispositivos compatibles.

Raspberry Pi Google Home Assistant 10

Puntuación