Google Assistant Library

google.assistant.library-Paket.

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

Client für die Google Assistant-Bibliothek.

Bietet grundlegende Steuerfunktionen und Lebenszyklusverwaltung für Google Assistant. Es empfiehlt sich, Assistant als ContextManager zu verwenden:

with Assistant(credentials, device_model_id) as assistant:

So kann die zugrunde liegende native Implementierung die Speicherverwaltung ordnungsgemäß verarbeiten.

Nach dem Aufruf von start() generiert Assistant einen Ereignisstream, der die verschiedenen Status von Assistant anzeigt, z. B.:

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}

Unter EventType finden Sie Details zu allen Ereignissen und ihren Argumenten.

Glossar:

  • Hotword: Der Begriff, auf den Assistant wartet, wenn er nicht stummgeschaltet ist:

    "OK Google" OR "Hey Google"
    
  • Unterhaltungsrunde: Eine einzelne Nutzeranfrage, gefolgt von einer Antwort von Assistant.

  • Unterhaltung: Ein oder mehrere Gesprächsschritte, die zu einem gewünschten Endergebnis von Assistant führen:

    "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!"
    
Parameter:
  • credentials (google.oauth2.credentials.Credentials): Die Google OAuth2-Anmeldedaten des Nutzers.
  • device_model_id (str): Die device_model_id, die für Ihr Projekt bei Google registriert wurde. Dieser String darf nicht leer sein.
Ausgabe:

ValueError – Wenn device_model_id als „None“ oder leer angegeben wurde.

device_id

Die vom Assistant generierte Geräte-ID.

Anhand dieses Werts wird Ihr Gerät beim Verwenden von Diensten wie Google-Geräteaktionen identifiziert. Diese Property wird erst nach dem Aufruf von start() ausgefüllt.

Liefert:Die Geräte-ID, nachdem start() aufgerufen wurde, andernfalls ein leerer String.
Rückgabetyp:str
send_text_query(query)

Sendet |query| an Assistant, als würde es vom Nutzer gesprochen.

Das entspricht dem Verhalten, wenn ein Nutzer das Hotword spricht und eine Suchanfrage stellt ODER die Antwort auf eine Folgeabfrage spricht.

Parameter:query (str): Die Textabfrage, die an Assistant gesendet werden soll.
set_mic_mute(is_muted)

Assistant hört nicht mehr auf das Hotword.

Hiermit lässt sich verhindern, dass Assistant auf das Hotword achtet. Die Funktion ähnelt der Schaltfläche „Datenschutz“ auf der Rückseite von Google Home.

Diese Methode ist nicht ausführbar, wenn Assistant noch nicht gestartet wurde.

Parameter:is_muted (bool): Wenn „true“ festgelegt ist, hört Assistant nicht mehr zu. Bei „false“ wird die Funktion wieder gestartet.
start()

Startet Assistant und überwacht dabei das Hotword.

Sobald start() aufgerufen wird, beginnt Assistant mit der Verarbeitung von Daten aus der standardmäßigen ALSA-Audioquelle und achtet auf das Hotword. Dadurch werden auch andere von Assistant bereitgestellte Dienste gestartet, z. B. Timer/Wecker. Diese Methode kann nur einmal aufgerufen werden. Nach dem Aufruf wird Assistant weiter ausgeführt, bis __exit__ aufgerufen wird.

Liefert:Eine Warteschlange mit Ereignissen, die über Änderungen am Assistant-Status informieren.
Rückgabetyp:google.assistant.event.IterableEventQueue
start_conversation()

Startet manuell eine neue Unterhaltung mit Assistant.

Die Sprache des Nutzers wird aufgezeichnet und an Google gesendet, ähnlich wie wenn Assistant das Hotword hört.

Diese Methode hat keine Auswirkungen, wenn Assistant nicht gestartet oder stummgeschaltet wurde.

stop_conversation()

Beendet eine aktive Unterhaltung mit Assistant.

