Nesta página, você verá como fazer streaming de entrada de áudio para detectar uma solicitaçã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.
Princípios básicos de streaming
O Session
tipo de método streamingDetectIntent
retorna um objeto em streaming de gRPC bidirecional.
Os métodos disponíveis para esse objeto variam de acordo com o idioma. Por isso, consulte a documentação de referência de sua biblioteca de cliente para mais detalhes.
O objeto em streaming é usado para enviar e receber dados simultaneamente.
Ao usar esse objeto, o cliente transmite conteúdo de áudio para o Dialogflow, enquanto escuta StreamingDetectIntentResponse
simultaneamente.
O método streamingDetectIntent
tem um parâmetro query_input.audio_config.single_utterance
que afeta o reconhecimento de fala:
- Se for
false
(padrão), o reconhecimento não será interrompido até o cliente fechar o stream. - Se for
true
, o Dialogflow detectará uma única fala no áudio de entrada. Quando o Dialogflow detecta que a voz do áudio foi interrompida ou pausada, ele interrompe o reconhecimento de fala e envia umaStreamingDetectIntentResponse
com um resultado de reconhecimento deEND_OF_SINGLE_UTTERANCE
para o cliente. Qualquer áudio enviado para o Dialogflow no stream, após o recebimento deEND_OF_SINGLE_UTTERANCE
, será ignorado pelo Dialogflow.
No streaming bidirecional, um cliente pode fechar o objeto stream para indicar ao servidor que ele não enviará mais dados.
Por exemplo, em Java e Go esse método é chamado de closeSend
.
É importante fechar (mas não cancelar) os streams nas seguintes situações:
- O cliente terminou de enviar os dados.
- O cliente está configurado com
single_utterance
definido como verdadeiro e recebe umStreamingDetectIntentResponse
com um resultado de reconhecimento deEND_OF_SINGLE_UTTERANCE
.
Depois de fechar um stream, o cliente precisa iniciar uma nova solicitação com um novo stream, conforme necessário.
Intent de detecção de streaming
Os exemplos a seguir usam o Session
tipo de método streamingDetectIntent
para fazer streaming de áudio.
Go
Para autenticar no Dialogflow, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para autenticar no Dialogflow, 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, 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, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Outras linguagens
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.
Amostras
Consulte a página de amostras para ver as práticas recomendadas para streaming de um microfone do navegador para o Dialogflow.