如何用树莓皮打造diy谷歌家庭助理

想建立自己的语音控制智能家居枢纽?下面是如何使用树莓皮谷歌助手!...

语音控制助理很快就变得司空见惯了。许多家庭都有一个Alexa或googlehome来控制从灯光到媒体的一切,甚至计时。

diy-home-assistant-raspi

这些设备运行的技术,至少在一定程度上是可以提供给每个人的。Google的助手SDK允许您在自己的设备上使用该服务。本教程介绍如何在树莓Pi上设置Google助手,以及如何通过GPIO引脚激活LED。

raspberry pi家庭助理所需的硬件

Raspberry Pi Google Assistant Required Equipment

您需要:

  1. 在SD卡上安装了一个新的树莓皮。
  2. USB网络摄像头或麦克风。
  3. 外部扬声器。
  4. Pi LED教程中的电路(可选)
  5. 一个浏览器登录到你的谷歌帐户。

注意:本教程的设备可能会有所不同。我只用了一个备用的USB摄像头作为麦克风。任何兼容的网络摄像头或麦克风都应该可以,并且有大量的Pi兼容设备列表可以提供帮助。

另外,我使用3.5毫米的音频输出。HDMI和其他输出源也可以工作,不过需要对下面的声音设置进行修改。

**USB网络摄像头和扬声器,如果正在使用,请设置LED电路。

设置声音

本教程可以直接在Pi上进行,也可以通过SSH连接到Pi。

两种方式都从终端开始,以检查声音设置。使用命令arecord-l和aplay-l列出可用的设备。

Check the Playback and Recording devices

上图显示USB网络摄像头为卡1和设备0。记下麦克风和扬声器输出的卡和设备编号。

现在,确保您位于/home/pi目录下,创建一个新文件并在nano中打开它:

sudo nano .asoundrc

此目录的内容将因您使用的卡和设备号而异。如果您愿意,您可以选择支持HDMI输出,而不是3.5毫米。

asoundrec config file for microphone and speaker

输入上述代码的版本后,按Ctrl+X保存并退出。

通过录制和播放短片段测试设置:

Make a test recording to check your setup

可选步骤:如果要更改麦克风的输入音量,请打开alsamixer并按F6在设备之间循环。

就这样!声音设置完毕。

创建google项目

打开Pi的浏览器,或者,如果通过SSH连接,则在本地打开浏览器。导航到Google操作控制台并单击newproject。

Create a new Google Project

这可能需要一些时间。完成后,让窗口保持活动状态并打开一个新的选项卡——我们马上就要开始了。

启用google助手api

您需要进行一些在线调整才能继续。导航到GoogleAssistant API网站,然后单击Enable。

Enable the Google Assistant API

项目还需要活动权限。请转到“活动控制面板”,并确保以下活动已打开:

  • Web和应用程序活动(包括Chrome历史复选框)
  • 设备信息
  • 语音和音频活动

Changing Google Activity settings

现在您可以继续注册设备了。

注册你的树莓皮

回到操作控制台,从左侧面板中选择设备注册。在“产品”下,为您的设备创建一个易于记忆的名称。**商名称不重要(但必须存在),请选择“自动”作为设备类型。

Register your Pi as a Model

单击Register Model,然后在下一个屏幕上单击Download OAuth 2.0 Credentials。这会将JSON文件下载到您的计算机。如果您不熟悉JSON文件,不用担心,但是学习如何使用JSON对将来是值得的!

官方的Google指南建议将文件移动到/home/pi,所以现在就打开文件管理器。

SSH用户的额外步骤:

如果您使用的是SSH,那么您将把JSON文件下载到本地机器上,而不是Pi。要传输它,请打开一个没有SSH连接的单独终端窗口。在此窗口中,使用以下命令复制客户机机密JSON文件:

scp ~/Downloads/client_secret_client-id.json pi@raspberry-pi-ip-address:/home/pi/

用pi的ip地址替换“raspberry pi ip address”,不要忘记路径前面的冒号。如果您将JSON文件下载到另一个位置,请修改本地路径以反映这一点。在提示时输入密码,文件将复制到Pi的主目录。