Assistant könnte die Anfrage des Nutzers hören ODER antworten. Wenn keine aktive Unterhaltung vorhanden ist, wird keine Aktion ausgeführt.

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

Das Ereignis wird erweitert, um das Parsen von „alert_type“ hinzuzufügen.

class google.assistant.library.event.AlertType

Benachrichtigungstypen

Wird mit den Ereignissen ON_ALERT_STARTED und ON_ALERT_FINISHED verwendet.

ALARM = 0

Ein Ereignis, das auf eine absolute Uhrzeit festgelegt ist, z. B. „Montag, 3 Uhr morgens“

TIMER = 1

Ein Ereignis, das auf eine relative Zeit festgelegt ist, z. B. „In 30 Sekunden“

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

Das Ereignis wird um das Attribut „actions“ erweitert.

actions

Ein Generator von Befehlen, die für das aktuelle Gerät ausgeführt werden sollen.

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

Ein von Assistant generiertes Ereignis.

type

EventType: Der Typ des generierten Ereignisses.

args

dict: Argumentschlüssel/Wert-Paare, die mit diesem Ereignis verknüpft sind.

static New(event_type, args, **kwargs)

Erstellen Sie bei Bedarf ein neues Ereignis mit einer speziellen Ereignisklasse.

Parameter:
  • event_type (int): Eine numerische ID, die einem Ereignis in google.assistant.event.EventType entspricht.
  • args (dict): Argumentschlüssel/Wert-Paare, die mit diesem Ereignis verknüpft sind.
  • kwargs (dict): Optionale Schlüssel/Wert-Paare für Argumente, die für eine Spezialisierung der Event-Klasse für einen EventType spezifisch sind.
class google.assistant.library.event.EventType

Ereignistypen

ON_ALERT_FINISHED = 11

Gibt an, dass der Alarm für alert_type beendet ist.

Parameter:alert_type (AlertType): Die ID des Enumerationstyps, der den Typ der gerade beendeten Benachrichtigung angibt.
ON_ALERT_STARTED = 10

Gibt an, dass ein Alarm ertönt.

Diese Benachrichtigung wird fortgesetzt, bis ON_ALERT_FINISHED mit derselben alert_type empfangen wird. Es sollte immer nur eine Benachrichtigung aktiv sein.

Parameter:alert_type (AlertType): Die ID des Enumerationstyps, der den aktuell ertönenden Benachrichtigungstyp darstellt.
ON_ASSISTANT_ERROR = 12

Gibt an, ob in der Assistant-Bibliothek ein Fehler aufgetreten ist.

Parameter:is_fatal (bool): Wenn „True“ ist, kann Assistant nicht wiederhergestellt werden und muss neu gestartet werden.
ON_CONVERSATION_TURN_FINISHED = 9

Assistant hat die aktuelle Kurve beendet.

Dazu gehört sowohl die Verarbeitung der Suchanfrage eines Nutzers als auch das Aussprechen der vollständigen Antwort, falls vorhanden.

Parameter:with_follow_on_turn (bool): Wenn „Wahr“ ist, erwartet Assistant eine weitere Interaktion des Nutzers. Das Mikrofon wird wieder geöffnet, damit der Nutzer eine Folgefrage beantworten kann.
ON_CONVERSATION_TURN_STARTED = 1

Gibt an, dass eine neue Abbiegung begonnen hat.

Assistant hört derzeit zu und wartet auf eine Nutzeranfrage. Das kann daran liegen, dass das Hotword erkannt wurde oder start_conversation() in Assistant aufgerufen wurde.

ON_CONVERSATION_TURN_TIMEOUT = 2

Die Zeitüberschreitung beim Warten auf eine verständliche Anfrage ist abgelaufen.

Das kann daran liegen, dass das Hotword falsch ausgelöst wurde oder Assistant das, was der Nutzer gesagt hat, nicht verstanden hat.

