- 硬件要求
- 设置Raspberry Pi Google Assistant的Google API
- 为Raspberry Pi设置Google Assistant Google Home
- 授权Raspberry Pi使用Google助手
- 在Raspberry Pi上使用Google Assistant
您是否想过可以通过声音控制的扬声器!!!是的,Amazon Echo是最受欢迎的语音控制扬声器之一,但是与之竞争的Google Home也越来越流行。随着我们迈向基于AI的系统时代,语音助手变得越来越流行。您已经听说过Google Assistant,Apple Siri和Amazon Alexa。这些都是基于语音的AI系统,它们彼此之间的不同之处在于其生态系统,而这正是Google Assistant最突出的地方。谷歌,苹果和亚马逊,所有这些公司已经推出了他们的智能扬声器。市场上也有Google智能扬声器。我们已经介绍了基于Raspberry Pi的Amazon Echo,这次我们将把Raspberry Pi变成Google Home Speaker。
Google提供了使用其语音服务的API,该服务是开源的,可在Github上使用。使用Google语音服务,我们可以播放音乐,获取有关天气的信息,预订机票等等。你只要问就行啦。在本教程中,让我们看看如何使用Google Assistant和Raspberry Pi构建语音控制的智能扬声器。
硬件要求
- Raspberry Pi 3或Raspberry Pi 2 Model B和SD卡(8GB或更多)
- 带有3.5mm AUX电缆的外部扬声器
- 任何网络摄像头或USB 2.0麦克风
我们还假设您的Raspberry pi已经安装了Raspbian操作系统并已连接到Internet。有了这些功能后,我们就可以继续进行本教程。如果您不熟悉Raspberry Pi,请先阅读Raspberry pi入门。
注意: 网络摄像头具有内置麦克风,因此,我们将使用它代替USB 2.0麦克风。
您还需要键盘,鼠标和监视器以使用HDMI电缆连接树莓派。
使用Raspberry Pi检查网络摄像头麦克风:
1.打开Raspberry Pi终端,然后键入arecord -l命令。这将显示连接到Raspberry Pi的硬件设备,如下所示:
卡1是我们将要使用的网络摄像头麦克风。如果未显示,则您的网络摄像头可能有故障。
2.现在,通过运行record audio命令来检查mic是否正常工作:
记录/home/pi/Desktop/test.wav -D sysdefault:CARD = 1
3.要播放录制的音频,请输入以下命令:
omxplayer -p -o本地/ home / pi /桌面/test.wav
如果您已使用HDMI电缆将Raspberry Pi与显示器连接,则默认情况下,音频输出是通过显示器的扬声器(如果其中有内置扬声器)。因此,要将其更改为3.5mm,您必须键入以下命令:
sudo raspi-config并转到高级选项。
从列表中选择音频->选择Force 3.5mm->选择确定,然后重新启动Raspberry Pi。
现在,您应该会听到3.5毫米插孔发出的声音。
注意:如果要增加或减少麦克风的输入语音响度,请在终端中键入 alsamixer 。通过按F6从终端选择声卡。
按F4更改Mic dB增益并根据需要进行设置。
如果您具有USB 2.0麦克风,则检查麦克风的步骤相同。在这里,我们已将Webcam用于USB麦克风。
设置Raspberry Pi Google Assistant的Google API
1.首先,我们必须在Google Console Actions仪表板上注册并设置一个项目。
2.登录到您的Google帐户后,您将看到以下窗口。
单击 添加/导入项目 。
3.在下一个屏幕上,您必须输入 项目名称 ,然后单击 创建项目 。
4.现在,转到新标签中的Google开发者控制台,然后搜索Google Assistant API。在继续并按“启用”按钮之前,请确保已选择项目。然后点击启用。
5.现在,打开Google控制台的上一个标签,然后向下滚动到屏幕底部。
您会找到一个选项 Device Registration ,单击它。
6.在下一个屏幕上,单击注册模型。此后,您需要设置产品名称,制造商名称并设置设备类型。这些名称可以是您想要的任何名称。
记下设备型号ID,因为我们稍后将需要它。
现在,单击 注册模型 。
7.下一个屏幕将是下载凭证。要获取此凭据文件,请点击 下载OAuth 2.0凭据 。该文件非常重要,因此,请将其保存在安全的地方。
现在,单击“下一步”。
8.您可以选择所需的任何特征,但在本例中,我们不需要这些特征,因此只需单击“ 跳过” 按钮,如下所示。
9.一切完成后,将显示以下屏幕。
10.现在,转到“活动控制”页面。在这里,您必须激活以下活动控件,以确保Google Assistant API正常运行。
网络与应用活动,位置记录,设备信息,语音和音频活动
11.同样,转到Google开发人员控制台。单击仪表板左侧的凭据。点击OAuth同意屏幕。
12.在产品名称中填写您的Gmail ID和任何名称,然后保存。
现在,我们完成了Google API的设置。
为Raspberry Pi设置Google Assistant Google Home
请注意,从此部分开始,您将需要直接在Raspbian桌面上而不是通过SSH来完成本教程,这是因为您将必须使用内置的Web浏览器。
1.首先,使用以下命令更新Raspberry Pi的软件包列表
sudo apt-get更新
2.现在,我们将创建一个文件,用于存储我们先前下载的凭据。为此,请运行以下两个命令
mkdir ~/googleassistant
nano ~/googleassistant/credentials.json
3.在此文件中,您必须复制我们下载的凭据文件的内容。在您喜欢的文本编辑器中打开.json文件,然后按ctrl + A,然后按ctrl + C复制内容。
复制内容后,按保存文件 按Ctrl + X ,然后 Ÿ ,最后按 回车键。
4.保存凭据文件后,我们将开始安装运行Google助手所需的一些依赖项。
运行以下命令以将Python3和Python 3虚拟环境安装到我们的RPi。
sudo apt-get install python3-dev python3-venv
5.现在使用以下命令启用python3作为我们的虚拟环境
python3 -m venv env
6.安装最新版本的pip和 setuptools。运行以下命令以获取更新
env/bin/python -m pip install --upgrade pip setuptools --upgrade
7.要进入python环境,我们必须运行以下命令
source env/bin/activate
8.现在,我们将安装Google Assistant库,一步一步运行以下命令以获取更新的库
python -m pip install --upgrade google-assistant-library
python -m pip install --upgrade google-assistant-sdk
现在,我们已经完成了所有必需的依赖项和库的安装。
授权Raspberry Pi使用Google助手
1.首先,通过执行以下命令,将Google授权工具安装到我们的Raspberry pi中
python -m pip install-升级google-auth-oauthlib
2.现在,我们需要运行Google身份验证库。执行此命令以运行库。
google-oauthlib-tool --client-secrets〜/ googleassistant / credentials.json \ --scope https://www.googleapis.com/auth/assistant-sdk-prototype \ --scope https://www.googleapis。 com / auth / gcm \- 保存–headless
此命令将生成一个URL,将其复制并粘贴到您的Web浏览器中。
3.在浏览器中,登录到您的Google帐户,如果您只有多个帐户,请选择设置API密钥所使用的帐户。
登录后,您将看到一个长验证码。复制此代码并将其粘贴到终端窗口中,然后按Enter。如果验证通过身份验证,您将看到以下行显示在命令行上,如上图所示:
保存的凭据:/home/pi/.config/google-oauthlib-tool/credentials.json
4.现在我们的身份验证凭据已通过验证,但是Google仍然希望通过弹出显示进行验证。但是我们的弹出窗口被CORS(跨源资源共享)阻止了,因此,首先使用以下命令禁用此功能。
要使用此命令,请确保您的Chrome浏览器已关闭,然后打开新的终端窗口并键入命令。此命令将在禁用CORS安全性的情况下启动Chrome浏览器,请勿在禁用此功能的情况下浏览Internet。
chromium-browser --disable-web-security --user-data-dir "/home/pi/
打开浏览器后,转到上一个终端窗口,在该窗口中设置了Google助手示例。
5.现在,运行以下命令来首次启动Google助手。在此命令中替换
如果您忘记了项目ID,请转到Google的操作控制台,单击创建的项目,然后单击左上角的齿轮图标,然后单击项目设置。
另外,更换
googlesamples-assistant-pushtotalk --project-id
此命令将在Chromium浏览器中启动一个新选项卡。
6.现在,在终端窗口中按Enter触发它并询问任何问题。
当您问第一个问题时,浏览器中可能会出现以下屏幕。单击继续->我了解->允许。
如果未出现此 继续 屏幕,则没有问题。
7.现在,我们可以使用一键通Google Assist示例并获得输出响应。
当您在终端中按Enter键并说出某个动作时,您应该会听到口头答复,并且还将打开另一个标签,显示您刚刚调用的动作。
您可以通过 从命令中删除–display参数来禁用打开选项卡 。我们需要这样做才能获得授权屏幕。
在Raspberry Pi上使用Google Assistant
我们已经授权我们的Raspberry Pi。每当您要启动Google Assistant时,只要进入环境并按照以下步骤操作即可。
1.在环境中的get上运行以下命令
源环境/ bin /激活
您将看到 (env) 出现在每行的开头。
2.要启动一键通示例,请运行以下命令
googlesamples-assistant-pushtotalk
这次我们不需要产品ID和设备ID。
3.除了一键通功能,您还可以通过说确定Google来触发Google助手。为此,您必须输入一个无效的设备ID才能运行。不正确的设备ID可以是aaaa,abcd。
现在,运行以下命令。
googlesamples-assistant-hotword --device-model-id
现在,您可以向自己的Google助手询问任何事情,只需说“确定Google”即可。
因此,这就是我们在Raspberry Pi上安装Google Assistant并通过将扬声器和麦克风连接到Google Home的方式。