請按照下方各節中的操作說明整合 Google 助理 至專案中。
gRPC 繫結
Google 助理服務是以 gRPC 為建構基礎 開放原始碼 RPC 架構這個架構非常適合 雙向音訊串流
Python
如果您使用的是 Python,請按照這份指南開始使用。
C++
查看 C++ 範例 。
Node.js
查看 Node.js 範例 。
Android Things
對嵌入式裝置感興趣嗎?試用 Google 助理 SDK 範例: Android Things。
其他語言
- 複製 googleapis 存放區 取得 Google Assistant Service API 的通訊協定緩衝區介面定義。
- 按照 gRPC 說明文件產生 gRPC 您所選語言的繫結
- 請按照下方各節的步驟操作。
授權並驗證 Google 帳戶,以便使用 Google 助理
下一步是授權裝置與「Google 助理」交談 即可。
使用 Assistant SDK 範圍取得 OAuth 權杖
助理 SDK 會使用 OAuth 2.0 存取權杖授權您的裝置 並連結至 Google 助理
設計原型時,您可以使用授權工具輕鬆產生 OAuth2.0
並擷取原始 client_secret_<client-id>.json
檔案的憑證
註冊裝置型號。
請按照下列步驟產生憑證:
使用 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
安裝授權工具:
python -m pip install --upgrade google-auth-oauthlib[tool]
執行該工具。如果您是從裝置的終端機 (而非 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 範圍:https://www.googleapis.com/auth/assistant-sdk-prototype
支援的 OAuth 流程:
,瞭解如何調查及移除這項存取權。
查看隱私權與安全性最佳做法 以取得關於保護裝置的建議。
使用 OAuth 權杖驗證 gRPC 連線
最後,瞭解如何使用以符記為基礎的模型 驗證 驗證與 Assistant API 的 gRPC 連線
註冊您的裝置
透過手動註冊裝置型號和執行個體 或透過註冊工具 (可透過 Python 應用程式)。
實作與 Google 助理的基本對話對話方塊
- 實作雙向串流 gRPC 用戶端 Google Assistant 服務 API
- 等待使用者觸發新的要求,例如等待 GPIO 中斷 按下按鈕後)。
傳送
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
)。
開始錄製。
傳送多通撥出電話
AssistRequest
訊息,其中含有來自語音查詢的音訊資料。audio_in
處理傳入的
AssistResponse
訊息。從
AssistResponse
擷取對話中繼資料 撰寫新的電子郵件訊息例如,從dialog_state_out
取得conversation_state
和volume_percentage
(請參閱DialogStateOut
)。收到
AssistResponse
時停止錄製 使用event_type
共END_OF_UTTERANCE
個。播放來自
audio_out
的音訊資料,播放 Google 助理回覆的音訊 ] 欄位。複製先前擷取的
conversation_state
並複製 加入DialogStateIn
將訊息傳送至AssistConfig
中以便接下來AssistRequest
使用。
如此一來,您應該就可以開始向 Google 透過裝置使用 Google 助理。
使用裝置動作擴充對話對話方塊
擴充上方的基本對話對話方塊,觸發專屬硬體 特定裝置的功能:
- 在傳入的
AssistResponse
中 訊息,請擷取device_action
欄位 (請參閱DeviceAction
)。 - 剖析
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
欄位。
疑難排解
請參閱疑難排解 。