將 Google 助理整合至你的專案 (其他語言)

請按照下方各節中的操作說明整合 Google 助理 至專案中。

gRPC 繫結

Google 助理服務是以 gRPC 為建構基礎 開放原始碼 RPC 架構這個架構非常適合 雙向音訊串流

Python

如果您使用的是 Python,請按照這份指南開始使用。

C++

查看 C++ 範例

Node.js

查看 Node.js 範例

Android Things

對嵌入式裝置感興趣嗎?試用 Google 助理 SDK 範例Android Things

其他語言

授權並驗證 Google 帳戶,以便使用 Google 助理

下一步是授權裝置與「Google 助理」交談 即可。

使用 Assistant SDK 範圍取得 OAuth 權杖

助理 SDK 會使用 OAuth 2.0 存取權杖授權您的裝置 並連結至 Google 助理

設計原型時,您可以使用授權工具輕鬆產生 OAuth2.0 並擷取原始 client_secret_<client-id>.json 檔案的憑證 註冊裝置型號

請按照下列步驟產生憑證:

  1. 使用 Python 虛擬環境 將授權工具及其依附元件與系統 Python 套件區隔開來。

    sudo apt-get update
    sudo apt-get install python3-dev python3-venv # Use python3.4-venv if the package cannot be found.
    python3 -m venv env
    env/bin/python -m pip install --upgrade pip setuptools wheel
    source env/bin/activate
    
  2. 安裝授權工具:

    python -m pip install --upgrade google-auth-oauthlib[tool]
  3. 執行該工具。如果您是從裝置的終端機 (而非 SSH 工作階段) 執行此標記,請移除 --headless 標記:

    google-oauthlib-tool --client-secrets /path/to/client_secret_client-id.json --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless
    

準備好在佈建程序中整合授權時 請參閱使用 OAuth 2.0 存取 Google API 的指南, 瞭解如何取得、保留及使用 OAuth 存取權杖 裝置,與 Assistant API 交談。

逐步瀏覽以下指南時,請使用下列步驟:

查看隱私權與安全性最佳做法 以取得關於保護裝置的建議。

使用 OAuth 權杖驗證 gRPC 連線

最後,瞭解如何使用以符記為基礎的模型 驗證 驗證與 Assistant API 的 gRPC 連線

註冊您的裝置

透過手動註冊裝置型號和執行個體 或透過註冊工具 (可透過 Python 應用程式)。

實作與 Google 助理的基本對話對話方塊

  1. 實作雙向串流 gRPC 用戶端 Google Assistant 服務 API
  2. 等待使用者觸發新的要求,例如等待 GPIO 中斷 按下按鈕後)。
  3. 傳送 AssistRequest 訊息,已設定 config 欄位 (請參閱 AssistConfig)。 請確認 config 欄位包含下列內容:

    • audio_in_config 欄位,指定如何處理 系統將在後續要求中提供 audio_in 資料 (請參閱 AudioInConfig)。
    • audio_out_config 欄位,用於指定 伺服器傳回 audio_out 訊息 (請參閱 AudioOutConfig)。
    • device_config 欄位,用來識別 為 Google 助理註冊的裝置 (請參閱 DeviceConfig)。
    • dialog_state_in 欄位,其中包含 language_code 與要求相關聯 (請參閱 DialogStateIn)。
  4. 開始錄製。

  5. 傳送多通撥出電話 AssistRequest 訊息,其中含有來自語音查詢的音訊資料。audio_in

  6. 處理傳入的 AssistResponse 訊息。

  7. AssistResponse 擷取對話中繼資料 撰寫新的電子郵件訊息例如,從 dialog_state_out 取得 conversation_statevolume_percentage (請參閱 DialogStateOut)。

  8. 收到AssistResponse時停止錄製 使用 event_typeEND_OF_UTTERANCE 個。

  9. 播放來自 audio_out 的音訊資料,播放 Google 助理回覆的音訊 ] 欄位。

  10. 複製先前擷取的conversation_state並複製 加入DialogStateIn 將訊息傳送至 AssistConfig 中以便接下來 AssistRequest 使用。

如此一來,您應該就可以開始向 Google 透過裝置使用 Google 助理。

使用裝置動作擴充對話對話方塊

擴充上方的基本對話對話方塊,觸發專屬硬體 特定裝置的功能:

  1. 在傳入的 AssistResponse 中 訊息,請擷取 device_action 欄位 (請參閱 DeviceAction)。
  2. 剖析 device_request_json 欄位的 JSON 酬載。詳情請參閱 支援的特徵清單每個特徵結構定義頁面都會顯示 EXECUTE 範例 要求, JSON 酬載

取得使用者要求的轉錄稿

如果裝置接上螢幕,建議你使用該裝置 向使用者顯示要求如要取得這個轉錄稿,請剖析 speech_results 欄位 (AssistResponse) 訊息。語音辨識完成後,這份清單就會包含一個項目 stability 設為 1.0。

取得 Google 助理回覆的文字和/或圖像內容

如果裝置接上螢幕,建議你使用該裝置 根據使用者要求顯示 Google 助理的純文字回應。這是這段文字的位置 DialogStateOut.supplemental_display_text ] 欄位。

Google 助理可針對特定查詢支援 HTML5 視覺回應 ( 臺北市的天氣如何?現在幾點?)。若要啟用此功能,請設定 AssistConfig 中的 screen_out_config 欄位。 ScreenOutConfig 訊息含有 screen_mode 欄位,應設為 PLAYING

AssistResponse 則訊息會設定 screen_out 欄位。您可以從 data 欄位。

透過文字輸入內容提交查詢

如果您的裝置接上文字介面 (例如鍵盤), 在 config 欄位中設定 text_query 欄位 (請參閱 AssistConfig)。 請勿設定 audio_in_config 欄位。

疑難排解

請參閱疑難排解