Adaptação de fala

Ao executar uma solicitação de detecção de intent, é possível fornecer Contexto de fala para dar dicas ao reconhecedor de fala. Essas dicas podem ajudar no reconhecimento em um estado de conversa específico.

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 é ativado por padrão.

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

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

  1. Acessar o Console do Dialogflow ES
  2. selecione seu agente próximo à parte superior do menu da barra lateral à esquerda;
  3. clique no botão de configurações ao lado do nome do agente.
  4. Selecione a guia Fala.
  5. Role até a seção Melhorar a qualidade de reconhecimento de fala.
  6. Ative ou desative a opção Ativar a adaptação automática de fala.

Design de agente para 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. As seções a seguir explicam como é possível melhorar o reconhecimento de fala com algumas alterações nas frases de treinamento, nos contextos e nas entidades do seu agente.

Frases e contextos 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 uma sessão está ativa contextos, a adaptação automática de fala vai influenciar para as frases de treinamento das intents em que todos os contextos de entrada estão ativas. Por exemplo, com dois contextos ativos "pay-bill" e "confirmation", todas as intents a seguir influenciam a atenção automática da fala: intents com um único contexto de entrada "pay-bill", intents com uma única entrada de confirmação "confirmação" e intents com dois contextos de entrada "pay-bill" e "confirmation".

  • Quando uma sessão não tem contextos ativos, a adaptação automática de fala se concentra mais nas frases de treinamento de intents sem contextos de entrada.

  • Quando você tem um parâmetro obrigatório que força o Dialogflow a preenchimento do slot comandos, adaptação automática de fala tende a influenciar fortemente a entidade que está 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 o @sys.number entidade do sistema , e o usuário final diz "quero dois", ela pode ser reconhecida como "to", "too", "2" ou "two".

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 entidade personalizada nomes de produtos ou serviços oferecidos pela sua empresa, e o usuário final mencionar esses termos em um enunciado, é mais provável para que o reconhecimento seja feito. 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

Entidades regexp pode acionar a fala automática adaptação para sequências alfanuméricas e de dígitos, como “ABC123” ou "12345" quando configuradas e testadas corretamente.

Para reconhecer essas sequências por voz, implemente os quatro requisitos abaixo:

1. Requisito de entrada de regex

Embora qualquer expressão regular possa ser usada para extrair entidades de entradas de texto, somente algumas expressões vão informar a adaptação automática de fala para o viés para por letras alfanuméricas ou de dígitos no reconhecimento de fala.

Na entidade regexp, pelo menos uma entrada precisa seguir todas estas regras:

  • Precisa corresponder a alguns caracteres alfanuméricos, por exemplo: \d, \w, [a-zA-Z0-9]
  • Não pode conter espaços em branco   ou \s, embora \s* e \s? sejam permitidos.
  • Não pode conter grupos de captura ou não captura ()
  • Não deve tentar fazer correspondência com caracteres especiais ou pontuações como: ` ~ ! @ # $ % ^ & * ( ) - _ = + , . < > / ? ; ' : " [ ] { } \ |

Esta entrada pode ter conjuntos de caracteres de [] e quantificadores de repetição, como *, ?, + e {3,5}.

Consulte Exemplos.

2. Requisito de definição de parâmetros

Marque a entidade regexp como um parâmetro de intent obrigatório para que ela seja coletada durante o preenchimento de slot. 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".

3. Requisito de anotação de frases de treinamento

Não use a entidade regexp para um anotação de frase de treinamento da intent. Isso garante que o parâmetro seja resolvido como parte do preenchimento do slot.

4. Requisito de teste

Consulte Como testar a adaptação da fala.

Exemplos

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ê se beneficiam do reconhecedor de sequência ao fazer a correspondência com "ABC123", mas o PLN ainda vai corresponder a entradas como "ABC 123" graças à versão original que permita 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}
Solução alternativa para Regexp

O suporte integrado da adaptação automática de fala a entidades regexp varia de acordo com o idioma. Marque a opção Tokens de classe de fala. para $OOV_CLASS_ALPHANUMERIC_SEQUENCE e $OOV_CLASS_DIGIT_SEQUENCE linguagens compatíveis.

Se seu idioma não estiver listado, você poderá contornar essa limitação. Por exemplo, se você quiser um ID de funcionário que seja três letras seguidas por três dígitos para serem reconhecidos com precisão, é possível 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.

Como testar a adaptação da fala

Ao testar os recursos de adaptação de fala do agente para uma correspondência de frase ou entidade de treinamento específica, não vá direto para o teste de correspondência com a primeira expressão de voz de uma conversa. Use apenas entradas de texto ou de evento para toda a conversa antes de a correspondência que você quer testar. O comportamento do agente quando testado dessa maneira será semelhante ao que acontece nas conversas de produção.

Limitações

Considere as seguintes limitações:

  • A adaptação de fala não está disponível para todos os modelos de fala e combinações de idiomas. Consulte a página de suporte à linguagem do Cloud Speech para verificar se a "adaptação do modelo" está disponível para seu modelo de fala e combinação de idiomas.
  • A adaptação automática de fala não funciona no Actions on Google (Google Assistente), porque o reconhecimento de fala é feito pelo Actions on Google antes de enviar dados ao Dialogflow.
  • Reconhecer sequências de caracteres longas é um desafio. O número de personagens capturados em uma única rodada está diretamente relacionado com a qualidade do áudio de entrada. Por exemplo, se a integração opera com áudio de ligações telefônicas, você precisa: ativar os modelos de fala aprimorados para reconhecer de forma confiável sequências alfanuméricas maiores que quatro ou cinco caracteres ou sequências de dígitos com mais de 10 caracteres. Se você seguiu todas as diretrizes de entidades regexp e ainda tem dificuldade para capturar toda a sequência de uma vez, você pode considerar algumas alternativas mais coloquiais:
    • 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 mais longas, considere criar um fluxo que incentive os usuários finais a fazer uma pausa no meio para que o bot possa confirmar durante o processo. Leia este tutorial para saber mais detalhes.