Esta página descreve 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. Esse processo é chamado de 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.
Conclua as tarefas a seguir antes de ler este guia:
- 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 Carregando agentes.
- Clique em Criar novo agente.
- Insira 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.
Princípios básicos de streaming
O método Session type's
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 simultaneamente StreamingDetectIntentResponse.
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 umaStreamingDetectIntentResponsecom um resultado de reconhecimento deEND_OF_SINGLE_UTTERANCEpara 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 em 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_utterancedefinido comotruee recebe umStreamingDetectIntentResponsecom 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's streamingDetectIntent método para fazer streaming de áudio.
Go
Para autenticar no Dialogflow CX, configure o Application Default Credentials. Se quiser mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para autenticar no Dialogflow CX, configure o Application Default Credentials. Se quiser 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. Se quiser 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. Se quiser 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 CX 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 CX 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 CX para Ruby.
Amostras
Para mais informações sobre as práticas recomendadas para streaming de um microfone do navegador para o Dialogflow, consulte a página de amostras.