以下の各セクションの手順に沿って、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 updatesudo apt-get install python3-dev python3-venv # Use python3.4-venv if the package cannot be found.python3 -m venv envenv/bin/python -m pip install --upgrade pip setuptools wheelsource 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 フィールドは設定しないでください。
トラブルシューティング
トラブルシューティングをご覧ください。 確認してください