将我们的 Google HOME 智能扬声器安装在 Raspberry Pi 上

Google Assistant SDK 终于发布,可以使用西班牙语的 Google Home (o 西班牙语) 在其他新语言中! 所以现在可以在 Raspberry Pi 上安装我们自己的 Google Assistant, 几分钟后, 带麦克风和扬声器, 您将拥有一个 Raspberry Pi 来满足您的要求!

 

 

 

Ideal para ponerla en el salón o cualquier sitio escondida, con un buen micrófono omnidireccional, podremos hacerle consultas en nuestro propio idioma y medianamente nos las esquivará correctamente 😉 Por recordar a parte del Español, también soporta Inglés, 德语, 法语, Italiano y Japonés. Lo bueno es que Google lo tiene súper bien documentado, puedes seguir sus pasos o estos más resumidos para tenerlo todo listo!

 

Usaremos una Raspberry Pi con Raspbian instalado y actualizado, lo primero será verificar que el audio nos funciona bien, tanto el del micrófono como los altavoces por donde queremos sacar el sonido. Con el siguiente comando, primero veremos los dispositivos de grabación de audio y luego los de grabación:

[源代码]arecord -l
aplay -l[/源代码]

 

Editamos nuestro fichero de configuración de audio ‘~/.asoundrcy especificamos el micrófono que estamos usando, en este caso un USB específico, pero también podríamos usar el micro de una webcam, así como el audio que me lo saque por la predeterminada:

[源代码]pcm.!违约 {
type asym
playback.pcm {
type plug
slave.pcm "hw:0,0"
}
capture.pcm {
type plug
slave.pcm "hw:1,0"
}
}[/源代码]

 

Si queremos hacer una prueba de sonido para ver si escuchamos algo…:

[源代码]speaker-test -t wav[/源代码]

 

Mejor aún, grabar un ejemplo de cómo se nos escucha por el micrófono:

[源代码]arecordformat=S16_LEduration=5rate=16000file-type=raw out.raw[/源代码]

 

Para escucharlo a ver qué tal se nos escucha, 执行:

[源代码]aplayformat=S16_LErate=16000 out.raw[/源代码]

 

Ahora ya podremos ir a la consola de las Acciones de Google, 在 https://console.actions.google.com, deberemos loguearnos con una cuenta de Google válida y crear un nuevo proyecto de Google Cloud Platform, 为此,请单击 “Add/Import project”. Con la API de Google Assistant instalada en nuestra Raspberry accederemos para realizar consultas y el proyecto nos mostrará los datos sobre los consumos.

 

Debemos indicar el nombre del Proyecto y si queremos cambiar el idioma para las Acciones o seleccionar nuestro País, es el momento,

 

Tenemos que habilitar la API de Google Assistant API, 因为 https://console.developers.google.com/apis/api/embeddedassistant.googleapis.com/overview seleccionamos del combo nuestro proyecto y pulsamos en “使”,

 

Ahora ya podríamos ir a registrar nuestro dispositivo! Vamos de nuevo a la Consola, 在 https://console.actions.google.com/
Ir aDevice registration” > “Register Modely lo creamos!

 

Tendremos que ponerle un nombre o ‘Product Name’ (que anotaremos), un nombre del fabricante o ‘Manufacter Namey seleccionamos si queremos algún tipo de dispositivo, si no lo tenemos claro lo dejamos en ‘Auto’, 点击 “Register Model”,

 

现在, tendremos que descargarnos el fichero con los credenciales de acceso al servicio de Google Assitant, 点击 “Download OAuth 2.0 credentialsy los guardamos por ahí,

 

Los copiamos a la Raspberry Pi por ejemplo con WinSCP o similar al path /home/pi,

 

Volvemos al asistente y pulsamos en “跳”,

 

Grabamos el dispositivo que acabamos de registrar, 通过点击 “救”,

 

不错, ahora en la Raspberry Pi configuraremos el entorno virtual de Python para aislar el SDK y sus dependencias de los paquetes Python del sistema, nos escogemos la opción de Python 3:

