Sigue estas instrucciones para ejecutar un código personalizado en tu dispositivo en respuesta a comandos del Asistente de Google.
Ejecuta la muestra
Ahora que definiste un rasgo y actualizaste el modelo, verifica Asistente de Google está devolviendo un comando de activación/desactivación para el para cada búsqueda.
googlesamples-assistant-hotword --device-model-id my-model
Pruebe la siguiente consulta:
Hey Google, actívalo.
Deberías ver las siguientes instrucciones en el resultado de la consola. De lo contrario, consulta las instrucciones para solucionar problemas.
ON_RECOGNIZING_SPEECH_FINISHED:
{'text': 'turn on'}
ON_DEVICE_ACTION:
{'inputs': [{'payload': {'commands': [{'execution': [{'command': 'action.devices.commands.OnOff',
'params': {'on': True}}], 'devices': [{'id': 'E56D39D894C2704108758EA748C71255'}]}]},
'intent': 'action.devices.EXECUTE'}], 'requestId': '4785538375947649081'}
Do command action.devices.commands.OnOff with params {'on': True}
Encontrarás dónde se imprimen estas sentencias en el código fuente.
Obtén el código fuente
Ahora estás listo para comenzar tu propio proyecto:
git clone https://github.com/googlesamples/assistant-sdk-python
Busca el controlador de comandos
El archivo hotword.py
del código de muestra usa el SDK para enviar solicitudes y
recibir respuestas del Asistente de Google.
cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/library
nano hotword.py
Busca la siguiente definición de controlador:
def process_event(event):
Actualmente, esta función imprime todos los nombres de eventos de Acción del dispositivo parámetros con la siguiente línea:
print('Do command', command, 'with params', str(params))
Este código controla el comando action.devices.commands.OnOff
. Esta
es parte de la función OnOff
de trait. Actualmente, este código solo imprime los resultados en la consola. Puedes
modificar este código para que haga lo que quieras
en un proyecto final. Agrega el siguiente bloque debajo del comando print
en process_event()
.
print('Do command', command, 'with params', str(params)) # Add the following: if command == "action.devices.commands.OnOff": if params['on']: print('Turning the LED on.') else: print('Turning the LED off.')
Ejecuta tu código fuente modificado directamente para ver el resultado.
python hotword.py --device-model-id my-model
Usa la misma consulta de antes:
Hey Google, actívalo.
Si conectaste una luz LED a la Raspberry Pi, sigue leyendo para aprender a encender la luz LED en respuesta a con el comando OnOff. De lo contrario, omite la siguiente sección para descubrir cómo agregar más características y controladores.
Próximos pasos: Raspberry Pi
Ahora que sabes cómo controlar el comando entrante, modifica el código de muestra para encender una luz LED. Esto requerirá hardware adicional si usas el Raspberry Pi.
Cómo importar el paquete GPIO
Para simplificar el acceso al software a los pines de entrada y salida de uso general (GPIO) en Raspberry Pi, instala el archivo RPi.GPIO del paquete en el entorno virtual.
pip install RPi.GPIO
Modifica la muestra
Abre el archivo hotword.py
.
nano hotword.py
En el archivo hotword.py
, importa el archivo RPi.GPIO.
para controlar las clavijas GPIO en la máquina Pi. Coloca la siguiente instrucción cerca del
Otras sentencias import
:
import RPi.GPIO as GPIO
Modifica el código para establecer la clavija de salida inicialmente en el estado de lógica baja. Hacer esto
En la función main()
, antes de procesar los eventos:
with Assistant(credentials, device_model_id) as assistant: events = assistant.start() device_id = assistant.device_id print('device_model_id:', device_model_id) print('device_id:', device_id + '\n') GPIO.setmode(GPIO.BCM) GPIO.setup(25, GPIO.OUT, initial=GPIO.LOW) ...
Modifica el código que agregaste en process_event()
. Cuando se recibe el comando on,
establecemos el pin en el estado lógico alto. Cuando se reciba el comando off, configura la
fijar al estado de lógica baja.
if command == "action.devices.commands.OnOff": if params['on']: print('Turning the LED on.') GPIO.output(25, 1) else: print('Turning the LED off.') GPIO.output(25, 0)
Guarda los cambios y cierra el archivo.
Ejecuta la muestra
Ejecuta el código de muestra modificado.
python hotword.py --device-model-id my-model
Usa la misma consulta que antes. Se debería encender la luz LED.
Ese es solo el comienzo. Obtén más información sobre cómo agregar más traits y controladores.