Google Assistant Library

google.assistant.library 套件

類別 google.assistant.library.Assistant(credentialdevice_model_id)ש

Google 助理程式庫的用戶端。

為 Google 助理提供基本的控制功能和生命週期處理功能。建議您使用 Google 助理做為 ContextManager

with Assistant(credentials, device_model_id) as assistant:

這可讓基礎的原生實作項目正確地處理記憶體管理。

呼叫 start() 後,Google 助理會產生一個事件串流,轉發 Google 助理目前處於的狀態。例如:

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

詞彙解釋:

  • 啟動字詞:Google 助理在未設為靜音時監聽的詞組:

    "OK Google" OR "Hey Google"
    
  • 回應:單一使用者要求,後面顯示 Google 助理的回應。

  • 對話:Google 助理會做出一或多個想要的最終結果:

    "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!"
    
參數:
  • credentials (google.OAuth2.credentials.Credentials):使用者的 Google OAuth2 憑證。
  • device_model_id (str):Google 為您的專案註冊的 device_model_id。不得為空白字串。
發出:

ValueError - 如果 device_model_id 留空或留空。

device_id小數點

傳回 Google 助理產生的裝置 ID。

這個值會在使用 Google 裝置動作等服務時,向伺服器識別您的裝置。只有在呼叫 start() 後,系統才會填入這個屬性。

退貨:呼叫 start() 後,裝置 ID 才會呼叫,否則為空字串。
傳回類型:Str
send_text_query(查詢)

|查詢| 傳送給 Google 助理,就像使用者說話一樣。

這將等同於使用者說出啟動字詞,然後提出查詢「或者」後續回答問題。

參數:query (str):傳送至 Google 助理的文字查詢。
set_mic_mute(is_muted)

讓 Google 助理停止聽取啟動字詞。

停用 Google 助理無法聽取啟動字詞。 這和 Google Home 背面的隱私權按鈕類似。

如果 Google 助理尚未啟動,這個方法便不需要人工管理。

參數:is_muted (bool) - True 會讓 Google 助理無法聽取內容,False 則允許再次啟動。
start()

啟動 Google 助理,包括聽取啟動字詞。

呼叫 start() 後,Google 助理就會開始處理「預設」ALSA 音訊來源的資料,並監聽啟動字詞。這樣做也會啟動 Google 助理提供的其他服務,例如計時器/鬧鐘。這個方法只能呼叫一次。呼叫完成後,Google 助理會持續執行,直到呼叫 __exit__ 為止。

退貨:通知 Google 助理狀態變更的事件佇列。
傳回類型:google.assistant.event.IterableEventQueue
start_conversation()

手動透過 Google 助理發起新的對話。

開始錄製使用者語音內容並傳送給 Google,類似 Google 助理聽到啟動字詞時的處理方式。

如果 Google 助理未啟動或已設為靜音,這個方法就是免人工管理。

stop_conversation()

停止與 Google 助理進行的任何對話。

Google 助理可以監聽使用者的查詢「或」回應。如果沒有有效的對話,則無須人工管理。

類別 google.assistant.library.event.AlertEvent(event_typeargs**_)ש

擴充事件以新增「alert_type」的剖析。

類別 google.assistant.library.event.AlertType

快訊類型。

可搭配 ON_ALERT_STARTEDON_ALERT_FINISHED 事件使用。

ALARM = 0成本

絕對時間的事件,例如「星期一上午 3 點」

TIMER = 1初次

設定相對時間的活動,例如「30 秒後通知」

類別 google.assistant.library.event.DeviceActionEvent(event_typeargs**kwargs)ש

擴充事件以新增「動作」屬性。

actions小數點

要對目前裝置執行的指令產生器。

類別 google.assistant.library.event.Event(event_typeargs**_)ש

Google 助理產生的事件。

type小數點

EventType:產生的事件類型。

args小數點

dict – 與這個事件相關聯的引數鍵/值組合。

靜態 New(event_typeargs**kwargs)

如有需要,您可以使用特殊事件類別建立新事件。