ON_DEVICE_ACTION = 14

Gibt an, dass eine Geräteaktion an das Gerät gesendet wurde.

Dieser wird gesendet, wenn eine Gerätegrammatik für die vom Gerät unterstützten Traits ausgelöst wird. Dieser Ereignistyp hat eine spezielle Property „actions“, die einen Iterator oder Geräteaktionsbefehl und gegebenenfalls die zugehörigen Parameter zurückgibt.

Parameter:dict: Die decodierte JSON-Nutzlast einer Geräteaktionsanfrage.
ON_END_OF_UTTERANCE = 3

Assistant hört nicht mehr auf die Nutzeranfrage.

Assistant hat möglicherweise noch nicht herausgefunden, was der Nutzer gesagt hat, hört aber nicht mehr nach weiteren Audiodaten.

ON_MEDIA_STATE_ERROR = 20

Gibt an, dass beim Abspielen eines Titels ein Fehler aufgetreten ist.

Der integrierte Mediaplayer versucht, zum nächsten Titel zu springen oder zu ON_MEDIA_STATE_IDLE zurückzukehren, wenn nichts mehr abgespielt werden kann.

ON_MEDIA_STATE_IDLE = 16

Gibt an, dass gerade nichts wiedergegeben wird und auch nichts in der Wiedergabeliste steht.

Dieses Ereignis wird vom integrierten Mediaplayer der Google Assistant-Bibliothek für Nachrichten/Podcasts beim Start und immer dann gesendet, wenn der Player inaktiv ist, weil ein Nutzer die Medien angehalten oder pausiert hat und der Stream abgelaufen ist.

ON_MEDIA_TRACK_LOAD = 17

Gibt an, dass ein Titel geladen wird, aber noch nicht wiedergegeben wird.

Dies kann mehrmals geschehen, wenn neue Metadaten asynchron geladen werden. Darauf folgt in der Regel das Ereignis ON_MEDIA_TRACK_PLAY.

Parameter:
  • metadata (dict):

    Metadaten für den geladenen Titel. Bis dahin sind nicht alle Felder ausgefüllt. Wenn ein Feld unbekannt ist, wird es nicht berücksichtigt. Zu den Metadatenfeldern gehören:

    album(str): Der Name des Albums, zu dem der Titel gehört. album_art(str): Eine URL für das Albumcover. artist(str): Der Künstler, der diesen Titel erstellt hat. duration_ms(double): Die Länge dieses Titels in Millisekunden. title(str): Der Titel des Titels.
  • track_type (MediaTrackType): Der Typ des geladenen Tracks.
ON_MEDIA_TRACK_PLAY = 18

Gibt an, dass ein Titel gerade Audio ausgibt.

Dies wird nur ausgelöst, wenn ein Statuswechsel stattfindet, z. B. von ON_MEDIA_TRACK_LOAD oder ON_MEDIA_TRACK_STOP.

Parameter:
  • metadata (dict):

    Metadaten für den wiedergegebenen Titel. Wenn ein Feld unbekannt ist, wird es nicht berücksichtigt. Zu den Metadatenfeldern gehören:

    album(str): Der Name des Albums, zu dem der Titel gehört. album_art(str): Eine URL für das Albumcover. artist(str): Der Künstler, der diesen Titel erstellt hat. duration_ms(double): Die Länge dieses Titels in Millisekunden. title(str): Der Titel des Titels.
  • position_ms (double): Die aktuelle Position in einem wiedergegebenen Titel in Millisekunden seit Beginn. Wenn „metadata.duration_ms“ unbekannt ist (auf „0“ festgelegt), wird dieses Feld nicht festgelegt.
  • track_type (MediaTrackType): Der Typ des wiedergegebenen Titels.
ON_MEDIA_TRACK_STOP = 19

Gibt an, dass ein zuvor abgespielter Titel angehalten wurde.

