如何运行 Google Assistant SDK 开机启动?

How to run Google Assistant SDK on start-up?

如何在启动时将 google-assistant-demo 设置为 运行?

我可以运行手动使用

$ source /home/pi/env/bin/activate
(env) $ google-assistant-demo

但我想在 CLI 模式或 GUI 模式下启动时 运行 它。 我希望它在其虚拟环境 (venv) 中 运行。 全部在后台进行,不会干扰任何终端或 SSH 会话。

以此为基础:https://youtu.be/ohUszBxuQA4?t=774 – 感谢 Eric Parisot

但是有一些变化。

您需要 download the src file 他使用并将其内容提取到 /home/pi/src/

我没有像他在视频中那样 运行 gassist.sh sudo,因为它给了我以下错误:

OpenAlsaHandle PcmOpen: No such file or directory
[7689:7702:ERROR:audio_input_processor.cc(756)] Input error
ON_MUTED_CHANGED:
{‘is_muted’: False}
ON_START_FINISHED
ON_ASSISTANT_ERROR:
{‘is_fatal’: True}
[7689:7704:ERROR:audio_input_processor.cc(756)] Input error
ON_ASSISTANT_ERROR:
{‘is_fatal’: True}

修复:不要 运行 作为 sudo

如果gassist.sh给出关于RPi.GPIO的错误(作者的脚本在助手监听时激活GPIO pin 25,因此需要在内安装RPi.GPIO 环境)你需要做https://youtu.be/ohUszBxuQA4?t=580:

$ source /home/pi/env/bin/activate
(env) $ pip install RPi.GPIO
(env) $ deactivate

然后我做了 sudo nano /etc/profile 并将其附加到末尾:

#Harvs was here on 24/06/17
if pidof -x "gassist.sh" >/dev/null; then
    echo ""
    echo "/etc/profile says:"
    echo "An instance of Google Assistant is already running, will not start again"
    echo ""
else
    echo "Starting Google Assistant..."
    echo "If you are seeing this, perhaps you have SSH within seconds of reboot"
    /home/pi/src/gassist.sh &
fi

这将检查助手是否已经 运行ning 并在未启动时启动它。请注意,如果您的启动脚本名称不是 gassist.sh,您将必须编辑上述代码

现在它在虚拟环境中和启动到 CLI 模式时完美运行! :)

这就是我在 Raspberry Pi Model B 上实现无监视器启动(我想有些人称之为无头?)的方法。希望这对您有所帮助!

  1. 使用 arecord 录制声音文件

https://developers.google.com/assistant/sdk/prototype/getting-started-pi-python/configure-audio

  1. 在/home/pi/config/lxsession/LXDE-pi/autostart中添加

    @lxterminal --command "/home/pi/googlehome.sh"

像这样

@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@lxterminal --command "/home/pi/googlehome.sh"
@xscreensaver -no-splash
@point-rpi

其中googlehome.sh是启动时运行s Google助手演示的脚本。

  1. 在googlehome.sh中播放声音文件然后运行演示

    #!/bin/bash
    echo Running Google Home Assistant...
    sleep 2
    aplay --format=S16_LE --rate=16k "/home/pi/googlehomeready.raw"
    
    source env/bin/activate
    google-assistant-demo
    

由于我不确定 Google 助手何时在开机时准备就绪,所以我让它播放了一个声音文件 googlehomeready.raw。一听就知道Google助手演示是运行ning.

哦,确保将 googlehome.sh 的模式类型更改为可执行文件。