Google Assistant Library

Paquete google.assistant.library.

class google.assistant.library.Assistant(credentials, device_model_id)

Cliente para la biblioteca de Asistente de Google.

Proporciona funciones de control básicas y control de ciclo de vida para el Asistente de Google. Se recomienda usar el Asistente como ContextManager:

with Assistant(credentials, device_model_id) as assistant:

Esto permite que la implementación nativa subyacente controle correctamente la administración de la memoria.

Una vez que se llama a start(), el Asistente genera una transmisión de eventos que retransmite los diversos estados en los que se encuentra actualmente, por ejemplo:

ON_CONVERSATION_TURN_STARTED
ON_END_OF_UTTERANCE
ON_RECOGNIZING_SPEECH_FINISHED:
    {'text': 'what time is it'}
ON_RESPONDING_STARTED:
    {'is_error_response': False}
ON_RESPONDING_FINISHED
ON_CONVERSATION_TURN_FINISHED:
    {'with_follow_on_turn': False}

Consulta EventType para obtener detalles sobre todos los eventos y sus argumentos.

Glosario:

  • Palabra clave: Es la frase que el Asistente escucha cuando no está silenciado:

    "OK Google" OR "Hey Google"
    
  • Turno: Es una sola solicitud del usuario seguida de una respuesta del Asistente.

  • Conversación: Uno o más turnos que generan un resultado final deseado del Asistente:

    "What time is it?" -> "The time is 6:24 PM" OR
    "Set a timer" -> "Okay, for how long?" ->
    "5 minutes" -> "Sure, 5 minutes, starting now!"
    
Parámetros:
  • credentials (google.oauth2.credentials.Credentials): Son las credenciales de OAuth2 de Google del usuario.
  • device_model_id (str): Es el device_model_id que se registró para tu proyecto con Google. No debe ser una cadena vacía.
Se genera el error:

ValueError: Si device_model_id se dejó como None o vacío.

device_id

Muestra el ID de dispositivo que genera el Asistente.

Este valor identifica tu dispositivo para el servidor cuando usas servicios como Acciones en dispositivos de Google. Esta propiedad solo se completa DESPUÉS de que se llame a start().

Se muestra lo siguiente:El ID del dispositivo una vez que se llamó a start(), una cadena vacía de lo contrario
Tipo de datos que se muestra:str
send_text_query(consulta)

Envía |query| al Asistente como si el usuario lo hubiera dicho.

Se comportará de la misma manera que un usuario que dice la palabra clave y realiza una consulta O dice la respuesta a una consulta adicional.

Parámetros:query (str): Es la consulta de texto que se enviará al Asistente.
set_mic_mute(is_muted)

Evita que Asistente escuche la palabra clave.

Permite inhabilitar que el Asistente escuche la palabra clave. Esto proporciona una funcionalidad similar al botón de privacidad que se encuentra en la parte posterior de Google Home.

Este método no realiza ninguna acción si el Asistente aún no se inició.

Parámetros:is_muted (bool): Si es verdadero, se detiene la escucha de Asistente, y si es falso, se le permite reiniciarse.
start()

Inicia el Asistente, lo que incluye escuchar una palabra clave.

Una vez que se llame a start(), el Asistente comenzará a procesar los datos de la fuente de audio ALSA "predeterminada" y escuchará la palabra clave. Esto también iniciará otros servicios que proporciona el Asistente, como temporizadores o alarmas. Solo se puede llamar a este método una vez. Una vez que se llame a la función, el Asistente seguirá ejecutándose hasta que se llame a __exit__.

Se muestra lo siguiente:Es una fila de eventos que notifican los cambios en el estado del Asistente.
Tipo de datos que se muestra:google.assistant.event.IterableEventQueue
start_conversation()

Inicia manualmente una nueva conversación con el Asistente.

Comienza a grabar la voz del usuario y a enviarla a Google, similar a lo que sucede cuando el Asistente escucha la palabra clave.

Este método no realiza ninguna acción si el Asistente no se inició o se silencia.

stop_conversation()

Detiene cualquier conversación activa con Asistente.

Asistente podría estar escuchando la consulta del usuario O respondiendo. Si no hay una conversación activa, no se realizará ninguna acción.

class google.assistant.library.event.AlertEvent(event_type, args, **_)

Se extiende el evento para agregar el análisis de "alert_type".

class google.assistant.library.event.AlertType

Tipos de alertas

Se usa con los eventos ON_ALERT_STARTED y ON_ALERT_FINISHED.

ALARM = 0

Un evento establecido para una hora absoluta, como "3 a.m. del lunes"

TIMER = 1

Un evento configurado para una hora relativa, como "dentro de 30 segundos"

class google.assistant.library.event.DeviceActionEvent(event_type, args, **kwargs)