Das ist in der Regel auf eine Pause des Nutzers zurückzuführen. Der Titel kann zu ON_MEDIA_TRACK_PLAY zurückkehren, wenn er vom Nutzer fortgesetzt wird.

Parameter:
  • metadata (dict):

    Metadaten für den angehaltenen Titel. Wenn ein Feld unbekannt ist, wird es nicht berücksichtigt. Zu den Metadatenfeldern gehören:

    album(str): Der Name des Albums, zu dem der Titel gehört. album_art(str): Eine URL für das Albumcover. artist(str): Der Künstler, der diesen Titel erstellt hat. duration_ms(double): Die Länge dieses Titels in Millisekunden. title(str): Der Titel des Titels.
  • position_ms (double): Die aktuelle Position in einem angehaltenen Titel in Millisekunden seit Beginn. Wenn „metadata.duration_ms“ unbekannt ist (auf „0“ festgelegt), wird dieses Feld nicht festgelegt.
  • track_type (MediaTrackType): Der Typ des angehaltenen Tracks.
ON_MUTED_CHANGED = 13

Gibt an, ob Assistant gerade zuhört oder nicht.

start() generiert immer einen ON_MUTED_CHANGED, um den Anfangswert zu melden.

Parameter:is_muted (bool): Wenn „True“ ist, hört Assistant derzeit nicht auf sein Hotword und reagiert nicht auf Nutzeranfragen.
ON_NO_RESPONSE = 8

Assistant hat seinen Beitrag erfolgreich abgeschlossen, hat aber nichts zu sagen.

ON_RECOGNIZING_SPEECH_FINISHED = 5

Assistant hat die endgültig erkannte Sprache ermittelt.

Parameter:text (str): Die endgültige Textinterpretation der Suchanfrage eines Nutzers.
ON_RENDER_RESPONSE = 15

Gibt an, dass Assistant Text für eine Antwort rendern muss.

Parameter:
  • type (RenderResponseType): Der Typ der Antwort, die gerendert werden soll.
  • text (str): Der String, der für „RenderResponseType.TEXT“ gerendert werden soll.
ON_RESPONDING_FINISHED = 7

Assistant antwortet nicht mehr per Sprachbefehl.

ON_RESPONDING_STARTED = 6

Assistant antwortet jetzt per Sprachbefehl.

Assistant antwortet, bis ON_RESPONDING_FINISHED empfangen wird.

Parameter:is_error_response (bool): „True“ bedeutet, dass eine lokale TTS-Fehlermeldung wiedergegeben wird. Andernfalls antwortet Assistant mit einer Serverantwort.
ON_START_FINISHED = 0

Die Assistant-Bibliothek wurde gestartet.

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

Erweitert „queue.Queue“, um eine __iter__-Schnittstelle hinzuzufügen.

offer(event)

Biete ein Ereignis an, das in die Warteschlange gestellt werden soll.

Wenn die Warteschlange derzeit voll ist, wird das Ereignis protokolliert, aber nicht hinzugefügt.

Parameter:event (Ereignis): Das Ereignis, das der Warteschlange hinzugefügt werden soll.
class google.assistant.library.event.MediaStateChangeEvent(event_type, args, **_)

Erweitert das Ereignis um die Analyse von „status“.

class google.assistant.library.event.MediaTrackType

Arten von Tracks für ON_MEDIA_TRACK_X-Ereignisse.

Wird mit ON_MEDIA_TRACK_LOAD, ON_MEDIA_TRACK_PLAY und ON_MEDIA_TRACK_STOP verwendet

CONTENT = 2

Der Inhalt eines Artikels (Nachrichten/Podcast).

TTS = 1

Eine TTS-Einführung oder ein Interstitial-Track, der sich auf ein Element bezieht.

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

Das Ereignis wird erweitert, um das Parsen von „response_type“ hinzuzufügen.

class google.assistant.library.event.RenderResponseType

Zu rendernde Inhaltstypen.

Wird mit ON_RENDER_RESPONSE verwendet