语音控制助理很快就变得司空见惯了。许多家庭都有一个Alexa或googlehome来控制从灯光到媒体的一切,甚至计时。
这些设备运行的技术,至少在一定程度上是可以提供给每个人的。Google的助手SDK允许您在自己的设备上使用该服务。本教程介绍如何在树莓Pi上设置Google助手,以及如何通过GPIO引脚激活LED。
您需要:
注意:本教程的设备可能会有所不同。我只用了一个备用的USB摄像头作为麦克风。任何兼容的网络摄像头或麦克风都应该可以,并且有大量的Pi兼容设备列表可以提供帮助。
另外,我使用3.5毫米的音频输出。HDMI和其他输出源也可以工作,不过需要对下面的声音设置进行修改。
**USB网络摄像头和扬声器,如果正在使用,请设置LED电路。
本教程可以直接在Pi上进行,也可以通过SSH连接到Pi。
两种方式都从终端开始,以检查声音设置。使用命令arecord-l和aplay-l列出可用的设备。
上图显示USB网络摄像头为卡1和设备0。记下麦克风和扬声器输出的卡和设备编号。
现在,确保您位于/home/pi目录下,创建一个新文件并在nano中打开它:
sudo nano .asoundrc此目录的内容将因您使用的卡和设备号而异。如果您愿意,您可以选择支持HDMI输出,而不是3.5毫米。
输入上述代码的版本后,按Ctrl+X保存并退出。
通过录制和播放短片段测试设置:
可选步骤:如果要更改麦克风的输入音量,请打开alsamixer并按F6在设备之间循环。
就这样!声音设置完毕。
打开Pi的浏览器,或者,如果通过SSH连接,则在本地打开浏览器。导航到Google操作控制台并单击newproject。
这可能需要一些时间。完成后,让窗口保持活动状态并打开一个新的选项卡——我们马上就要开始了。
您需要进行一些在线调整才能继续。导航到GoogleAssistant API网站,然后单击Enable。
项目还需要活动权限。请转到“活动控制面板”,并确保以下活动已打开:
现在您可以继续注册设备了。
回到操作控制台,从左侧面板中选择设备注册。在“产品”下,为您的设备创建一个易于记忆的名称。**商名称不重要(但必须存在),请选择“自动”作为设备类型。
单击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的主目录。
切换回SSH终端,并导航到/home/pi。输入ls-l列出目录中的文件。您应该看到传输的客户机机密JSON文件。
Google建议在Python虚拟环境中工作。创建一个名为env的新虚拟环境。
如果您以前从未这样做过,本教程将帮助您学习如何使用Python虚拟环境。
安装最新版本的Pip、Setuptools和Wheel并激活您的虚拟环境:
env/bin/python -m pip install --upgrade pip setuptools wheelsource env/bin/activategoogleassistant有一些依赖项,您现在应该将这些依赖项安装到虚拟环境中。
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必须正确。不要更改文件名!
你应该得到一个带有链接的消息,要求你粘贴一个授权码。
单击链接将打开浏览器。系统将提示您在Google帐户上启用该设备。复制下面的授权码,并将其粘贴回终端窗口。
您应该会收到一个确认阅读凭证保存:/home/pi…,这意味着pi已被成功授权与您的谷歌帐户。
现在一切都准备好了,是时候测试一下你的pigoogle助手了。使用以下命令运行助手:
googlesamples-assistant-hotword --project-id my-dev-project --device-model-id my-model您需要用项目ID替换my dev项目(在操作控制台的设置齿轮下找到)。您的设备型号id列在操作控制台的设备注册部分下。
试试看!说“好的谷歌”然后问一个问题。当您听到响应时,可以在终端中看到程序输出:
就这样!谷歌助手现在正在你的树莓皮上运行。注意,如果输出音量有点低,你可以通过说“嘿,谷歌,把你的音量调高到80%”来改变它
可以用Arduino和Siri控制灯光,但有一种更简单的方法。如果你设置了一个LED,你可以使用谷歌助手来控制你的声音。
设置googleassistant以使用GPIO引脚相对简单,但需要一些额外的步骤。前往谷歌操作控制台,在设备注册下找到你的设备。单击它,然后打开traits菜单:
打开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终端输出与之前相同,助手将按标准工作。然而,现在当你说“好的,谷歌,打开”你会看到一个新的输出:
注意:上面的图像已经被裁剪,只显示助理正在听取请求,并且print语句被添加到脚本中。
你应该看到你的LED灯也亮了!
这个项目很好地介绍了如何使用googleapi服务。现在你有了一个Google助手设备,可以尝试一些最好的googlehome命令了——我们已经看了一些很棒的googlehome小游戏。
...有人都有旧的套件,有缺陷或只是太过时了,现在没有任何用处。为什么不创造一个完美的复古外壳? ...
现在是2016年,我们还是不建议买智能电视。事实上,如果你有一个旧的高清晰度电视工作得很好,你应该坚持它。你可以很容易地把它变成智能电视——不,比智能电视好。 ...
想自己**四核平板电脑吗?发现商业选择过于昂贵而无法考虑?只需一个树莓皮,一些3D打印外壳,一个可充电电池,和一个触摸屏显示器,你就可以——这里是方法。 ...
想**一个基于Raspberry Pi的media center,但发现基本的Kodi安装没有提供足够的功能?别担心,有一个经过考验的替代品:Android电视! ...
... 有那么多树莓皮笔记本电脑项目包,但哪一个是最好的?我们认为这是Pi-top,一款带有可伸缩键盘面板的模块化笔记本电脑。在这里,你把你的树莓圆周率,连接到圆周率顶部的连...
通过添加一个摄像头模块到你的树莓皮,你基本上得到一个便携式,轻便,易于持有或安装互联网连接的相机。 ...
... 如果你手头有一个备用的树莓皮,你不需要购买像回声或回声点亚马逊Alexa设备,因为你可以建立自己的。本教程将解释如何在树莓Pi上设置Alexa家庭助理。 ...
在Netflix时代,看电视直播似乎是老生常谈,但你不可能总能在流媒体服务上找到你想要的每一个节目或电影。另一种选择是付费购买有线电视或****,谁愿意这样做? ...
树莓皮是小,低功耗,并与电池,便携式。如果你能把自己的树莓皮变成一台自制的笔记本电脑,那不是很好吗?好吧,你可以! ...
... 就像一台旧电脑,你仍然可以从一个旧的树莓皮伟大的结果。这里有几种方法你仍然可以利用一个旧的树莓Pi模型A或B。 ...