1.SSH root 登陆 :用户 pi: 密码*** 用户 root: 密码 ***
1.1 sudo passwd root
1.2 sudo passwd --unlock root //启用 root 账号登录
1.4 root 用户 执行raspi-config,配置界面选择 5 interface option ,继续选择SSH
1.5 sudo nano /etc/ssh/sshd_config
//新版本ssh默认关闭root登陆 可以修改一下ssh的配置文件
// #PermitRootLogin without-password 为 PermitRootLogin yes
2. 声音配置:
2.1 speaker-test -t wav //测试声音播放
2.2 raspi-config ‘advance options’ ‘audio’ ‘3.5mm’
2.3 执行命令 arecord -l (mic device) and aplay -l (speaker device) 记录下设备号 <card number>,<device number>
2.4 修改/home/pi 下面的文件.asoundrc //注意/home/pi文件仅仅对 pi 用户有效, root用户需要拷贝到root文件夹下
pcm.!default {
type asym
capture.pcm "mic"
playback.pcm "speaker"
}
pcm.mic {
type plug
slave {
pcm "hw:<card number>,<device number>"
}
}
pcm.speaker {
type plug
slave {
pcm "hw:<card number>,<device number>"
}
}
2.5 录音 test:
arecord --device=hw:1,0 --format=S16_LE --duration=5 --rate=44100 --file-type=raw out.raw
arecord --format=S16_LE --duration=5 --rate=44100 --file-type=raw out.raw
2.6 播放 test:
aplay --format=S16_LE --rate=44100 out.raw
3. 申请Google cloud :
3.1 创建一个项目或者选一个已经存在的项目:https://console.cloud.google.com/cloud-resource-manager
3.2 开启Google Assistant API:https://console.developers.google.com/apis/api/embeddedassistant.googleapis.com/overview
3.3 开启个人Google账号的权限,个人信息授权给设备访问:https://myaccount.google.com/activitycontrols
3.4 注册设备模型(LIGHT for test):https://console.actions.google.com/
new project 选择刚刚创建的Google cloud 项目
下载生成的josn文件
如果该项目没有注册模型,好像没有二次进入注册的选项,需要删除该项目,重新来过
最多同时运行的设备只有2个,大于2个好像要另外申请
4. 拷贝授权文件到Raspberry pi 的 Downloads 目录:client_secret_client-id.json
5. 授予 Google Assistant 一定的权限,否则你运行项目的时候,她会一直跟你说,她需要权限才能跟你说话。
6.安装 SDK 和示例项目:
Google 推荐在 Python 的虚拟环境运行该项目,避免对系统环境造成影响,具体运行以下命令:
sudo apt-get update
sudo apt-get install python3-dev python3-venv
python3 -m venv env
env/bin/python -m pip install --upgrade pip setuptools
source env/bin/activate
上面的最后一条命令是激活虚拟环境,然后安装依赖软件包:
sudo apt-get install portaudio19-dev libffi-dev libssl-dev
安装Google SDK 新版本的依赖包:
python -m pip install --upgrade google-assistant-library
python -m pip install --upgrade google-assistant-sdk[samples]
安装Google 授权工具:
python -m pip install --upgrade google-auth-oauthlib[tool]
7.注册设备 & test demo:
7.1 注册设备:
7.11 google-oauthlib-tool --scope https://www.googleapis.com/auth/assistant-sdk-prototype \
--save --headless --client-secrets /home/pi/downloads/client_secret_client-id******.json
7.12 Please visit this URL to authorize this application: https://*******
7.13 Enter the authorization code:*******
7.14 注册成功提示:credentials saved: /path/to/.config/google-oauthlib-tool/credentials.json
7.2 test dome:
googlesamples-assistant-pushtotalk --project-id my-***-project --device-model-id my-model-***
如果连接成功按下enter键,开始和 Google assistant会话。
可能的错误:
1.mic找不到(重新配置mic和测试)
2.项目模型未开启Google assistant功能(注意需要手动开启)
8. 硬件添加LED到树莓派的pin_25
9. 给刚才注册的模型添加:Supported traits(勾选 onoff)https://console.actions.google.com/
10. 再次运行googlesamples-assistant-pushtotalk:
说话:‘turn on’ / ‘turn off’ 查看模型是否更新成功,成功提示如下
INFO:root:Recording audio request.
INFO:root:End of audio request detected
INFO:root:Transcript of user request: "turn on".
INFO:root:Playing assistant response.
INFO:root:Turning device on
INFO:root:Waiting for device executions to complete.
INFO:root:Finished playing assistant response.
11. clone 更新测试代码:git clone https://github.com/googlesamples/assistant-sdk-python
安装模块:pip install RPi.GPIO
cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
编辑代码:nano pushtotalk.py
添加:
import RPi.GPIO as GPIO //添加到文件头
device_handler = device_helpers.DeviceRequestHandler(device_id)
GPIO.setmode(GPIO.BCM) //添加
GPIO.setup(25, GPIO.OUT, initial=GPIO.LOW) //添加
@device_handler.command('action.devices.commands.OnOff')
def onoff(on):
if on:
logging.info('Turning device on')
GPIO.output(25, 1) //添加
else:
logging.info('Turning device off')
GPIO.output(25, 0) //添加
12. 执行新的测试代码://发送 语音指令 turn on/off 成功控制led灯
python pushtotalk.py