如何在启动时运行Google Assistant SDK?

时间:2017-06-24 23:26:29

标签: raspberry-pi gpio google-home python-venv google-assistant-sdk

如何让google-assistant-demo在启动时运行?

我可以使用

手动运行它
$ source /home/pi/env/bin/activate
(env) $ google-assistant-demo

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

2 个答案:

答案 0 :(得分:0)

以此为基础: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引脚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

这将检查助手是否已在运行,如果不是,则启动助手。请注意,如果您的启动脚本被调用为gassist.sh以外的其他内容,则必须编辑上述代码

现在它在虚拟环境中完美运行,并且在启动时以CLI模式运行! :)

答案 1 :(得分:0)

这就是我在Raspberry Pi Model B上没有显示器(我认为有人称之为无头?)的创业所做的。希望这会有所帮助!

  1. 使用arecord录制声音文件
  2. https://developers.google.com/assistant/sdk/prototype/getting-started-pi-python/configure-audio

    1. 在/ home / pi / config / lxsession / LXDE-pi / autostart add

      @lxterminal --command“/home/pi/googlehome.sh”

    2. 像这样的东西

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

      googlehome.sh是启动时运行Google Assistant演示的脚本。

      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
        
      2. 由于我不确定Google智能助理在开机时何时准备就绪,我可以播放声音文件googlehomeready.raw。听到后,我知道Google智能助理演示正在运行。

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