Extiende el evento para agregar la propiedad "actions".

actions

Es un generador de comandos para ejecutar en el dispositivo actual.

class google.assistant.library.event.Event(event_type, args, **_)

Es un evento que genera el Asistente.

type

EventType: Es el tipo de evento que se generó.

args

dict: Son los pares clave-valor de argumentos asociados con este evento.

static New(event_type, args, **kwargs)

Crea un evento nuevo con una clase de evento especializada cuando sea necesario.

Parámetros:
  • event_type (int): Es un ID numérico que corresponde a un evento en google.assistant.event.EventType.
  • args (dict): Son los pares clave-valor de argumentos asociados con este evento.
  • kwargs (dict): Son pares clave-valor de argumentos opcionales específicos de una especialización de la clase de evento para un EventType.
class google.assistant.library.event.EventType

Tipos de eventos.

ON_ALERT_FINISHED = 11

Indica que finalizó la alarma de alert_type.

Parámetros:alert_type (AlertType): Es el ID de la enumeración que representa el tipo de alerta que acaba de finalizar.
ON_ALERT_STARTED = 10

Indica que comenzó a sonar una alerta.

Esta alerta continuará hasta que se reciba ON_ALERT_FINISHED con el mismo alert_type. Solo debe haber una alerta activa en un momento determinado.

Parámetros:alert_type (AlertType): Es el ID de la enumeración que representa el tipo de alerta que se está reproduciendo en el momento.
ON_ASSISTANT_ERROR = 12

Indica si la biblioteca de Asistente encontró un error.

Parámetros:is_fatal (bool): Si es verdadero, el Asistente no podrá recuperarse y se deberá reiniciar.
ON_CONVERSATION_TURN_FINISHED = 9

El Asistente terminó el giro actual.

Esto incluye procesar la consulta de un usuario y decir la respuesta completa, si la hay.

Parámetros:with_follow_on_turn (booleano): Si es verdadero, el Asistente espera una interacción de seguimiento del usuario. Se volverá a abrir el micrófono para permitir que el usuario responda una pregunta de seguimiento.
ON_CONVERSATION_TURN_STARTED = 1

Indica que comenzó un nuevo giro.

En este momento, el Asistente está escuchando y esperando una consulta del usuario. Esto puede deberse a que se escuchó la palabra clave o se llamó a start_conversation() en el Asistente.

ON_CONVERSATION_TURN_TIMEOUT = 2

Se agotó el tiempo de espera de Asistente mientras esperaba una consulta comprensible.

Esto puede deberse a que se activó incorrectamente la palabra activa o a que el Asistente no pudo comprender lo que dijo el usuario.

ON_DEVICE_ACTION = 14

Indica que se envió una solicitud de acción del dispositivo al dispositivo.

Se envía si se activa cualquier gramática de dispositivos para los atributos que admite el dispositivo. Este tipo de evento tiene una propiedad "actions" especial que mostrará un iterador o comandos de Device Action y los parámetros asociados con ellos (si corresponde).

Parámetros:dict: Es la carga útil de JSON decodificada de una solicitud de Acción del dispositivo.
ON_END_OF_UTTERANCE = 3

El Asistente dejó de escuchar una consulta del usuario.

Es posible que Asistente no haya terminado de interpretar lo que dijo el usuario, pero dejó de escuchar más datos de audio.

ON_MEDIA_STATE_ERROR = 20

Indica que se produjo un error cuando se estaba reproduciendo una pista.

El reproductor multimedia integrado intentará saltar a la siguiente pista o volver a ON_MEDIA_STATE_IDLE si no queda nada para reproducir.

ON_MEDIA_STATE_IDLE = 16

Indica que no se está reproduciendo nada ni hay contenido en cola para reproducir.

Este evento se transmite desde el reproductor multimedia integrado de la biblioteca de Google Assistant para noticias o podcasts durante el inicio y cada vez que el reproductor se inhabilita porque un usuario detuvo el contenido multimedia o lo puso en pausa, y se agotó el tiempo de espera de la transmisión.

ON_MEDIA_TRACK_LOAD = 17

Indica que se está cargando una pista, pero aún no comenzó a reproducirse.

Es posible que se envíe varias veces si se cargan metadatos nuevos de forma asíncrona. Por lo general, le sigue el evento ON_MEDIA_TRACK_PLAY.

Parámetros:
  • metadata (dict):

    Son los metadatos de la pista cargada. No todos los campos se completarán en este momento. Si un campo es desconocido, no se incluirá. Entre los campos de metadatos, se incluyen los siguientes:

    album(str): Es el nombre del álbum al que pertenece la pista. album_art(str): Es una URL para la portada del álbum. artist(str): Es el artista que creó esta pista. duration_ms(double): Es la duración de esta pista en milisegundos. title(str): Es el título de la pista.
  • track_type (MediaTrackType): Es el tipo de pista cargada.
