Запустите Google помощник SDK hotword.py автоматически - нет звука - PullRequest
0 голосов
/ 08 июня 2019

Я хочу автоматически выполнить код 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}

Как видите, есть какая-то ошибка, приложение работает хорошо, ответ отображается, но нет звука.

...