Nesta página, descrevemos como transmitir 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. 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 seguintes tarefas 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, abra Agentes de carregamento.
- Clique em Criar novo agente.
- Insira o nome do agente, o idioma padrão e o fuso horário padrão.
- Insira um projeto atual. 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 streamingDetectIntent do tipo Session retorna um objeto de streaming gRPC bidirecional.
Os métodos disponíveis para esse objeto variam de acordo com o idioma. Consulte a documentação de referência da biblioteca de cliente para mais detalhes.
O objeto em streaming é usado para enviar e receber dados simultaneamente. Usando esse objeto, seu cliente transmite conteúdo de áudio para o Dialogflow enquanto ouve um 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 de fala não será interrompido até que o cliente feche o stream. - Se for
true, o Dialogflow vai detectar um único enunciado falado no áudio de entrada. Quando o Dialogflow detecta que a voz do áudio parou ou foi pausada, ele interrompe o reconhecimento de fala e envia umStreamingDetectIntentResponsecom um resultado de reconhecimento deEND_OF_SINGLE_UTTERANCEpara o cliente. Qualquer áudio enviado ao Dialogflow no stream após o recebimento deEND_OF_SINGLE_UTTERANCEé ignorado pelo Dialogflow.
No streaming bidirecional, um cliente pode fechar parcialmente o objeto de stream para
sinalizar ao servidor que não vai mais enviar dados. Por exemplo, em Java e Go,
esse método é chamado de closeSend.
É importante fechar parcialmente (mas não cancelar) streams nas seguintes situações:
- O cliente terminou de enviar os dados.
- Seu 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 de método streamingDetectIntent para fazer streaming de áudio.
Go
Para autenticar na Dialogflow CX, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para autenticar na 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 na 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 na Dialogflow CX, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Linguagens adicionais
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 de streaming de um microfone de navegador para o Dialogflow, consulte a página de amostras.