本指南介绍如何使用 API 将音频输入发送给检测意图请求。Dialogflow 会处理音频并将其转换为文字,然后再尝试匹配意图。
准备工作
此功能仅适用于使用 API 与最终用户互动的情况。如果您使用的是集成服务,则可以跳过本指南。
在阅读本指南之前,请完成以下任务:
- 阅读 Dialogflow 基础知识。
- 完成设置步骤。
创建代理
- 前往 Dialogflow ES 控制台。
- 如果系统提示,请登录控制台。如需了解详情,请参阅 Dialogflow 控制台概览。
- 在边栏菜单中,展开加载代理。
- 点击创建新代理。
- 输入代理名称、默认语言和默认时区。
- 输入现有项目。如需让 Dialogflow 控制台创建项目,请选择创建新 Google 项目。
- 点击创建。
检测意图
如需检测意图,请对 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 方法和网址:
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 参考文档。