Copy the Secret Cient ID to the PI

切换回SSH终端,并导航到/home/pi。输入ls-l列出目录中的文件。您应该看到传输的客户机机密JSON文件。

安装sdk

Google建议在Python虚拟环境中工作。创建一个名为env的新虚拟环境。

如果您以前从未这样做过,本教程将帮助您学习如何使用Python虚拟环境。

安装最新版本的Pip、Setuptools和Wheel并激活您的虚拟环境:

env/bin/python -m pip install --upgrade pip setuptools wheelsource env/bin/activate

googleassistant有一些依赖项,您现在应该将这些依赖项安装到虚拟环境中。

sudo apt-get install portaudio19-dev libffi-dev libssl-dev libmpg123-dev

最后,安装Google助手SDK、示例和OAuth工具。

python -m pip install --upgrade google-assistant-librarypython -m pip install --upgrade google-assistant-sdk[samples]python -m pip install --upgrade google-auth-oauthlib[tool]

这是一切需要启动和运行。如果任何安装失败,请彻底检查拼写和间距。

鉴定树莓皮

使用google auth oauthlib[tool]和前面下载的凭证JSON文件来验证您的Raspberry Pi。

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/YOUR_CLIENT_SECRET_ID.json

您需要用下载的文件替换\u CLIENT\u SECRET\u ID,因此首先复制文件名是值得的。此客户端ID必须正确。不要更改文件名!

你应该得到一个带有链接的消息,要求你粘贴一个授权码。

Generating the Authorization link from the command line.

单击链接将打开浏览器。系统将提示您在Google帐户上启用该设备。复制下面的授权码,并将其粘贴回终端窗口。

您应该会收到一个确认阅读凭证保存:/home/pi…,这意味着pi已被成功授权与您的谷歌帐户。

测试一下

现在一切都准备好了,是时候测试一下你的pigoogle助手了。使用以下命令运行助手:

googlesamples-assistant-hotword --project-id my-dev-project --device-model-id my-model

您需要用项目ID替换my dev项目(在操作控制台的设置齿轮下找到)。您的设备型号id列在操作控制台的设备注册部分下。

试试看!说“好的谷歌”然后问一个问题。当您听到响应时,可以在终端中看到程序输出:

Terminal output for Google Assistant

就这样!谷歌助手现在正在你的树莓皮上运行。注意,如果输出音量有点低,你可以通过说“嘿,谷歌,把你的音量调高到80%”来改变它

奖励:语音激活gpio

可以用Arduino和Siri控制灯光,但有一种更简单的方法。如果你设置了一个LED,你可以使用谷歌助手来控制你的声音。

设置googleassistant以使用GPIO引脚相对简单,但需要一些额外的步骤。前往谷歌操作控制台,在设备注册下找到你的设备。单击它,然后打开traits菜单:

Activating the OnOff Assistant trait

打开OnOff特性,然后单击Save。

现在确保您在env虚拟环境中,使用git将SDK的一个版本克隆到Pi:

git clone https://github.com/googlesamples/assistant-sdk-python

因为这是一个虚拟环境,所以您需要安装RPi.GPIO文件在前进之前。

pip install rpi.gpio

现在,导航到包含热词.py脚本。

cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/library

修改脚本

你需要在表格上加几行字热词.py脚本,所以在nano编辑器中打开它:

nano hotword.py

在import语句下,添加您自己的RPi.GPIO文件.

import RPi.GPIO as GPIO

查找process\u event方法。在第66行,删除或注释掉print语句,并添加if语句来控制LED。

#print('Do command', command, 'with params', str(params))if command == "action.devices.commands.OnOff": if params['on']: print('---------------') print('Led turned on') print('---------------') GPIO.output(18, GPIO.HIGH) else: print('---------------') print('Led turned off') print('---------------') GPIO.output(18, GPIO.LOW)

这个逻辑控制LED,但到目前为止还没有配置为输出。在调用process\u event方法之前,在main()函数中设置它。

GPIO.setmode(GPIO.BCM)GPIO.setup(18, GPIO.OUT, initial=GPIO.LOW)

