以下の各セクションの手順に沿って、Google アシスタントを統合してください 追加します。
gRPC バインディング
Google アシスタント サービスは、高可用性の gRPC 上に構築されています。 オープンソースの RPC フレームワークです。このフレームワークは サポートしています。
Python
Python を使用する場合は、まずこのガイドをご覧ください。
C++
C++ サンプルを確認する ご覧ください。
Node.js
Node.js サンプルを確認する ご覧ください。
Android Things
組み込みデバイスに関心をお持ちの場合は、Assistant SDK を確認する sample: Android Things。
その他の言語
- googleapis リポジトリのクローンを作成する Google Assistant Service API のプロトコル バッファ インターフェース定義を取得する。
- gRPC のドキュメントに従って gRPC を生成する バインディングを柔軟に設定できます。
- 以降のセクションの手順に従います。
アシスタントで使用する Google アカウントを認可および認証する
次のステップでは、Google アシスタントとの会話をデバイスに許可します 利用できます。
Assistant SDK スコープで OAuth トークンを取得する
Assistant SDK は OAuth 2.0 アクセス トークンを使用して、デバイスが アシスタントと接続する
プロトタイピングの際は、認可ツールを使用して簡単に 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 接続を認証する
最後に、トークンベースのトークンを使用する Google での認証 Assistant API への gRPC 接続の認証を行います。
デバイスを登録する
デバイスのモデルとインスタンスを手動で登録する または登録ツール( 使用できます。
アシスタントとの基本的な会話を実装する
- 双方向ストリーミング gRPC クライアントを実装する Google Assistant Service API 用の認証情報です。
- ユーザーが新しいリクエストをトリガーするのを待つ(例: GPIO 割り込みを待つ)。 できます)。
AssistRequest
を送信します。 メッセージにconfig
フィールドが設定されています(AssistConfig
を参照)。config
フィールドに次のものが含まれていることを確認します。audio_in_config
フィールド。 後続のリクエストで提供されるaudio_in
データ (AudioInConfig
を参照)。audio_out_config
フィールド。必要な形式を指定します。audio_out
メッセージを返すときに使用するサーバーを定義します(AudioOutConfig
を参照)。device_config
フィールド。 アシスタントに登録する必要があります(DeviceConfig
をご覧ください)。language_code
を含むdialog_state_in
フィールド (DialogStateIn
を参照)。
録音を開始します。
複数の送信
AssistRequest
を送信 音声データを含むメッセージを含むメッセージをaudio_in
フィールドに入力します。受信した
AssistResponse
を処理する ブロックすることもできます。AssistResponse
から会話のメタデータを抽出する 表示されます。たとえば、dialog_state_out
からconversation_state
を取得します。 およびvolume_percentage
(DialogStateOut
を参照)。AssistResponse
を受信したら録画を停止しますevent_type
/END_OF_UTTERANCE
。audio_out
からの音声データを使用して、アシスタントからの回答の音声を再生する 表示されます。先ほど抽出した
conversation_state
をコピーしてコピーします。DialogStateIn
に 次のAssistRequest
のAssistConfig
のメッセージ。
これで、Google デバイスを介してアシスタントにアクセスできます。
デバイス アクションによって会話を拡張する
上記の基本的な会話ダイアログを拡張して、固有のハードウェアをトリガーする 次のような機能があります。
- 着信した
AssistResponse
メッセージがある場合は、device_action
フィールドを抽出します(DeviceAction
)。 device_request_json
フィールドの JSON ペイロードを解析します。詳しくは、 次のデバイスの [Device Traits](デバイス トレイト)ページ サポートされているトレイトのリスト。各トレイト スキーマのページに、実行サンプルの 返されたデバイス コマンドとパラメータを使用して、 JSON ペイロード。
ユーザー リクエストの音声文字変換結果を取得する
デバイスにディスプレイを接続している場合は、ディスプレイを使用して
表示されます。この文字起こしを取得するには、speech_results
フィールドを解析します
(AssistResponse
)
ブロックすることもできます。音声認識が完了すると、このリストには 1 つの item が含まれます。
stability
を 1.0 に設定しています。
アシスタントのレスポンスのテキストまたは視覚的レンダリングを取得する
デバイスにディスプレイを接続している場合は、ディスプレイを使用して
ユーザーのリクエストに対してアシスタントの書式なしテキストのレスポンスを表示する。このテキストの場所
(DialogStateOut.supplemental_display_text
)
表示されます。
アシスタントは、特定のクエリに対して HTML5 による視覚的な応答をサポートしています(
マウンテンビューの天気は?」、「今何時?」など)。これを有効にするには、
AssistConfig
の screen_out_config
フィールド。
ScreenOutConfig
メッセージにフィールド screen_mode
があり、これを PLAYING
に設定する必要があります。
AssistResponse
メッセージにフィールド screen_out
が設定されます。HTML5 データ(存在する場合)を
data
フィールド。
テキスト入力によってクエリを送信する
デバイスにテキスト インターフェース(キーボードなど)を接続している場合は、
config
フィールドに text_query
フィールドを設定します(AssistConfig
を参照)。
audio_in_config
フィールドは設定しないでください。
トラブルシューティング
トラブルシューティングをご覧ください。 確認してください