參數:
  • event_type (int):與 google.assistant.event.EventType 中的事件相對應的數字 ID。
  • args (dict):與這個事件相關聯的引數鍵/值組合。
  • kwargs (dict) – 專為 EventType 的 Event 類別專用的選用引數鍵/值組合。
類別 google.assistant.library.event.EventType

事件類型。

ON_ALERT_FINISHED = 11成本

表示「alert_type」的音效已經結束。

參數:alert_type (AlertType):Enum 的 ID,代表剛剛傳送的快訊類型。
ON_ALERT_STARTED = 10成本

表示快訊已發出聲音。

此快訊將持續接收,直到收到具有相同 alert_typeON_ALERT_FINISHED 為止。一次只能啟用一項快訊。

參數:alert_type (AlertType):Enum 的 ID,代表目前快訊類型。
ON_ASSISTANT_ERROR = 12成本

指出 Google 助理程式庫是否發生錯誤。

參數:is_fatal (bool):如果為 True,Google 助理將無法復原且必須重新啟動。
ON_CONVERSATION_TURN_FINISHED = 9成本

「Google 助理」完成了目前的轉彎處。

當中包含處理使用者的查詢,以及說出完整的回應內容 (如有)。

參數:with_follow_on_turn (bool) - 如果是 True,Google 助理預期會進行後續互動。麥克風會重新開啟,讓使用者回答後續問題。
ON_CONVERSATION_TURN_STARTED = 1初次

表示新的轉彎已開始。

Google 助理正在監聽,正在等待使用者查詢。這可能是透過 Google 助理呼叫啟動字詞或 start_conversation() 所造成。

ON_CONVERSATION_TURN_TIMEOUT = 2

Google 助理在等待可辨識查詢時發生逾時。

這可能是因為啟動字詞錯誤觸發,或是 Google 助理無法理解使用者說的內容。

ON_DEVICE_ACTION = 14成本

表示已將「裝置動作」要求分配給裝置。

如果裝置支援的特性觸發了任何裝置 Grammar,就會分派這個程式。這個事件類型含有特殊的「action」屬性,可傳回疊代器或裝置動作指令,以及與這些參數相關聯的參數 (如適用)。

參數:dict:裝置動作要求的解碼 JSON 酬載。
ON_END_OF_UTTERANCE = 3

「Google 助理」已停止監聽使用者查詢內容

Google 助理可能尚未結束辨識使用者所說的內容,但會停止監聽更多音訊資料。

ON_MEDIA_STATE_ERROR = 20成本

表示播放曲目時發生錯誤。

內建的媒體播放器會嘗試播放下一首曲目,如果沒有可以播放的媒體,則會傳回 ON_MEDIA_STATE_IDLE

ON_MEDIA_STATE_IDLE = 16成本

表示沒有播放中的項目,沒有加入待播清單。

當系統啟動時,這個事件是透過 Google 助理程式庫的內建媒體播放器進行廣播/循環播放,並在使用者閒置時播放,因為使用者停止媒體或暫停播放而串流逾時。

ON_MEDIA_TRACK_LOAD = 17成本

表示曲目正在載入,但尚未開始播放。

如果以非同步方式載入新中繼資料,系統可能會多次分派。這通常是在事件 ON_MEDIA_TRACK_PLAY 後面

參數:
  • metadata (dict) –

    已載入音軌的中繼資料。目前並非所有欄位都會填寫;如果欄位不明,系統就不會納入該欄位。中繼資料欄位包括:

    相簿(str):專輯封面所屬的專輯名稱。 Album_art(str):專輯封面的網址。 artist(str):這首曲目的藝人。 duration_ms(double):曲目長度,以毫秒為單位。 title(str):曲目名稱。
  • track_type (MediaTrackType):載入的追蹤類型。
ON_MEDIA_TRACK_PLAY = 18成本

表示音軌目前正在輸出音訊。

只有在從某個狀態轉換到另一個狀態 (例如從 ON_MEDIA_TRACK_LOADON_MEDIA_TRACK_STOP) 時,才會觸發這個情況

