Google Assistant con Raspberry Pi

publicado en: Raspberry Pi | 0

En este proyecto vamos a realizar la instalación de Google Assistant en una Rpi 3 modelo B.

Para ello vamos a utilizar el siguiente material:

1.- Raspberry Pi
2.-Microfono USB (puede servir el que lleva incorporado una webcam)
3.-Altavoz externo (via USB o salida jack de audio 3,5mm de Rpi)

Los pasos a seguir son los siguientes:

  1. Instalación del SO a la Rpi
  2. Instalación de Python
  3. Creación de un entorno virtual de Python
  4. Creación del proyecto Google (Google Action Console)
  5. Activación credenciales Oauth 2.0
  6. Configuración de audio Rpi (micrófono y altavoz)
  7. Test

1.- SO Raspberry Pi

Realizaremos la instalación de el SO Raspbian.

Para grabar la imagen a la targeta SD, podemos utilizar Etcher.

2.- Instalación de Python

Para realizar los siguientes pasos es muy recomendable hacerlos desde la propia Rpi. 

Vamos a actualizar la Rpi:

sudo apt-get update

Posteriormente, instalamos Python y el entorno virtual.

sudo apt-get install python3-dev python3-venv
python3 -m venv env
env/bin/python -m pip install --upgrade pip setuptools wheel
source env/bin/activate

3.- Instalación entorno virtual de Python

Una vez dentro del entorno virtual (podemos observar env en la línea de comandos), procedemos a instalar las dependéncias correspondientes:

sudo apt-get install portaudio19-dev libffi-dev libssl-dev libmpg123-dev
python -m pip install --upgrade google-assistant-library==1.0.1
python -m pip install --upgrade google-assistant-sdk[samples]==0.5.1

4.- Creación del proyecto Google

Accedemos a la web Actions de Google  y creamos un nuevo proyecto rellenando los pasos y asignamos un nombre.

Activamos la Google Assistant Api.

Activamos los Controles de Activitad (Activity Controls): Activitad en la web, Información de tus dispositivos y Activitad de voz y audio.

5.- Creación de credenciales Oauth 2.0

Procedemos a registrar nuestra Raspberry al proyecto desde Action Console . Asignamos un nombre y dejamos en auto el fabricante.

Anotar el Model id para su posterior activación en la Rpi.

En el siguiente paso descargamos las credenciales Oauth 2.0 (archivo .JSON) en el directorio /home/pi de nuestra Rpi.

Instalamos la herramienta de autorización (recordar que estamos dentro del entorno virtual env )

python -m pip install --upgrade google-auth-oauthlib[tool]

Generamos las credenciales con la siguiente instrucción:

google-oauthlib-tool --scope https://www.googleapis.com/auth/assistant-sdk-prototype \
      --scope https://www.googleapis.com/auth/gcm \
      --save --headless --client-secrets /path/to/client_secret_client-id.json


Debemos cambiar /path/to/client_secret_client-id debe cambiarse por /home/pi/XXXXXX-id descargado anteriormente.

Al realizar este paso aparece una URL en nuestro terminal. La copiamos y la pegamos en el navegador y validamos nuestro correo electrónico de Google.

Enter the the autorization code: 

En este momento aparecerá un codigo en pantalla que debemos copiar en el terminal.

6.- Configuración de audio

Comprobamos el microfono y anotamos el numero que aparece.

arecord -l

Comprobamos el altavoz y anotamos el numero que aparece.

aplay -l

Creamos o editamos un fichero con el nombre .asoundrc dentro del directorio /home/pi con el siguiente codigo:

pcm.!default {
  type asym
  capture.pcm "mic"
  playback.pcm "speaker"
}
pcm.mic {
  type plug
  slave {
    pcm "hw:<card number>,<device number>"
  }
}
pcm.speaker {
  type plug
  slave {
    pcm "hw:<card number>,<device number>"
  }
}

Donde dice hw:<card number>,<device number>  deberemos cambiarlo por el numero correspondiente, sea el microfono o el altavoz, por ejemplo hw: 0,0.

Con este paso tenemos configurado el microfono y el altavoz en nuestra Rpi.

7.- Test

Vamos a ejecutar el código para activar el Google Assitant.

googlesamples-assistant-hotword --project-id my-dev-project --device-model-id my-model [--nickname device-nickname] [--query text-query]

Para ello debemos tener en cuenta estos parámetros y cambiarlos en la línia de código:

  • my-dev-project: Lo encontramos en Action Console dentro de nuestro proyecto, haciendo click en el icono del engranaje en project settings.
  • my-model: En el paso 4 hemos registrado nuestra Rpi. Revisamos en la página de Action Console el id que se ha asignado (Device Model id)

Si todo a funcionado correctamente, tendremos nuestro asistente a la espera, en inglés, para lo que deseemos. Con un “Hey Google” podemos empezar nuestra conversación.

Si no funciona el asistente, posiblemente es debido a un problema de configuración de audio. En el siguiente vídeo nos indica que pasos seguir y podemos descargar el fichero .asoundrcdirectamente.


Fuentes:

How to Build a DIY Google Home Assistant With Raspberry Pi
https://developers.google.com/assistant/sdk/guides/library/python/embed/setup

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *