Google Assistant API停止响应“ Ok google”。卡在MEDIA_STATE_IDLE

时间:2019-04-22 21:52:31

标签: python raspberry-pi google-assistant-sdk

过去三天,我一直在树莓派上使用Gogle Assistant SDK。突然,它停止了对提示的响应。我正在使用示例hotword.py和一些自定义代码。

以下是我已完成停止工作的所有工作的清单:

-将控制灯光的代码从使用os.system启动程序更改为直接在程序中控制灯光。其中包括:

-pip在env / bin / activate源中安装RPi.GPIO

-将该库导入Google的示例代码中

-从程序访问Firebase的凭据

完成这些操作后,我在使用此.sh启动助手时重新启动了pi

#!/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上遇到了问题。经录音验证,我的麦克风正在工作。

感谢您的帮助。

0 个答案:

没有答案