Google Assistant API перестал отвечать на "Ok google". Застрял на MEDIA_STATE_IDLE - PullRequest
1 голос
/ 23 апреля 2019

Последние три дня я использую Gogle Assistant SDK на моем Raspberry Pi. Внезапно он перестал отвечать на подсказку. Я использую образец hotword.py с некоторым пользовательским кодом.

Вот список всего, что я сделал, чтобы это перестало работать:

-Изменил мой код, управляющий моим источником света, с помощью os.system, чтобы запустить программу для управления источником света непосредственно в программе. Это включало:

-Pip установить RPi.GPIO в env / bin / activ source

-Импорт этой библиотеки в пример кода из Google

-Доступ к учетным данным для firebase из программы

После этих действий я перезагрузил пи, когда начинаю ассистировать при запуске с этим .sh

#!/bin/bash

source env/bin/activate
cd assistant-sdk-python/google-assistant sdk/googlesamples/assistant/library

python hotword.py --device-model-id {model id}

Показывает ожидаемый результат, но игнорирует подсказки

ok (shown in below code)
device_model_id: {model id}
device_id: {device id}

ON_MUTED_CHANGED:
  {"is_muted": false}
ON_MEDIA_STATE_IDLE
ON_START_FINISHED

Я вернул код и установил, но это не помогло. Я не уверен, что этот материал вызвал проблему, но я подумал, что стоит упомянуть.

Я также включил чувствительность микрофона при экспорте ASSISTANT_MIC_SENSITIVITY = -6

Вот некоторые из hotword.py

# My imports
import RPi.GPIO as IO        

import firebase_admin
from firebase_admin import credentials
from firebase_admin import db

#start my code --------------------------------------------------------

cred = credentials.Certificate('/path-to-certificate')
default_app = firebase_admin.initialize_app(cred, {
    'databaseURL' : 'https://myproject.firebaseio.com/'
})

IO.setwarnings(False)          
IO.setmode (IO.BOARD) 

IO.setup(16,IO.OUT)

p = IO.PWM(16,50)

root = db.reference()

print("ok")

#end my code ----------------------------------------------------------

def process_event(event):

    if event.type == EventType.ON_CONVERSATION_TURN_STARTED:
        print()

    print(event)

    if event.type == EventType.ON_DEVICE_ACTION:
        for command, params in event.actions:

            print('Do command', command, 'with params', str(params))

        #My code start ----------------------------------------------------------------

           if command == "action.devices.commands.OnOff":

                if params['on']:
                    print('Turning the LED on.')

                    currentVal = root.child('currentVal').get()
                    onVal = root.child('onAngle').get()

                    if(currentVal != onVal):
                        root.child('currentVal').set(onVal)
                        root.child('value').set(onVal)
                        p.ChangeDutyCycle(float(onVal))
                        time.sleep(0.5)
                        p.ChangeDutyCycle(0)    

            else:
               #same as above different angles   

        #My code end ------------------------------------------------------------------

Извините, если это слишком много кода, я понятия не имею, что вызывает проблемы при прослушивании

Проблема все еще открыта на github в https://github.com/googlesamples/assistant-sdk-python/issues/316 Люди, кажется, имеют проблему на SDK v.1.01, а не v1. Мой микрофон работает, я проверил с помощью arecord.

Спасибо за любую помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...