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() 後, 則 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 助理的回應。

  • 對話:一或多個轉彎處,可達成想要的最終結果 :

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

ValueError:如果 device_model_id 留空或空白,

device_id

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

這個值會在使用服務時透過伺服器識別你的裝置 例如 Google 裝置動作這個屬性只填入 「之後」 已呼叫 start()

傳回:呼叫 start() 後的裝置 ID,否則為空字串。
傳回類型:str
send_text_query(查詢)

|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 助理」就會開始處理 「default」ALSA 音訊來源,監聽啟動字詞。這個 也會啟動 Google 助理提供的其他服務,例如 視為計時器/鬧鐘這個方法只能呼叫一次。一次 已致電,Google 助理會繼續運作,直到__exit__ 方法。

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

手動與 Google 助理開始新對話。

開始錄製使用者的語音並傳送給 Google,類似於 Google 助理聽到關鍵字時的情況。

如果裝置尚未啟動或已啟動 Google 助理,這種方法不適合人工管理 設為靜音。

stop_conversation()

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

Google 助理可能會聽取使用者的查詢內容或回應。如果沒有進行中的對話,則不會執行任何操作。

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

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

課程 google.assistant.library.event.AlertType

快訊類型。

搭配 ON_ALERT_STARTEDON_ALERT_FINISHED 事件。

ALARM = 0

以絕對時間設定的活動,例如「星期一凌晨 3 點」

TIMER = 1

代表相對時間的事件,例如「30 秒後」

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

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

actions

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

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

由 Google 助理產生的事件。

type

EventType - 產生的事件類型。

args

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

static New(event_type, args, **kwargs)

視需要使用專屬的 Event 類別建立新事件。

參數:
  • event_type (int):與 google.assistant.event.EventType.
  • args (dict):與此事件相關聯的引數鍵/值組合。
  • kwargs (dict):針對 EventType 的 Event 類別專屬的選用引數鍵/值組合。
class google.assistant.library.event.EventType

事件類型。

ON_ALERT_FINISHED = 11

表示 alert_type 的警示音已結束。

參數:alert_type (AlertType) – 代表剛結束的快訊類型的列舉 ID。
ON_ALERT_STARTED = 10

表示警示已開始音效。

直到收到同一個 alert_typeON_ALERT_FINISHED 為止。任何時間點都應只啟用一個快訊。

參數:alert_type (AlertType):代表目前
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

表示已調派裝置動作要求。

如果裝置支援的特徵觸發任何裝置文法,就會傳送此事件。這個事件類型具有特殊的「動作」 並傳回疊代器或裝置動作指令 相關聯的參數 (如果有的話)。

參數: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):曲目所屬的專輯名稱。 相簿_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):曲目所屬的專輯名稱。 相簿_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) –

    已停止的曲目中繼資料。如果欄位不明 以及「保留」資料中繼資料欄位包括:

    album(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,表示系統正在播放本機錯誤 TTS,否則 Google 助理會回應伺服器回應。
ON_START_FINISHED = 0

Google 助理媒體庫已啟動。

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

擴充 Queue.Queue,以新增 __iter__ 介面。

offer(event)

提供要排入佇列的事件。

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

參數:event (Event):嘗試新增至佇列的事件。
class google.assistant.library.event.MediaStateChangeEvent(event_type, args, **_)

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

class 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_type, args, **_)

擴充事件,新增「response_type」的剖析功能。

class google.assistant.library.event.RenderResponseType

要轉譯的內容類型。

搭配 ON_RENDER_RESPONSE