Google Assistant Library

google.assistant.library パッケージ。

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

Google アシスタント ライブラリのクライアント。

Google アシスタントの基本的なコントロール機能とライフサイクル処理を提供します。アシスタントは ContextManager として使用することをおすすめします。

with Assistant(credentials, device_model_id) as assistant:

これにより、基礎となっているネイティブ実装でメモリ管理を適切に処理できます。

start() が呼び出されると、次のような、アシスタントの現在のさまざまな状態をリレーするイベントのストリームが生成されます。

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}

すべてのイベントとその引数の詳細については、EventType をご覧ください。

用語集:

  • 起動ワード: アシスタントがミュートされていないときにリッスンするフレーズ。

    "OK Google" OR "Hey Google"
    
  • ターン: アシスタントからのレスポンスの前に置かれる、単一のユーザー リクエスト。

  • 会話: アシスタントから目的の最終結果を得られる 1 つまたは複数のターン。

    "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!"
    
パラメータ:
  • credentialsgoogle.oauth2.credentials.Credentials)- ユーザーの Google OAuth2 認証情報。
  • device_model_idstr)- Google に登録したプロジェクトの device_model_id。空の文字列は使用できません。
発生するエラー:

ValueError - device_model_id が None または空の場合。

device_id

アシスタントによって生成されたデバイス ID を返します。

この値は、Google Device Actions などのサービスを使用するときに、サーバーがデバイスを識別するために使用します。このプロパティは、start() が呼び出された後にのみ設定されます。

戻り値:start() が呼び出された後は、デバイス ID。それ以外の場合は、空の文字列。
戻り値の型:str
send_text_queryクエリ

ユーザーが話したかのように、アシスタントに|クエリ|を送信します。

ユーザーが起動ワードを発声してクエリを作成した場合、または、継続中のクエリに答えた場合と同じように動作します。

パラメータ:querystr)- アシスタントに送信するテキストクエリ。
set_mic_mute(is_muted)

アシスタントが起動ワードをリッスンしないようにします。

アシスタントが起動ワードをリッスンしないようにできます。Google Home の背面にあるプライバシー ボタンと似た機能です。

アシスタントがまだ起動していない場合、このメソッドは何もしません。

パラメータ:is_mutedbool)- True では、アシスタントによる起動ワードのリッスンを停止します。False では再開します。
start

アシスタントを起動し、起動ワードをリッスンします。

start() が呼び出されると、アシスタントは「デフォルトの」ALSA 音声ソースからのデータの処理を開始し、起動ワードをリッスンします。タイマーやアラームなど、アシスタントが提供する他のサービスも開始します。このメソッドは 1 回だけ呼び出せます。呼び出されると、アシスタントは __exit__ が呼び出されるまで実行を続けます。

戻り値:アシスタントの状態の変化を通知するイベントのキュー。
戻り値の型:google.assistant.event.IterableEventQueue
start_conversation

アシスタントとの新しい会話を手動で開始します。

アシスタントが起動ワードを聞いたときと同様に、ユーザーの音声の録音と Google への送信の両方を開始します。

アシスタントがまだ起動していない場合、またはミュートされている場合、このメソッドは何もしません。

stop_conversation

アシスタントとのアクティブな会話を停止します。

アシスタントがユーザーのクエリをリッスンしている、または応答している途中の場合があります。アクティブな会話がない場合は、何もしません。

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

Event を拡張して、「alert_type」の解析を追加します。

クラス google.assistant.library.event.AlertType

アラートの種類。

ON_ALERT_STARTED イベントと ON_ALERT_FINISHED イベントで使用します。

ALARM = 0

「月曜日の午前 3 時」のような絶対時間で設定されたイベント。

TIMER = 1

「今から 30 秒後」のような相対時間で設定されたイベント。

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

Event を拡張して「actions」プロパティを追加します。

actions

現在のデバイスで実行するコマンドのジェネレータ。

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

アシスタントによって生成されたイベント。

type

EventType - 生成されたイベントの種類。

args

dict - このイベントに関連付けられた引数の Key-Value ペア。

static New(event_type, args, **kwargs)

必要に応じて、特別なイベントクラスを使用して、新しいイベントを作成します。

パラメータ:
  • event_typeint)– google.assistant.event.EventType のイベントに対応する数値 ID。
  • argsdict)- このイベントに関連付けられた引数の Key-Value ペア。
  • kwargsdict)– EventType の特別なイベントクラスに固有の引数の Key-Value ペア(省略可)。