[源代码]sudo apt-get install python-dev python-virtualenv
virtualenv envno-site-packages
env/bin/python -m pip installupgrade pip setuptools wheel
source env/bin/activate[/源代码]

 

Instalamos las dependencias necesarias además de Google Assistant SDK que nos permitirá tener Google Assistant corriendo en la Raspberry Pi:

[源代码]sudo apt-get install portaudio19-dev libffi-dev libssl-dev libmpg123-dev[/源代码]

 

Mediante pip instalamos la última versión de Python en el entorno virtual:

[源代码]python -m pip installupgrade google-assistant-sdk[samples][/源代码]

 

Instalamos o actualizamos la herramienta de autorización:

[源代码]python -m pip installupgrade google-auth-oauthlib[tool][/源代码]

 

Ahora generamos los credenciales para ejecutar los ejemplos, usaremos el fichero JSON que nos hemos descargado previamente:

[源代码]google-oauthlib-toolscope https://www.googleapis.com/auth/assistant-sdk-prototypescope https://www.googleapis.com/auth/gcmsaveheadlessclient-secrets /home/pi/client_secret_xxxx.apps.googleusercontent.com.json[/源代码]

 

如果一切都正确, nos pondrá algo como:

[源代码]"Please visit this URL to authorize this application: https://…"[/源代码]

Copiamos la URL y vamos a ella con un navegador (que esté logueado con nuestra cuenta de Google), tras permitirlo nos dará un código de autenticación que debemos pegar en la shell.

 

现在, ya estamos listos para probar un ejemplo! En el mismo entorno virtual, ejecutamos el siguiente comando indicando nuestro ID de Proyecto y nuestro ID de modelo, que si no los habéis ido anotando, los encontraréis en la Consola de Actions de Google buscando en las opciones generales del proyecto y del dispositivo. Si esta todo OK ejecutamos el siguiente comando y quedará listo para que hablemos con el Assistant, es momento de probar:

[源代码]googlesamples-assistant-hotwordproject_id entrada-txarlatanadevice_model_id entrada-txarlatana-entrada-xxxx[/源代码]

 

顺便一提, para cambiar el idioma de nuestro Asistente, lo haremos directamente con nuestro teléfono móvil, con la app del Assistant que supongo la tendréis instalada (y si no os la instaláis :P, la abrís, pulsamos arriba en la brújula, y en la siguiente pantalla en Explorar debemos ir a “设置”,

 

En Ajustes debemos buscar en Dispositivos el dispositivo que hemos registrado antes, 我们选择它, y ahí ya le podremos dar acceso a más datos nuestros a los señores de Google o seleccionar el idioma que queremos para interactuar con el Assistant!

 

大功告成! Tenemos el servicio montado bajo una Raspberry Pi, si volvemos a ejecutar el ejemplo anterior estará el Asistente en nuestro idioma, tendremos que constantemente pulsar Enter o decir ‘OK, 谷歌’ independientemente de los ejemplos que tenemos para interactuar. Como en mi caso no me interesa que el micrófono esté siempre escuchando y así también evitar la necesidad de decir ‘OK Googletodo el rato, pues mediante una solución cutrecilla he conseguido esquivarlo. He creado un scriptcillo para iniciar el Assistant y otro para detenerlo, os lo dejo por si de casualidad a alguien le es de utilidad 🙂

 

google_assistant_para.sh

[源代码]cd /home/pi/
source env/bin/activate
nc -l 12345 | /home/pi/env/bin/python3 /home/pi/env/bin/googlesamples-assistant-pushtotalkproject-id txarlatanadevice-model-id txarlatana-pitxarlatana-xxxx &[/源代码]

 

google_assistant_para.sh

[源代码]pkill python3
pkill google
pkill nc[/源代码]

推荐文章

作者

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, 请随时与我联系, 我会尽我所能帮助你, 分享就是生活 ;) . 享受文档!!!