Muitas vezes, os aplicativos precisam de um bot para responder ao usuário final. Dialogflow Muitas vezes, os aplicativos precisam de um bot para responder ao usuário final. O Dialogflow permite usar o Cloud Text-to-Speech com a tecnologia DeepMind WaveNet para gerar respostas de fala do seu agente. Essa conversão de respostas de texto de intent para áudio é chamada de saída de áudio, síntese de fala,
É possível usar áudio para entrada e saída ao detectar uma intent. Isso é comum ao desenvolver apps que se comunicam com usuários usando uma interface exclusivamente de áudio.
Para conferir a lista de idiomas compatíveis, consulte a coluna TTS na página Idiomas.
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.
Antes de começar, siga estas etapas:
- Leia os Conceitos básicos do Dialogflow.
- Execute as etapas de configuração.
Criar um agente
- Acesse o console do Dialogflow ES.
- Faça login no console se solicitado. Para mais informações, consulte a Visão geral do console do Dialogflow.
- No menu da barra lateral, expanda Agentes de carregamento.
- Clique em Criar novo agente.
- Digite o nome do agente, o idioma padrão e o fuso horário padrão.
- Insira um projeto. Para permitir que o console do Dialogflow crie um projeto, selecione Criar um novo projeto do Google.
- Clique em Criar.
Detectar intent
Para detectar a intent, chame o método detectIntent no tipo Sessions.
REST
1. Preparar o conteúdo de áudio
Faça o download do arquivo de áudio de entrada de amostra 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 Como incorporar o áudio com codificação Base64 na documentação da API Cloud Speech.
2. Fazer a solicitação de detecção de intent
Chame o método detectIntent no tipo
Sessions e especifique
o áudio codificado em base64.
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
- SESSION_ID: um código da sessão.
- BASE64_AUDIO: conteúdo em base64 do arquivo de saída acima
Método HTTP e URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/agent/sessions/SESSION_ID:detectIntent
Corpo JSON da solicitação:
{
"queryInput": {
"audioConfig": {
"languageCode": "en-US"
}
},
"outputAudioConfig" : {
"audioEncoding": "OUTPUT_AUDIO_ENCODING_LINEAR_16"
},
"inputAudio": "BASE64_AUDIO"
}
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{
"responseId": "b7405848-2a3a-4e26-b9c6-c4cf9c9a22ee",
"queryResult": {
"queryText": "book a room",
"speechRecognitionConfidence": 0.8616504,
"action": "room.reservation",
"parameters": {
"time": "",
"date": "",
"duration": "",
"guests": "",
"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"
},
"outputAudio": "UklGRs6vAgBXQVZFZm10IBAAAAABAAEAwF0AAIC7AA..."
}
Observe que o valor do campo queryResult.action é room.reservation
e o campo outputAudio contém uma grande string de áudio em Base64.
3. Reproduzir o áudio de saída
Copie o texto do campo outputAudio e salve-o em um arquivo chamado output_audio.b64. Esse arquivo precisa ser convertido em áudio.
Veja a seguir um exemplo do Linux:
base64 -d output_audio.b64 > output_audio.wav
Para exemplos em outras plataformas, consulte Como decodificar conteúdo de áudio codificado em Base64 na documentação da API Text-to-speech.
Agora é possível reproduzir o arquivo de áudio output_audio.wav e saber se ele corresponde ao
texto do campo queryResult.fulfillmentMessages[1].text.text[0] acima.
O segundo elemento fulfillmentMessages é escolhido porque é a resposta de texto para a plataforma padrão.
Java
Para autenticar no Dialogflow CX, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para autenticar no Dialogflow CX, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para autenticar no Dialogflow CX, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Para mais informações sobre os campos de resposta relevantes, consulte a seção Detectar respostas de intent.
Detectar respostas de intent
A resposta de uma solicitação de detecção de intent é um tipo DetectIntentResponse.
O processamento normal de detecção de intent controla o conteúdo do campo
DetectIntentResponse.queryResult.fulfillmentMessages.
O campo DetectIntentResponse.outputAudio é preenchido com áudio com base nos valores das respostas de texto de plataforma padrão encontradas no campo DetectIntentResponse.queryResult.fulfillmentMessages:
- Se houver várias respostas de texto padrão, elas serão concatenadas ao gerar o áudio.
- Se não houver respostas de texto de plataforma padrão, o conteúdo do áudio gerado ficará vazio.
O campo DetectIntentResponse.outputAudioConfig é preenchido com configurações de áudio usadas para gerar o áudio de saída.
Detectar intents de um stream
Ao detectar intents de um stream, você envia solicitações semelhantes ao exemplo
que não usa áudio de saída:
Como detectar intents de um stream.
No entanto, você fornece um campo OutputAudioConfig para a solicitação. Os campos output_audio e output_audio_config são preenchidos na resposta de streaming final recebida do servidor da API Dialogflow. Para mais informações, consulte StreamingDetectIntentRequest e StreamingDetectIntentResponse.
Configurações de fala do agente
É possível controlar vários aspectos da síntese de fala. Consulte as configurações de fala do agente.
Usar o simulador do Dialogflow
É possível interagir com o agente e receber respostas de áudio usando o simulador do Dialogflow:
- Siga as instruções em Configurações de fala do agente para ativar a conversão automática de texto em voz.
- Digite ou diga "book a room" no simulador.
- Confira a seção saída de áudio no simulador.