クラス google.assistant.library.event.EventType

イベントの種類。

ON_ALERT_FINISHED = 11

alert_type のアラートが鳴り終わったことを示します。

パラメータ:alert_typeAlertType)- 終了したアラートの種類を表す列挙型の ID。
ON_ALERT_STARTED = 10

アラートが鳴り始めたことを示します。

このアラートは、同じ alert_type を含む ON_ALERT_FINISHED が受信されるまで続行されます。同時に有効にするアラートは 1 つのみにしてください。

パラメータ:alert_typeAlertType)- 現在鳴っているアラートの種類を表す列挙型の ID。
ON_ASSISTANT_ERROR = 12

アシスタント ライブラリでエラーが発生したかどうかを示します。

パラメータ:is_fatalbool)- True の場合、アシスタントは復元できません。再起動する必要があります。
ON_CONVERSATION_TURN_FINISHED = 9

アシスタントは現在のターンを終了しました。

これには、ユーザーのクエリの処理と、レスポンスがある場合は完全なレスポンスの両方が含まれます。

パラメータ:with_follow_on_turnbool)- True の場合、アシスタントはユーザーからの会話の続きを待っています。マイクが再開され、ユーザーは続きの質問に答えることができます。
ON_CONVERSATION_TURN_STARTED = 1

新しいターンが開始したことを示します。

現在、アシスタントはリッスン、つまりユーザーのクエリを待ち受けます。これは、起動ワードが聞こえたか、アシスタントで start_conversation() が呼び出された結果として発生します。

ON_CONVERSATION_TURN_TIMEOUT = 2

識別可能なクエリの待ち受け中にアシスタントがタイムアウトしました。

これは、起動ワードの認識誤り、または、ユーザーが言ったことをアシスタントが理解できなかった場合に発生します。

ON_DEVICE_ACTION = 14

デバイス アクション リクエストがデバイスにディスパッチされたことを示します。

これは、デバイスでサポートされているトレイトに対して、デバイス文法がトリガーされた場合にディスパッチされます。このイベントの種類には、イテレータまたはデバイス アクション コマンドと、これらに関連付けられたパラメータがある場合に、そのパラメータを返す特別な「actions」プロパティがあります。

パラメータ:dict - デバイス アクション リクエストのデコードされた JSON ペイロード。
ON_END_OF_UTTERANCE = 3

アシスタントは、ユーザークエリのリッスンを停止しました。

アシスタントは、ユーザーが言ったことをまだ理解していない可能性がありますが、これ以上の音声データのリッスンを停止しています。

ON_MEDIA_STATE_ERROR = 20

トラックの再生中にエラーが発生したことを示します。

組込みメディア プレーヤーは、次のトラックにスキップします。再生するデータが残っていない場合は、ON_MEDIA_STATE_IDLE に戻ります。

ON_MEDIA_STATE_IDLE = 16

何も再生しておらず、再生するデータがキューに入っていないことを示します。

このイベントは、起動時、ニュースおよびポッドキャスト用の Google アシスタント ライブラリの組み込みメディア プレーヤーからブロードキャストされます。また、ユーザーがメディアを停止または一時停止してストリームがタイムアウトになったために、プレーヤーがアイドル状態になったときにもブロードキャストされます。

ON_MEDIA_TRACK_LOAD = 17

トラックは読み込まれているが、再生が開始されていないことを示します。

新しいメタデータが非同期で読み込まれる場合、複数回ディスパッチされることがあります。通常、この後に ON_MEDIA_TRACK_PLAY イベントが続きます。

パラメータ:
  • metadatadict)–

    読み込まれたトラックのメタデータ。すべてのフィールドがこの時点で設定されているわけではありません。不明なフィールドは含まれません。メタデータ フィールドは以下のとおりです。

    album(str): トラックが属するアルバムの名前。 album_art(str): アルバムアートの URL。 artist(str): このトラックを作成したアーティスト。 duration_ms(double): このトラックの長さ(ミリ秒)。 title(str): トラックのタイトル。
  • track_typeMediaTrackType)- 読み込まれたトラックの種類。
ON_MEDIA_TRACK_PLAY = 18

現在、トラックが音声を出力していることを示します。