ON_MEDIA_TRACK_PLAY = 18

Indica que una pista está emitiendo audio en este momento.

Esto solo se activará cuando realicemos la transición de un estado a otro, como de ON_MEDIA_TRACK_LOAD o ON_MEDIA_TRACK_STOP.

Parámetros:
  • metadata (dict):

    Son los metadatos de la pista que se está reproduciendo. Si un campo es desconocido, no se incluirá. Entre los campos de metadatos, se incluyen los siguientes:

    album(str): Es el nombre del álbum al que pertenece la pista. album_art(str): Es una URL para la portada del álbum. artist(str): Es el artista que creó esta pista. duration_ms(double): Es la duración de esta pista en milisegundos. title(str): Es el título de la pista.
  • position_ms (double): Es la posición actual en una pista de reproducción en milisegundos desde el principio. Si "metadata.duration_ms" es desconocido (se establece en 0), no se establecerá este campo.
  • track_type (MediaTrackType): Es el tipo de pista que se está reproduciendo.
ON_MEDIA_TRACK_STOP = 19

Indica que se detuvo una pista que se estaba reproduciendo anteriormente.

Por lo general, esto se debe a que el usuario hizo una pausa. La pista puede volver a ON_MEDIA_TRACK_PLAY si el usuario la reanuda.

Parámetros:
  • metadata (dict):

    Metadatos del segmento detenido. Si un campo es desconocido, no se incluirá. Entre los campos de metadatos, se incluyen los siguientes:

    album(str): Es el nombre del álbum al que pertenece la pista. album_art(str): Es una URL para la portada del álbum. artist(str): Es el artista que creó esta pista. duration_ms(double): Es la duración de esta pista en milisegundos. title(str): Es el título de la pista.
  • position_ms (double): Es la posición actual en una pista detenida en milisegundos desde el principio. Si "metadata.duration_ms" es desconocido (se establece en 0), no se establecerá este campo.
  • track_type (MediaTrackType): Es el tipo de pista detenida.
ON_MUTED_CHANGED = 13

Indica si el Asistente está escuchando o no.

start() siempre generará un ON_MUTED_CHANGED para informar el valor inicial.

Parámetros:is_muted (bool): Si es verdadero, significa que Asistente no está escuchando su palabra clave y no responderá las consultas del usuario.
ON_NO_RESPONSE = 8

El Asistente completó correctamente su turno, pero no tiene nada que decir.

ON_RECOGNIZING_SPEECH_FINISHED = 5

El Asistente determinó el discurso reconocido final.

Parámetros:text (str): Es la interpretación de texto final de la consulta de un usuario.
ON_RENDER_RESPONSE = 15

Indica que el Asistente tiene un resultado de texto para renderizar una respuesta.

Parámetros:
  • type (RenderResponseType): Es el tipo de respuesta que se renderizará.
  • text (str): Es la cadena que se renderizará para RenderResponseType.TEXT.
ON_RESPONDING_FINISHED = 7

Asistente terminó de responder con la voz.

ON_RESPONDING_STARTED = 6

Asistente comienza a responder con voz.

El Asistente responderá hasta que se reciba ON_RESPONDING_FINISHED.

Parámetros:is_error_response (booleano): Si es verdadero, significa que se está reproduciendo una TTS de error local. De lo contrario, el Asistente responde con una respuesta del servidor.
ON_START_FINISHED = 0

La biblioteca de Asistente terminó de iniciarse.

class google.assistant.library.event.IterableEventQueue(timeout=3600)

Extiende queue.Queue para agregar una interfaz __iter__.

offer(evento)

Ofrece un evento para ponerlo en la cola.

Si la cola está llena, el evento se registrará, pero no se agregará.

Parámetros:event (Evento): Es el evento que se intentará agregar a la fila.
class google.assistant.library.event.MediaStateChangeEvent(event_type, args, **_)

Extiende el evento para agregar el análisis de "state".

class google.assistant.library.event.MediaTrackType

Son los tipos de pista para un evento ON_MEDIA_TRACK_X.

Se usa con ON_MEDIA_TRACK_LOAD, ON_MEDIA_TRACK_PLAY y ON_MEDIA_TRACK_STOP.

CONTENT = 2

Es el contenido real de un elemento (noticias o podcasts).

TTS = 1

Una introducción de TTS o una pista intersticial relacionada con un elemento

class google.assistant.library.event.RenderResponseEvent(event_type, args, **_)

Se extiende el evento para agregar el análisis de "response_type".

class google.assistant.library.event.RenderResponseType

Tipos de contenido que se renderizarán.

Se usa con ON_RENDER_RESPONSE