參數:
  • metadata (dict) –

    播放曲目的中繼資料。如果欄位不明,系統就不會納入該欄位。中繼資料欄位包括:

    相簿(str):專輯封面所屬的專輯名稱。 Album_art(str):專輯封面的網址。 artist(str):這首曲目的藝人。 duration_ms(double):曲目長度,以毫秒為單位。 title(str):曲目名稱。
  • position_ms (double):目前在播放開始後,以毫秒為單位的目前位置。如果「metadata.duration_ms」設為不明 (設為 0),系統就不會設定這個欄位。
  • track_type (MediaTrackType) - 播放類型。
ON_MEDIA_TRACK_STOP = 19成本

表示先前播放的曲目已停止。

這通常是使用者暫停的結果所導致。如果使用者重新啟用該音軌,則返回 ON_MEDIA_TRACK_PLAY

參數:
  • metadata (dict) –

    已停止測試群組的中繼資料。如果欄位不明,系統就不會納入該欄位。中繼資料欄位包括:

    相簿(str):專輯封面所屬的專輯名稱。 Album_art(str):專輯封面的網址。 artist(str):這首曲目的藝人。 duration_ms(double):曲目長度,以毫秒為單位。 title(str):曲目名稱。
  • position_ms (double):從開始起算,以秒為單位,目前停止位置的目前位置。如果「metadata.duration_ms」設為不明 (設為 0),系統就不會設定這個欄位。
  • track_type (MediaTrackType):測試群組停止的類型。
ON_MUTED_CHANGED = 13成本

表示 Google 助理目前正在監聽。

start() 一律會產生 ON_MUTED_CHANGED 以回報初始值。

參數:is_muted (bool):如果為 True,Google 助理目前不會監聽啟動字詞,也不會回應使用者查詢。
ON_NO_RESPONSE = 8

「Google 助理」已順利完成轉彎,但沒有可以說的內容。

ON_RECOGNIZING_SPEECH_FINISHED = 5

Google 助理已決定最終辨識的語音。

參數:text (str) - 使用者查詢的最終文字解讀。
ON_RENDER_RESPONSE = 15成本

表示 Google 助理有轉譯文字回應。

參數:
  • type (RenderResponseType) – 要轉譯的回應類型。
  • text (str):進行 RenderResponseType.TEXT 的字串。
ON_RESPONDING_FINISHED = 7

「Google 助理」已透過語音回應

ON_RESPONDING_STARTED = 6

Google 助理正在使用語音回應。

直到收到 ON_RESPONDING_FINISHED 為止,Google 助理才會回應。

參數:is_error_response (bool) - True 表示播放 TT 時出現本機錯誤,否則 Google 助理會回應伺服器回應。
ON_START_FINISHED = 0成本

Google 助理程式庫已啟動。

類別 google.assistant.library.event.IterableEventQueue(timeout=3600)

擴充佇列.Queue 新增 __iter__ 介面。

offer(活動)

提供可加入佇列的事件。

如果佇列目前已滿,系統會記錄這個事件,但不會新增。

參數:event (活動):要新增至佇列的事件。
類別 google.assistant.library.event.MediaStateChangeEvent(event_typeargs**_)ש

擴充事件以新增「狀態」剖析。

類別 google.assistant.library.event.MediaTrackType

ON_MEDIA_TRACK_X 事件的追蹤類型。

搭配使用 ON_MEDIA_TRACK_LOADON_MEDIA_TRACK_PLAYON_MEDIA_TRACK_STOP

CONTENT = 2

商品的實際內容 (新聞/Podcast)。

TTS = 1初次

與作品相關的 TTS 簡介或插頁式廣告。

類別 google.assistant.library.event.RenderResponseEvent(event_typeargs**_)ש

擴充事件以新增「response_type」的剖析。

類別 google.assistant.library.event.RenderResponseType

要轉譯的內容類型。

搭配 ON_RENDER_RESPONSE 使用