これは、ON_MEDIA_TRACK_LOADON_MEDIA_TRACK_STOP など、ある状態から別の状態に移行するときにのみトリガーされます。

パラメータ:
  • metadatadict)–

    再生中のトラックのメタデータ。フィールドが不明な場合、そのフィールドは含まれません。メタデータ フィールドは以下のとおりです。

    album(str): トラックが属するアルバムの名前。 album_art(str): アルバムアートの URL。 artist(str): このトラックを作成したアーティスト。 duration_ms(double): このトラックの長さ(ミリ秒)。 title(str): トラックのタイトル。
  • position_msdouble)- 再生中のトラックの現在位置を、開始からのミリ秒で示します。「metadata.duration_ms」が不明な場合(0 に設定されている場合)、このフィールドは設定されません。
  • track_typeMediaTrackType)- 再生中のトラックの種類。
ON_MEDIA_TRACK_STOP = 19

それまで再生されていたトラックが停止したことを示します。

これは通常、ユーザーが一時停止した結果です。ユーザーが再開すると、トラックは ON_MEDIA_TRACK_PLAY に戻ります。

パラメータ:
  • metadatadict)–

    停止したトラックのメタデータ。フィールドが不明な場合、そのフィールドは含まれません。メタデータ フィールドは以下のとおりです。

    album(str): トラックが属するアルバムの名前。 album_art(str): アルバムアートの URL。 artist(str): このトラックを作成したアーティスト。 duration_ms(double): このトラックの長さ(ミリ秒)。 title(str): トラックのタイトル。
  • position_msdouble)- 停止したトラックの現在位置を、開始からのミリ秒で示します。「metadata.duration_ms」が不明な場合(0 に設定されている場合)、このフィールドは設定されません。
  • track_typeMediaTrackType)- 停止したトラックの種類。
ON_MUTED_CHANGED = 13

アシスタントが現在リッスンしているかどうかを示します。

start() は常に ON_MUTED_CHANGED を生成して初期値を報告します。

パラメータ:is_mutedbool)- True の場合、現在、アシスタントは起動ワードをリッスンしておらず、ユーザーのクエリに応答しません。
ON_NO_RESPONSE = 8

アシスタントは正常にターンを完了しましたが、発声すべきことがありません。

ON_RECOGNIZING_SPEECH_FINISHED = 5

アシスタントは、音声の最終的な認識結果を決定しました。

パラメータ:textstr)- ユーザーのクエリを解釈した最終的なテキスト。
ON_RENDER_RESPONSE = 15

アシスタントが、レスポンスのためにレンダリングするテキスト出力を持っていることを示します。

パラメータ:
  • typeRenderResponseType)- レンダリングするレスポンスの種類。
  • textstr)- RenderResponseType.TEXT でレンダリングする文字列。
ON_RESPONDING_FINISHED = 7

アシスタントは音声による応答を終了しました。

ON_RESPONDING_STARTED = 6

アシスタントは音声による応答を開始しています。

アシスタントは、ON_RESPONDING_FINISHED を受信するまで応答します。

パラメータ:is_error_responsebool)- True は、ローカルエラー TTS が再生されていることを示します。それ以外の場合は、アシスタントがサーバー レスポンスで応答します。
ON_START_FINISHED = 0

アシスタント ライブラリの起動が完了しました。

クラス google.assistant.library.event.IterableEventQueue(timeout=3600)

queue.Queue を拡張して、__iter__ インターフェースを追加します。

offerイベント

キューに入れるイベントを提供します。

キューが現在いっぱいの場合、イベントはログには記録されますが追加されません。

パラメータ:eventEvent)- キューに追加しようとするイベント。
class google.assistant.library.event.MediaStateChangeEvent(event_type, args, **_)

Event を拡張して、「state」の解析を追加します。

クラス google.assistant.library.event.MediaTrackType

ON_MEDIA_TRACK_X イベントのトラックの種類。

ON_MEDIA_TRACK_LOADON_MEDIA_TRACK_PLAYON_MEDIA_TRACK_STOP で使用

CONTENT = 2

アイテムの実際のコンテンツ(ニュースまたはポッドキャスト)。

TTS = 1

アイテムに関連する TTS 導入またはインタースティシャル トラック。

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

Event を拡張して、「response_type」の解析を追加します。

クラス google.assistant.library.event.RenderResponseType

レンダリングするコンテンツの種類。

ON_RENDER_RESPONSE で使用