现在GPIO引脚被设置为输出并在低状态下初始化。保存并退出。您可以运行修改后的脚本,将模型id号(在操作控制台中找到)作为参数传递。

python hotword.py --device-model-id YOUR-MODEL-ID-HERE

终端输出与之前相同,助手将按标准工作。然而,现在当你说“好的,谷歌,打开”你会看到一个新的输出:

Terminal Message showing "LED turning on" print statement

注意:上面的图像已经被裁剪,只显示助理正在听取请求,并且print语句被添加到脚本中。

你应该看到你的LED灯也亮了!

Voice activated LED.

你自己的diy树莓皮谷歌家居助理

这个项目很好地介绍了如何使用googleapi服务。现在你有了一个Google助手设备,可以尝试一些最好的googlehome命令了——我们已经看了一些很棒的googlehome小游戏。

  • 发表于 2021-03-22 22:23
  • 阅读 ( 364 )
  • 分类:IT

你可能感兴趣的文章

18个有趣的diy树莓皮案例创意

...有人都有旧的套件,有缺陷或只是太过时了,现在没有任何用处。为什么不创造一个完美的复古外壳? ...

  • 发布于 2021-03-13 15:17
  • 阅读 ( 311 )

如何用高清电视买到便宜的智能电视

现在是2016年,我们还是不建议买智能电视。事实上,如果你有一个旧的高清晰度电视工作得很好,你应该坚持它。你可以很容易地把它变成智能电视——不,比智能电视好。 ...

  • 发布于 2021-03-16 22:50
  • 阅读 ( 240 )

如何用树莓皮打造自己的android平板电脑

想自己**四核平板电脑吗?发现商业选择过于昂贵而无法考虑?只需一个树莓皮,一些3D打印外壳,一个可充电电池,和一个触摸屏显示器,你就可以——这里是方法。 ...

  • 发布于 2021-03-18 17:31
  • 阅读 ( 312 )

如何用树莓皮制作android电视盒

想**一个基于Raspberry Pi的media center,但发现基本的Kodi安装没有提供足够的功能?别担心,有一个经过考验的替代品:Android电视! ...

  • 发布于 2021-03-18 23:14
  • 阅读 ( 263 )

6个diy笔记本套件和项目,打造你自己的笔记本电脑

... 有那么多树莓皮笔记本电脑项目包,但哪一个是最好的?我们认为这是Pi-top,一款带有可伸缩键盘面板的模块化笔记本电脑。在这里,你把你的树莓圆周率,连接到圆周率顶部的连...

  • 发布于 2021-03-19 19:07
  • 阅读 ( 392 )

如何用树莓圆周率直播youtube

通过添加一个摄像头模块到你的树莓皮,你基本上得到一个便携式,轻便,易于持有或安装互联网连接的相机。 ...

  • 发布于 2021-03-20 15:31
  • 阅读 ( 211 )

用覆盆子皮打造你自己的亚马逊alexa智能音箱

... 如果你手头有一个备用的树莓皮,你不需要购买像回声或回声点亚马逊Alexa设备,因为你可以建立自己的。本教程将解释如何在树莓Pi上设置Alexa家庭助理。 ...

  • 发布于 2021-03-21 08:42
  • 阅读 ( 202 )

如何用树莓皮录制和流媒体直播电视

在Netflix时代,看电视直播似乎是老生常谈,但你不可能总能在流媒体服务上找到你想要的每一个节目或电影。另一种选择是付费购买有线电视或****,谁愿意这样做? ...

  • 发布于 2021-03-21 21:12
  • 阅读 ( 457 )

把你的树莓皮变成笔记本电脑的9种方法

树莓皮是小,低功耗,并与电池,便携式。如果你能把自己的树莓皮变成一台自制的笔记本电脑,那不是很好吗?好吧,你可以! ...

  • 发布于 2021-03-23 14:16
  • 阅读 ( 268 )

7个diy项目的想法,把一个老树莓皮使用

... 就像一台旧电脑,你仍然可以从一个旧的树莓皮伟大的结果。这里有几种方法你仍然可以利用一个旧的树莓Pi模型A或B。 ...

  • 发布于 2021-03-24 04:09
  • 阅读 ( 262 )