Esta página foi traduzida pela API Cloud Translation.
Switch to English

Adaptação automática de fala

O recurso de adaptação automática de fala melhora a precisão do reconhecimento de fala do seu agente usando o estado da conversa automaticamente para transmitir entidades relevantes e frases de treinamento como dicas de contexto da fala para todas as solicitações de detecção de intent. Esse recurso fica desativado por padrão.

Ativar ou desativar a adaptação automática de fala

Para ativar ou desativar a adaptação automática de fala:

Console

  1. Abra o Console do Dialogflow CX.
  2. Escolha seu projeto do GCP.
  3. Selecione seu agente.
  4. Clique em Configurações do agente.
  5. Clique na guia Speech e IVR.
  6. Ative ou desative a opção Ativar a adaptação de fala.
  7. Clique em Save.

API

Veja os métodos get e patch/update para o tipo Agent.

Selecione um protocolo e uma versão para a referência do agente:

Protocolo V3 V3beta1
REST Recurso do agente Recurso do agente
RPC (remote procedure call) Interface do agente Interface do agente
C# Indisponível Indisponível
Go Indisponível Indisponível
Java AgentsClient (em inglês) AgentsClient (em inglês)
Node.js AgentsClient (em inglês) AgentsClient (em inglês)
PHP Indisponível Indisponível
Python AgentsClient (em inglês) AgentsClient (em inglês)
Ruby Indisponível Indisponível

Exemplos de melhorias no reconhecimento de fala

Com a adaptação automática de fala ativada, é possível criar seu agente de forma a tirar proveito dela. Nas seções a seguir, explicamos como o reconhecimento de fala pode ser aprimorado com determinadas alterações nas frases de treinamento e nas entidades do agente.

Frases de treinamento

  • Se você definir frases de treinamento com uma frase como "nariz entupido", uma expressão sonora do usuário similar é reconhecida como "nariz entupido" e não como "nariz entope pia".
  • Quando você tem um parâmetro obrigatório que força o Dialogflow a solicitações de preenchimento de formulário, a adaptação automática de fala vai se polarizar na entidade sendo preenchida.

Em todos os casos, a adaptação automática de fala está apenas direcionando o reconhecimento de fala, não o limitando. Por exemplo, mesmo que o Dialogflow esteja solicitando ao usuário um parâmetro obrigatório, os usuários ainda poderão acionar outras intents, como uma intent "conversar com um agente" de nível superior.

Entidades do sistema

Se você definir uma frase de treinamento que use a entidade do sistema @sys.number e o usuário final disser "Quero duas", ela poderá ser reconhecida como "dos", "2" ou "2" ou "dois".

Com a adaptação automática de fala ativada, o Dialogflow usa a entidade @sys.number como uma dica durante o reconhecimento de fala, e o parâmetro tem mais chances de ser extraído como "2".

Entidades personalizadas

  • Se você definir entidades para nomes de produtos ou serviços oferecidos por sua empresa, e o usuário final mencionar esses termos em enunciados, eles terão mais chances de serem reconhecidos. Uma frase de treinamento "Adoro o Dialogflow", em que "Dialogflow" é anotada como a entidade @product, adapta a adaptação automática de falas para o direcionamento de "Adoro Dialogflow", "Adoro o Cloud Speech" e todas outras entradas na entidade @product.

  • É importante definir sinônimos de entidades limpas ao usar o Dialogflow para detectar a fala. Imagine que você tenha duas entradas de entidade do @product, "Dialogflow" e "Dataflow". Seus sinônimos de "Dialogflow" podem ser "Dialogflow", "dialogue flow" ou "dialogue builder", "Speakoit", "speak to it", "API.ai", "API dot AI". Eles são bons sinônimos porque abrangem as variações mais comuns. Não é preciso adicionar "the dialogue flow builder" porque o "dialogue flow" já abrange isso.

  • Os enunciados do usuário com entidades numéricas consecutivas, mas distintas, podem ser ambíguos. Por exemplo, "Quero dois 16 pacotes" pode significar 2 quantidades de 16 pacotes ou 216 quantidades em pacotes. A adaptação de fala pode ajudar a tirar a ambiguidade desses casos se você configurar entidades com valores ortográficos:
    • Defina uma entidade quantity com entradas:
      zero
      one
      ...
      twenty
    • Defina uma entidade product ou size com entradas:
      sixteen pack
      two ounce
      ...
      five liter
    • Somente sinônimos de entidade são usados na adaptação de fala. Assim, você pode definir uma entidade com o valor de referência 1 e um único sinônimo one para simplificar a lógica de fulfillment.

Entidades regexp

