Я хочу автоматически выполнить код hotword.py google assistant sdk.
Я добавил в пример hotword.py gaction для базового приложения, мигающий светодиод. Работает отлично. Это дает мне погоду, дату, знать, кто я и т. Д. Теперь я хочу запускать этот код автоматически каждый раз при запуске малины.
Это было бы просто. Файл Bash с:
python3 /path/to/my/hotword.py
должно быть достаточно. Ну, это "работает", но это проблема. У меня нет звука из динамиков, и я не знаю почему.
Я полностью уверен, что приложение python запущено, потому что если я активирую фракцию «Включение привело», то включение включается. Чтобы быть более уверенным, я выполняю «top» в терминале, и это показало мне, что приложение python работает в Raspberry. Так что я могу заверить, что bash-файл и приложение на python работают хорошо.
Я использую raspberry pi 3 Raspbian: ядро версии 4.14 и google assistant SDK версии 1.0.1.
Хотя у малины может не хватить времени на подготовку системы, поэтому я добавляю задержку в 120 секунд (много времени). Не работает
Хотя, возможно, помощнику нужен терминал, чтобы он работал хорошо. Я создаю для bash файлов, один для открытия xlterminal и другой для выполнения команды в предыдущем opend xlterminal. Ну, bash-файлы работают, но звука пока нет.
Хотя, возможно, я не могу воспроизвести аудио из файла bash (может быть). Я добавил команду для воспроизведения аудио до запуска приложения-помощника Google. Звук играет и звучит! Большой!! но приложение помощника гугла без звука пока.
Это мои файлы 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 и запустить команды в run_.sh в xlterminal
lxterminal --command="/bin/bash -c '/home/pi/run_.sh; /bin/bash'"
sudo crontab -e: эта команда открывает cron, где я пишу команду, которую хочу выполнять каждый раз при запуске raspberry. Спите в течение 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, который запускает приложение горячих слов, и все работает хорошо. Там звук!
Но если я захочу автоматически запустить launcher.sh с помощью crontab, сначала малина подождет 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}
Как видите, есть какая-то ошибка, приложение работает хорошо, ответ отображается, но нет звука.