このガイドでは、API を使用して音声入力をインテント検出リクエストに送信する方法について説明します。Dialogflow は音声を処理し、テキストに変換してからインテント マッチングを実行します。
始める前に
この機能は API をエンドユーザー インタラクションに使用する場合にのみ利用できます。統合を使用している場合は、このガイドをスキップできます。
このガイドを読む前に、次のタスクを完了してください。
- Dialogflow の基本をご覧ください。
- セットアップ手順を完了します。
エージェントを作成する
- Dialogflow ES コンソールに移動します。
- コンソールにログインするよう求められたら、ログインします。詳細については、Dialogflow コンソールの概要をご覧ください。
- サイドバー メニューで、[Loading agents] を開きます。
- [新規エージェントを作成] をクリックします。
- エージェント名、デフォルトの言語、デフォルトのタイムゾーンを入力します。
- 既存のプロジェクトを入力します。Dialogflow コンソールでプロジェクトを作成できるようにするには、[Create a new Google project] を選択します。
- [作成] をクリックします。
インテントの検出
インテントを検出するには、Sessions タイプの detectIntent メソッドを呼び出します。
REST
サンプルの入力音声ファイルbook-a-room.wav をダウンロードします。このファイルには「book a room」という音声が収録されています。この例では、音声ファイルが Base64 でエンコードされている必要があります。これにより、次の JSON リクエストでの指定が可能になります。
リクエストの音声ファイルをエンコードするには、Linux で次のコマンドを使用します。
wget https://cloud.google.com/dialogflow/es/docs/data/book-a-room.wav base64 -w 0 book-a-room.wav > book-a-room.b64
音声コンテンツのエンコードについて詳しくは、音声コンテンツの Base64 エンコードをご覧ください。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際の Google Cloud プロジェクト ID
- AUDIO: base64 でエンコードされた音声コンテンツ
HTTP メソッドと URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/agent/sessions/123456789:detectIntent
リクエストの本文(JSON):
{
"queryInput": {
"audioConfig": {
"languageCode": "en-US"
}
},
"inputAudio": "AUDIO"
}
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"responseId": "3c1e5a89-75b9-4c3f-b63d-4b1351dd5e32",
"queryResult": {
"queryText": "book a room",
"action": "room.reservation",
"parameters": {
"time": "",
"date": "",
"guests": "",
"duration": "",
"location": ""
},
"fulfillmentText": "I can help with that. Where would you like to reserve a room?",
"fulfillmentMessages": [
{
"text": {
"text": [
"I can help with that. Where would you like to reserve a room?"
]
}
}
],
"intent": {
"name": "projects/PROJECT_ID/agent/intents/e8f6a63e-73da-4a1a-8bfc-857183f71228",
"displayName": "room.reservation"
},
"intentDetectionConfidence": 1,
"diagnosticInfo": {},
"languageCode": "en-us"
}
}
queryResult.action フィールドの値は「room.reservation」で、queryResult.fulfillmentMessages[0|1].text.text[0] フィールドの値はユーザーに詳細情報を要求しています。
Go
Dialogflow CX で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
Dialogflow CX で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Dialogflow CX で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Dialogflow CX で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
その他の言語
C#: クライアント ライブラリ ページの C# の設定手順を行ってから、.NET 用の Dialogflow CX リファレンス ドキュメントをご覧ください。
PHP: クライアント ライブラリ ページの PHP の設定手順を行ってから、PHP 用の Dialogflow CX リファレンス ドキュメントをご覧ください。
Ruby: クライアント ライブラリ ページの Ruby の設定手順を行ってから、Ruby 用の Dialogflow CX リファレンス ドキュメントをご覧ください。