As entidades regexp podem acionar a adaptação automática de fala para sequências alfanuméricas e de dígitos como "ABC123" ou "12345" quando configuradas corretamente. Embora qualquer expressão regular possa ser usada para extrair entidades na PLN, somente algumas expressões informam a adaptação automática de fala a fim de polarizar sequências alfanuméricas ou dígitos numeradas ao reconhecer a fala.

Verifique se você está seguindo todos os requisitos a seguir se quiser reconhecer essas sequências por voz:

  1. Pelo menos uma das entradas de entidade regexp seguem todas estas regras:

    • Pode usar conjuntos de caracteres []
    • Pode usar quantizadores de repetição, como *, ?, +, {3,5}
    • Não contém espaços em branco ou \s, embora \s* e \s? sejam permitidos
    • Não contém grupos de captura ()
    • Não tenta corresponder caracteres ou pontuação especiais, como: ` ~ ! @ # $ % ^ & * ( ) - _ = + , . < > / ? ; ' : " [ ] { } \ |
  2. Na sua intent, marque a entidade regexp como um parâmetro obrigatório para que ela possa ser coletada durante o preenchimento de slots. Isso permite que a adaptação automática de fala polarize o reconhecimento de sequências em vez de tentar reconhecer uma intent e uma sequência ao mesmo tempo. Caso contrário, "Onde está meu pacote para ABC123" pode ser reconhecido incorretamente como "Onde está meu pacote 4ABC123".

Por exemplo, uma entidade regexp com uma única entrada ([a-zA-Z0-9]\s?){5,9} não acionará o reconhecedor da sequência de fala porque ele contém um grupo de captura. Para corrigir isso, basta adicionar outra entrada para [a-zA-Z0-9]{5,9}. Agora você pode aproveitar o reconhecedor de sequência quando preencher com a voz de "ABC123", mas a NLP ainda corresponderá a entradas como "ABC 123" graças à regra original que permite espaços.

Os seguintes exemplos de expressões regulares se adaptam para sequências alfanuméricas:

^[A-Za-z0-9]{1,10}$
WAC\d+
215[2-8]{3}[A-Z]+
[a-zA-Z]\s?[a-zA-Z]\s?[0-9]\s?[0-9]\s?[0-9]\s?[a-zA-Z]\s?[a-zA-Z]

Os seguintes exemplos de expressões regulares se adaptam para sequências de dígitos:

\d{2,8}
^[0-9]+$
2[0-9]{7}
[2-9]\d{2}[0-8]{3}\d{4}

Considere também usar @sys.number-sequence para aceitar qualquer sequência de dígitos e @sys.phone-number para um reconhecedor de número de telefone localizado. As entidades do sistema e as entidades personalizadas não regexp funcionam bem com a adaptação automática de fala, mesmo fora das solicitações de preenchimento de forma obrigatórias.

Limitações

Considere as seguintes limitações:

  1. Reconhecer sequências de caracteres longas é um desafio. Em canais de smartphone com áudio de 8 kHz, por exemplo, você pode não reconhecer de forma consistente as sequências com mais de 16 dígitos ou 10 alfanuméricos. Considere outras alternativas de conversa, por exemplo:

    • Ao validar a sequência em relação a um banco de dados, faça referência cruzada a outros parâmetros coletados, como datas, nomes ou números de telefone, para permitir correspondências incompletas. Por exemplo, em vez de apenas solicitar o número de pedido ao usuário, peça também um número de telefone. Agora, quando o webhook consultar o banco de dados para verificar o status do pedido, ele poderá depender do número de telefone e retornar o pedido correspondente mais próximo dessa conta. Isso pode permitir que o Dialogflow escute "ABC" como "AVC" e ainda retorne o status correto do pedido ao usuário.
    • Para sequências longas longas, considere criar um fluxo que incentive os usuários finais a pausar no meio para que o bot possa confirmar conforme você avança.
  2. A compatibilidade integrada da adaptação automática de fala para entidades system e regexp varia de acordo com o idioma. Verifique os tokens da classe Speech para ver os idiomas compatíveis com $OOV_CLASS_ALPHANUMERIC_SEQUENCE e $OOV_CLASS_DIGIT_SEQUENCE. Se seu idioma não estiver listado, você poderá contornar essa limitação. Por exemplo, para que um ID de funcionário com três letras e três dígitos seja reconhecido com precisão, crie seu agente com as seguintes entidades e parâmetros:

    • Defina uma entidade digit que contenha 10 entradas de entidade (com sinônimos):
      0, 0
      1, 1
      ...
      9, 9
    • Defina uma entidade letter que contenha 26 entradas de entidade (com sinônimos):
      A, A
      B, B
      ...
      Z, Z
    • Defina uma entidade employee-id que contenha uma única entrada de entidade (sem sinônimos):
      @letter @letter @letter @digit @digit @digit
    • Use @employee-id como parâmetro em uma frase de treinamento.