Cómo hacer tu propio Google Home con Assistant y Raspberry Pi 3
Google Home es la manera más fácil de tener Google Assistant en casa. Lo malo es que no está disponible globalmente, pero gracias a una Raspberry Pi 3 puedes tener Google Assistant en tu salón y hasta puedes controlar cualquier cosa que conectes a la Raspi solo con la voz.
Para poder usar Google Assistant en nuestra Raspberry Pi 3 necesitamos algo de hardware. Básicamente necesitamos un micrófono y un altavoz para poder comunicarnos con Google Assistant. En la MagPi (la revista oficial de Raspberry Pi) de mayo se incluía un bonito set patrocinado por Google, pero si te quedaste sin ella, no te preocupes porque se puede sustituir simplemente por unos altavoces y un micrófono USB. Aquí tienes las instrucciones para cualquiera de los dos casos:
- Construir tu propio Google Home con el AIY Voice Kit de MagPi
- Construir tu propio Google Home con micro, altavoces y una Raspberry Pi 3
Construye tu propio Google Home con el AIY Voice Kit de MagPi
Como ya hemos dicho, en la edición número 57 de The MagPi de mayo de 2017 (5,99£), Google incluía un kit de regalo para animar a los makers a hacer su propio Google Home. El proyecto se llama AIY que resulta de la mezcla de AI (inteligencia artificial en sus siglas en inglés, Artificial Intelligence) y DIY (hazlo tú mismo, en sus siglas en inglés, Do it Yourself).
1. Montar el kit AIY Project "made by you with Google"
El kit que viene incluido con la MagPi es muy sencillo de montar. Solo tienes que seguir las instrucciones que encontrarás dentro de la revista o en la web de AIY Proyects. Creo que lo más difícil para mí fue doblar el cartón. Para construir este kit de voz, Google nos proporciona:
- Una placa PCB para controlar los micrófonos y el pulsador (Voice HAT)
- Un placa PCB alargada con dos micrófonos
- Un altavoz
- Un pulsador
- Un LED
- Mecanismo para el pulsador
- Cables para conectarlo todo
- Caja de cartón para montar el kit
Además de los componentes que encontramos en el kit vamos a necesitar poner de nuestra parte:
- Una Raspberry Pi 3
- Una tarjeta microSD parar instalar el sistema operativo
- Un poco de cinta adhesiva
- Un destornillador tamaño P00
Para montar el kit AIY tenemos unas instrucciones en su web oficial, pero os resumo aquí los pasos clave.
Una vez que tenemos todos los componentes, vamos a empezar conectando la placa PCB, llamada Voice HAT y que controla los micrófonos y el pulsador, a la Raspberry Pi 3 con ayuda de dos pequeños alzadores de plástico. Ahora con un destornillador conecta los dos cables del altavoz (el rojo es positivo y el negro es negativo).
Conecta el resto de cables a la placa. Es el momento de colocar todo esto en el primer cartón. Dóblalo dejando a la vista las inscripciones y coloca primero el altavoz. Después coloca la Raspberry Pi 3 junto con el Voice HAT. Monta la caja e introduce todo el conjunto. Ten cuidado de que el altavoz quede en la parte donde están los agujeros.
Es la hora de fijar la carcasa del pulsador (en este caso nos ha tocado una amarilla). Primero desenrosca la tuerca de plástico negra, introduce el pulsador por el hueco de la tapa y vuelve a enroscar la tuerca negra. Ahora monta el mecanismo con el LED y el pulsador. Encájalo en el pulsador y conecta los cables con cuidado del orden correcto (rojo y azul fuera; negro y blanco en el centro).
Por último, conecta la placa con los dos micrófonos y pégala con un poco de cinta adhesiva a la tapa. Ten cuidado al colocar los micrófonos para que tengan una buena entrada del sonido a través de los agujeros de la caja. Una vez que tenemos todo montado y listo es la hora de instalar el software en una tarjeta microSD.
2. Instalar el software y configurar Raspbian para usar Google Assistant
Para instalar el software necesitamos descargar la imagen del sistema y flashearla en la microSD con un ordenador:
- Descargar la imagen para la microSD del Voice Kit
- Descargar el software Etcher.oi para ordenador
- Ahora descomprime el archivo con la imagen (*.img) del sistema operativo para la Raspberry Pi 3
- Introduce la tarjeta microSD en el ordenador
- Abre el programa Etcher, selecciona la imagen, selecciona la microSD y pulsa en 'Flash'.
- Cuando termine, la tarjeta microSD estará lista para ser introducida en la Raspberry Pi 3.
Cuando acabamos de flashear la tarjeta la colocamos en la Raspi y ya podemos empezar. Para arrancar la Raspberry Pi 3 con el Voice Kit vamos a necesitar un monitor con cable HDMI y un teclado con ratón. Conectamos todo y le damos energía a la Raspi.
El primer inicio del sistema puede tardar varios minutos. El sistema que corre en la Raspberry Pi es una versión de Debian modificada especialmente para este dispositivo y que se llama Raspbian. Debian es una de las distribuciones más extendidas de GNU/Linux y en la que se basan distribuciones tan famosas como Ubuntu.
Una vez tengamos el escritorio activo, arriba a la derecha vamos a poder conectarnos a nuestra red Wi-Fi entre los símbolos del Bluetooth y del volumen. Una vez conectados a internet abriremos el navegador y vamos a introducir esta URL: https://console.cloud.google.com/.
Nos pedirá que introduzcamos nuestra cuenta de Gmail con la que vamos a usar los servicios de Google Cloud, de entre los cuales nos interesa Google Assistant. Así que introducimos nuestro correo y contraseña para darnos de alta en el servicio, que es gratuito. Aquí los pasos serán los siguientes:
- Crear un nuevo proyecto, por ejemplo, llamado "Home Pi"
- Activa la API de Google Assistant en el proyecto en API > Enable API > Google Assistant > Enable
- Ahora crea un nuevo credencial en Credentials > Create credentials > OAuth Client ID > Other (añade un nombre) > Create
- Necesitaremos descargar el credencial en la Raspberry Pi 3 desde la página de credenciales de las APIs de nuestro proyecto. A la derecha del todo de la credencial que acabamos de crear hay un botón para descargar.
- Copiaremos el archivo descargado desde la carpeta de descargas hasta la carpeta /home/pi/ y le cambiaremos el nombre pulsando sobre el archivo con el botón derecho > rename por el de assistant.json
3. Hablar con Google Assistant a través de una Raspberry Pi 3
Para lanzar Google Assistant en la Raspberry Pi 3 abriremos el icono de la terminal que encontraremos en el escritorio e introduciremos el siguiente comando:
- src/main.py.
La primera vez que corremos el comando nos pedirá los permisos oportunos para poder usar nuestra cuenta de Goolge Cloud asociada a nuestra cuenta de Gmail. Si todo ha ido bien en la consola veremos que nos avisa que para hablar primero debemos pulsar el botón. Para salir de la aplicación tendremos que pulsar CRTL+C con la ventana de la terminal activa. Ahora le puedes preguntar lo que quieras a la cajita de cartón, la cual esconde todo el poder de Google Assistant.
Para controlar el volumen solo tienes que bajarlo en el icono del escritorio arriba a la derecha o decirle a Google Assistant "volume down".
4. Activar Google Assistant remotamente a través de SSH desde otro dispositivo
Podemos activar Google Assistant en la Raspberry Pi 3 sin necesidad de un monitor ni teclado/ratón gracias a la ayuda del protocolo SSH y nuestro smartphone. Para activar el protocolo SSH dirígete en la Raspi a inicio > Preferences > Raspberry Pi Configuration, aquí en la pestaña de 'Interfaces' debemos marcar en 'Enabled' la fila de SSH. También recomiendo cambiar la contraseña por defecto del usuario Pi.
Desde un smartphone y con una aplicación que permita conexiones SSH (o Putty desde Windows) vamos a poder introducir la IP local de la Raspberry Pi 3 y loguearnos directamente en una consola de comandos con nuestro usuario (que por defecto es "Pi") y contraseña (que por defecto es "raspberry").
La dirección IP local de la Raspi la puedes conocer desde el icono de la conexión en el propio escritorio de la Raspi o con la aplicación Fing para Android.
Una vez que tengamos conexión a la línea de comandos de la Raspberry Pi 3 por SSH, debemos introducir estos dos comandos para iniciar el servicio de Google Assistant:
- /home/pi/bin/voice-recognizer-shell.sh
- src/main.py
Construir tu propio Google Home con un altavoz y una Raspberry Pi 3
No hace tener el AIY Voice Kit de la revista MagPi para poder crear tu propio Google Home. En realidad solo necesitamos un micrófono USB, unos altavoces con mini-jack y una Raspberry Pi 3 (opcionalmente también podemos conectar un botón).
Yo no tenía a mano un micrófono USB así que he utilizado una vieja webcam que tiene un micrófono incorporado.
Podemos seguir las mismas instrucciones para instalar el software que hemos explicado arriba, pero necesitamos cambiar algunas cosas para poder utilizar nuestro propio hardware.
Primero. Editaremos el archivo /boot/config.txt a través de una terminal con el comando sudo nano /boot/config.txt. Aquí vamos a descomentar la línea donde que dice #dtparam=audio=on borrando # y comentaremos las dos siguientes dejando el párrafo de la siguiente manera. Una vez terminado, pulsamos CRTL+X para salir y guardamos con el mismo nombre.
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
#dtoverlay=i2s-mmap
#dtoverlay=googlevoicehat-soundcard
Segundo. Editaremos el archivo /etc/asound.conf, también desde la terminal con sudo nano /etc/asound.conf. Aquí borraremos todos y pegaremos el siguiente código. Después CRTL+X para salir y guardamos con el mismo nombre.
pcm.!default {
type asym
capture.pcm "mic"
playback.pcm "speaker" }
pcm.mic {
type plug
slave {
pcm "hw:1,0" } }
pcm.speaker {
type plug
slave {
pcm "hw:0,0" } }
Tercero. Ahora es el momento de reiniciar la Raspberry Pi 3 y probar que reconoce el micrófono y los altavoces. En el escritorio tenemos un archivo llamado "Check audio" si le damos doble click veremos que busca el Voice HAT que no tenemos, así que vamos a modificarlo. Escribe en una terminal el comando sudo nano /home/pi/voice-recognizer-raspi/checkpoints/check_audio.py, y en la línea donde dice VOICEHAT_ID = ‘googlevoicehat’ la cambiaremos por VOICEHAT_ID = ‘bcm2835’ que es el sonido por defecto de la Raspi, CRTL+X para salir y guardamos con el mismo nombre. Ahora vuelve a probar el audio y verás que todo funciona.
Cuarto. Si tienes un botón, es el momento de conectarlo al GPIO 23. Si no tienes vamos a iniciar el servicio como en el paso 3 de apartado anterior con un comando especial:
- python3 src/main.py -T clap
Con este comando cada vez que des una palmada Google Assistant esperará tu pregunta. Aquí también puedes pulsar CRTL+C para salir y por supuesto también puedes activar el servicio desde otro dispositivo a través de SSH.
Conclusión
Como puedes ver, tener Google Assistant en casa es más fácil de lo que parece. Solo necesitas una Raspberry Pi 3 y un par de cosas más. La única pega es que solo está disponible en inglés por el momento. A final de año Google Assistant estará también en español, así que para 2018 podría estar ya intergrado en el SDK de Google Assistant que usamos con la Raspi.
Por defecto, el servicio de voz de Google Assistant es capaz de contestar a casi todas las preguntas que le hagas pero su poder no acaba aquí. También puedes usar el poder de la inteligencia artificial para, por ejemplo, controlar un robot o un espejo "mágico" con tu voz y también hacer tareas más complicadas de gestión con IFTTT. Pero para esto tenemos que crear nuestros propios scripts.
¿Te animas a controlar la inteligencia artificial de Google?
Buenas,
¿Se podría realizar algo parecido pero utilizando una Raspberry Pi Zero?
Estaría genial actualizar éste tutorial, ya que la última versión del proyecto AIY es del 21-Feb-2018, que intuyo incluirá el español. Además, la estructura de directorios ha cambiado y supongo que también las cosas que hay que modificar cuando no se tiene el kit. Aún así, muchas gracias por el esfuerzo y las explicaciones.
Hola, estoy intentando montar un google home con un altavoz y un microfono. tengo problemas despues de reiniciar la raspi, al poner en el terminal: sudo nano /home/pi/voice-recognizer-raspi/checkpoints/check_audio.py, no hay ningun archivo con ese nombre y no puedo modificar el apartado voiceHat. si me pudierais ayudar lo agradeceria
No consiguo lanzar Google Assistant en la Rasberry, escribo el comando src/main.py el icono de la terminal y me dice que no lo encuentra. Necesito ayuda!!
¿Estas utilizando la imagen del sistema operativo que está arriba para descargar?
Prueba con sec/assistant_library_with_button_demo.py
Bajen se la apk de internet de assiastant y luego lo ponen en español y listo. Nada de Allo. Saludos
Supongo que te refieres al comentario de más abajo, pero es de hace tiempo, cuando Assistant todavía no hablaba en español solo chateaba. Ahora está disponible en cualquier Android desde 6.0.
Hola! Hace unos dias me llego el Kit AIY y la verdad que estoy medio atorado. Saben si hay algun grupo en Fb o Foro para realizar consultas? Es un tema que me interesaria seguir.
Gracias a todos!
Me pasa lo mismo, has conseguido ponerla en español?
Hola! hace unos dias me llego el Kit y estoy medio atorado con esto, tengo varias dudas/consultas, saben de foros o grupos de Fb o los puedo aturdir a uds con mis dudas?
Para mi las Raspberry están sobrevaloradas
google assistant lo puedes encontrar en la aplicacion de google Allo esta en español
http://www.androidpit.es/activar-google-assistant-en-espanol
El gran problema es que no está disponible en España ni en español, ni tenemos fechas previstas para ello. Parece mentira que el español sea el segundo idioma más hablado en el mundo. Un saludo.
Google Assistant está disponible en todo el mundo, lo único que solo funciona medianamente bien en inglés. Hay que tener en cuenta que su desarrollo es en este idioma y es muy lento, más aún si quieres abarcar otros idiomas. Para smartphones también está disponible en Alemán pero el SDK con Google Assistant solo está en inglés.
Desde mi punto de vista no es tan malo, está poniendo la tecnología más puntera en inteligencia artificial en la palma de la mano de todo el mundo para que la utilice. Si puedo llegar a controlar un robot hecho por mi solo con la voz gracias a esta plataforma, sinceramente me da un poco igual en el idioma en el que está, el caso aquí es aprender.
Al paso que va Google...
Va demasiado rápido para el tiempo que tiene, además está a años luz de adelanto de otros de la competencia: bixby.
Sigue solo en Inglés
Penoso sería si siguiera en inglés luego de 10 años, pero no es el caso.