Neste guia, você verá como enviar uma entrada de áudio para uma solicitação de detecção de intent usando a API. O Dialogflow processa o áudio e o converte em texto antes de tentar uma correspondência de intent. Essa conversão é conhecida como entrada de áudio, reconhecimento de fala, conversão de voz em texto ou STT.
Antes de começar
Este recurso só é relevante quando se usa a API para interações do usuário final. Se você estiver usando uma integração, ignore este guia.
Faça o seguinte antes de ler este guia:
- Leia os Conceitos básicos do Dialogflow.
- Execute as etapas de configuração.
Criar um agente
Se você ainda não criou um agente, crie um agora:
- Acesse o console do Dialogflow ES.
- Se solicitado, faça login no Console do Dialogflow. Para mais informações, consulte a Visão geral do Console do Dialogflow.
- Clique em Criar agente no menu da barra lateral à esquerda. Se você já tiver outros agentes, clique no nome do agente, role até a parte inferior da página e clique em Criar novo agente.
- Digite o nome do agente, o idioma padrão e o fuso horário padrão.
- Se você já tiver criado um projeto, insira-o. Se você quiser permitir que o Console do Dialogflow crie o projeto, selecione Criar um novo projeto do Google.
- Clique no botão Criar.
Importar o arquivo de exemplo para seu agente
As etapas deste guia fazem considerações sobre o agente. Portanto, você precisa importar um agente preparado para este guia. Ao importar, essas etapas usam a opção restaurar, que substitui todas as configurações, intents e entidades do agente.
Para importar o arquivo, siga estas etapas:
- Faça o download do arquivo
room-booking-agent.zip
. - Acesse o console do Dialogflow ES.
- Selecione seu agente.
- Clique no botão de configurações settings ao lado do nome do agente.
- Selecione a guia Exportar e importar.
- Selecione Restaurar do zip e siga as instruções para restaurar o arquivo zip que você baixou.
Detectar intent
Para detectar a intent,
chame o método
detectIntent
no tipo
Sessions
.
book-a-room.wav
, que diz "book a room".
O arquivo de áudio precisa ser codificado em base64 para este exemplo. Assim, será possível fornecê-lo na solicitação JSON abaixo.
Veja a seguir um exemplo do 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
Para exemplos em outras plataformas, consulte Conteúdo de áudio de codificação Base64 na documentação da API Cloud Speech-to-Text.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto do Google Cloud
- AUDIO: o conteúdo de áudio codificado em base64
Método HTTP e URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID /agent/sessions/123456789:detectIntent
Corpo JSON da solicitação:
{ "queryInput": { "audioConfig": { "languageCode": "en-US" } }, "inputAudio": "AUDIO " }
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project:PROJECT_ID " \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://dialogflow.googleapis.com/v2/projects/PROJECT_ID /agent/sessions/123456789:detectIntent"
PowerShell (Windows)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID " }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://dialogflow.googleapis.com/v2/projects/PROJECT_ID /agent/sessions/123456789:detectIntent" | Select-Object -Expand Content
APIs Explorer (navegador)
Copie o corpo da solicitação e abra a página de referência do método. O painel "APIs Explorer" é aberto no lado direito da página. Interaja com essa ferramenta para enviar solicitações. Cole o corpo da solicitação nessa ferramenta, preencha todos os outros campos obrigatórios e clique em Executar.
Você receberá uma resposta JSON semelhante a esta:
{ "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" } }
O valor do campo queryResult.action
é "room.reservation",
e o valor do campo queryResult.fulfillmentMessages[0|1].text.text[0]
pede mais informações ao usuário.
Para autenticar no Dialogflow, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Para autenticar no Dialogflow, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Para autenticar no Dialogflow, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Para autenticar no Dialogflow, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C#: Siga as Instruções de configuração do C# na página das bibliotecas de cliente e acesse a Documentação de referência do Dialogflow para .NET.
PHP: Siga as Instruções de configuração do PHP na página das bibliotecas de cliente e acesse a Documentação de referência do Dialogflow para PHP.
Ruby: Siga as Instruções de configuração do Ruby na página das bibliotecas de cliente e acesse a Documentação de referência do Dialogflow para Ruby.