
将我们的 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[/源代码]
我们编辑音频配置文件‘~/.asoundrc’’ 并指定我们正在使用的麦克风, 在这种情况下是一个特定的USB设备, 但我们也可以使用网络摄像头的麦克风, 以及默认输出音频:
[源代码]pcm.!违约 {
type asym
playback.pcm {
type plug
slave.pcm "hw:0,0"
}
capture.pcm {
type plug
slave.pcm "hw:1,0"
}
}[/源代码]
如果我们想进行声音测试以查看是否能听到声音…:
[源代码]speaker-test -t wav[/源代码]
更好的是, 录制一个示例,看看我们通过麦克风听起来如何:
[源代码]arecord –format=S16_LE –duration=5 –rate=16000 –file-type=raw out.raw[/源代码]
为了听听我们听起来如何, 执行:
[源代码]aplay –format=S16_LE –rate=16000 out.raw[/源代码]
现在我们可以去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 a “Device registration” > “Register Model” y lo creamos!
Tendremos que ponerle un nombre o ‘Product Name’ (que anotaremos), un nombre del fabricante o ‘Manufacter Name’ 我们选择是否需要某种设备, 如果不清楚就留在'自动', 点击 “Register Model”,
现在, 我们需要下载访问Google助手服务的凭证文件, 点击 “下载OAuth 2.0 凭证” 然后把它保存在某个地方,
我们可以用WinSCP或类似工具把它复制到树莓派,路径为/home/pi,
回到助手并点击 “跳”,
我们保存刚刚注册的设备, 通过点击 “救”,
不错, 现在在树莓派上配置Python虚拟环境,以隔离SDK及其依赖的系统Python包, 我们选择Python选项 3:
[源代码]sudo apt-get install python-dev python-virtualenv
virtualenv env –no-site-packages
env/bin/python -m pip install –升级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 install –upgrade google-assistant-sdk[samples][/源代码]
Instalamos o actualizamos la herramienta de autorización:
[源代码]python -m pip install –upgrade google-auth-oauthlib[tool][/源代码]
Ahora generamos los credenciales para ejecutar los ejemplos, usaremos el fichero JSON que nos hemos descargado previamente:
[源代码]google-oauthlib-tool –scope https://www.googleapis.com/auth/assistant-sdk-prototype –scope https://www.googleapis.com/auth/gcm –save –headless –client-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-hotword –project_id entrada-txarlatana –device_model_id entrada-txarlatana-entrada-xxxx[/源代码]
![]() |
![]() |
顺便一提, para cambiar el idioma de nuestro Asistente, 我们将直接通过手机完成这项工作, 我想你们应该已经安装了助手的应用程序 (如果没有的话,你们可以安装它 :P, 打开它, 我们在顶部点击指南针, 在下一屏中,选择探索,我们需要去 “设置”,
![]() |
![]() |
在设置中,我们需要在设备中查找之前注册的设备, 我们选择它, 到那里后,我们就可以给谷歌的先生们访问我们更多的数据,或者选择我们希望与助手互动的语言!
大功告成! 我们已经在一台树莓派上设置了服务, 如果我们再次运行上面的示例,助手将以我们的语言进行, 我们将需要不断按回车键或说‘好的, 谷歌’ 无论是与我们的互动示例. Como en mi caso no me interesa que el micrófono esté siempre escuchando y así también evitar la necesidad de decir ‘OK Google’ todo 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-pushtotalk –project-id txarlatana –device-model-id txarlatana-pitxarlatana-xxxx &[/源代码]
google_assistant_para.sh
[源代码]pkill python3
pkill google
pkill nc[/源代码]