我想自动执行Google助手sdk的hotword.py代码。
我在hotword.py示例中添加了一个基本应用程序的gaction,闪烁了led。它运作完美。它给了我天气,日期,知道我是谁等等。现在,我想每次树莓派启动时自动运行此代码。
这很简单。具有以下内容的bash文件:
python3 /path/to/my/hotword.py
应该足够了。好吧,它“有效”,但是这是一个问题。我的扬声器没有声音,也不知道为什么。 我完全确定python应用程序正在运行,因为如果我激活gaction“ turn led on”,led就会打开。更确定的是,我在终端中执行“ top”,这表明python应用程序正在树莓派中运行。因此,我可以确保bash文件和python应用程序运行良好。
我正在使用树莓派3 Raspbian:内核版本4.14和Google Assistant SDK 1.0.1版本。
尽管我可能是树莓没有足够的时间来准备系统,所以我增加了120秒的延迟(很多时间)。没用 我虽然助理可能需要一个终端才能正常工作。我创建了bash文件,一个打开一个xlterminal,另一个创建命令以执行到先前打开的xlterminal。好吧,bash文件有效,但是还没有声音。 我可能是无法播放bash文件中的音频(可能)。我添加了一个命令,以在Google助手应用程序运行之前播放音频。音频播放并发出声音!!大!!但是Google Assistant应用程序还没有声音。
这些是我的bash文件。 run_.sh:执行python应用程序
cd /home/pi/assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/library
python3 hotword.py --project-id proyect-23h4 --device-model-id proyect-23h4-proyect-uasdg --credentials /path/to/credentials.json
launcher.sh:调用xlterminal,然后将命令运行到xlterminal中的run_.sh
lxterminal --command="/bin/bash -c '/home/pi/run_.sh; /bin/bash'"
sudo crontab -e:此命令打开一个cron,在此每次覆盆子启动时我在其中输入要执行的命令的文本。睡眠30秒,播放音频,授权打开xlterminal,在终端中运行launcher.sh,然后将任何错误保存在cronlog中。
@reboot sleep 30; omxplayer /home/pi/Desktop/Grabacion.m4a; DISPLAY=:0.0 XAUTHORITY=/home/pi/.Xauthority /home/pi/launcher.sh >/home/pi/logs/cronlog 2>&1
如果我发短信
sh launcher.sh
在终端中,它打开xlterminal,执行run_.sh,这将运行热门应用程序,并且一切正常。有声音! 但是,如果我想用crontab自动运行launcher.sh,首先是树莓派等待30秒钟,Grabacion.m4a声音响起,xlterminal被打开,hotword应用程序运行到其中,但是...没有声音。 错误应该在哪里的Cronlog文件为空,没有任何错误。 这是运行该应用程序的终端所显示的内容(这是西班牙语应用程序)
ON_CONVERSATION_TURN_STARTED
ON_END_OF_UTTERANCE
ON_END_OF_UTTERANCE
ON_RECOGNIZING_SPEECH_FINISHED:
{"text": "Qué día es hoy"}
ON_RENDER_RESPONSE:
{"text": "Es viernes, 7 de junio de 2019.", "type": 0}
ON_RESPONDING_STARTED:
{"is_error_response": false}
ON_RESPONDING_FINISHED
ON_CONVERSATION_TURN_FINISHED:
{"with_follow_on_turn": false}
如您所见,有任何错误,应用程序运行良好,显示了答案,但没有声音。