Adaptação da voz

Quando executa um pedido de deteção de intenção, pode fornecer opcionalmente contexto de voz para dar sugestões ao reconhecedor de voz. Estas sugestões podem ajudar com o reconhecimento num estado de conversa específico.

Adaptação automática da voz

A funcionalidade de adaptação automática da voz melhora a precisão do reconhecimento de voz do seu agente através da utilização automática do estado da conversa para transmitir entidades relevantes e expressões de treino como sugestões de contexto de voz para todos os pedidos de deteção de intenção. Esta funcionalidade está ativada por predefinição.

Ative ou desative a adaptação automática da voz

Para ativar ou desativar a adaptação automática da voz:

  1. Aceda à consola do Dialogflow ES
  2. Selecione o seu agente perto da parte superior do menu da barra lateral esquerda
  3. Clique no botão de definições junto ao nome do agente
  4. Selecione o separador Voz
  5. Desloque a página até à secção Melhore a qualidade do reconhecimento de voz
  6. Ative ou desative a opção Ativar adaptação automática da voz

Conceção de agente para melhorias no reconhecimento de voz

Com a adaptação automática da voz ativada, pode criar o seu agente de formas que tirem partido da mesma. As secções seguintes explicam como o reconhecimento de voz pode ser melhorado com determinadas alterações às expressões de preparação, aos contextos e às entidades do seu agente.

Expressões e contextos de formação

  • Se definir expressões de preparação com uma expressão como "nariz entupido", uma expressão do utilizador final com um som semelhante é reconhecida de forma fiável como "nariz entupido" e não "stuff he knows" (coisas que ele sabe).
  • Quando uma sessão tem contextos ativos, a adaptação automática da fala favorece a maioria das frases de preparação de intenções em que todos os contextos de entrada estão ativos. Por exemplo, com dois contextos ativos "pay-bill" e "confirmation", todos os seguintes objetivos vão influenciar a adaptação automática da voz: objetivos com um único contexto de entrada "pay-bill", objetivos com um único contexto de entrada "confirmation" e objetivos com dois contextos de entrada "pay-bill" e "confirmation".

  • Quando uma sessão não tem contextos ativos, a adaptação automática da fala favorece a maioria das frases de preparação de intenções sem contextos de entrada.

  • Quando tem um parâmetro obrigatório que força o Dialogflow a usar comandos de preenchimento de espaços, a adaptação automática da voz vai favorecer fortemente a entidade que está a ser preenchida.

Em todos os casos, a adaptação automática da voz está apenas a influenciar o reconhecimento de voz e não a limitá-lo. Por exemplo, mesmo que o Dialogflow esteja a pedir a um utilizador um parâmetro obrigatório, os utilizadores continuam a poder acionar outras intenções, como uma intenção de "falar com um agente" de nível superior.

Entidades do sistema

Se definir uma expressão de preparação que use a @sys.number entidade do sistema , e o utilizador final disser "Quero dois", pode ser reconhecido como "para", "também", "2" ou "dois".

Com a adaptação automática da voz ativada, o Dialogflow usa a entidade @sys.number como uma sugestão durante o reconhecimento de voz, e é mais provável que o parâmetro seja extraído como "2".

Entidades personalizadas

  • Se definir uma entidade personalizada para nomes de produtos ou serviços oferecidos pela sua empresa, e o utilizador final mencionar estes termos num enunciado, é mais provável que sejam reconhecidos. A expressão de preparação "Adoro o Dialogflow", em que "Dialogflow" está anotado como a entidade @product, indica à adaptação automática da fala que deve favorecer "Adoro o Dialogflow", "Adoro o Cloud Speech" e todas as outras entradas na entidade @product.

  • É especialmente importante definir sinónimos de entidades limpos quando usar o Dialogflow para detetar a voz. Imagine que tem duas entradas de entidades @product: "Dialogflow" e "Dataflow". Os seus sinónimos para "Dialogflow" podem ser "Dialogflow", "fluxo de diálogo", "criador de diálogos", "Speaktoit", "speak to it", "API.ai", "API dot AI". Estes são bons sinónimos porque abrangem as variações mais comuns. Não precisa de adicionar "o criador de fluxo de diálogo" porque "fluxo de diálogo" já abrange essa parte.

  • As expressões do utilizador com entidades numéricas consecutivas, mas distintas, podem ser ambíguas. Por exemplo, "Quero dois pacotes de dezasseis" pode significar 2 quantidades de 16 pacotes ou 216 quantidades de pacotes. A adaptação da voz pode ajudar a desambiguar estes casos se configurar entidades com valores escritos por extenso:
    • Defina uma entidade quantity com entradas:
      zero
      one
      ...
      twenty
    • Defina uma entidade product ou size com entradas:
      sixteen pack
      two ounce
      ...
      five liter
    • A adaptação da voz usa apenas sinónimos de entidades, pelo que pode definir uma entidade com o valor de referência 1 e o sinónimo único one para simplificar a lógica de processamento.

Entidades de regexp

As entidades de expressão regular podem acionar a adaptação automática da fala para sequências alfanuméricas e de dígitos, como "ABC123" ou "12345", quando configuradas e testadas corretamente.

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

1. Requisito de entrada de expressão regular

Embora seja possível usar qualquer expressão regular para extrair entidades de entradas de texto, apenas determinadas expressões indicam à adaptação automática da voz que deve dar prioridade a sequências alfanuméricas ou de dígitos escritas por extenso quando reconhece a voz.

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

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

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

Veja exemplos.

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

Marque a entidade regexp como um parâmetro de intenção obrigatório, para que possa ser recolhida durante o preenchimento de espaços. Isto permite que a adaptação automática da voz seja fortemente tendenciosa para o reconhecimento de sequências, em vez de tentar reconhecer um objetivo e uma sequência ao mesmo tempo. Caso contrário, "Onde está a minha encomenda para ABC123" pode ser reconhecido incorretamente como "Onde está a minha encomenda 4ABC123".

3. Requisito de anotação de expressões de preparação

Não use a entidade regexp para uma anotação de expressão de preparação de intenção. Isto garante que o parâmetro é resolvido como parte do preenchimento de espaços.

4. Requisito de testes

Consulte o artigo Testar a adaptação da voz.

Exemplos

Por exemplo, uma entidade regexp com uma única entrada ([a-zA-Z0-9]\s?){5,9} não aciona o reconhecedor de sequência de voz porque contém um grupo de captura. Para corrigir este problema, basta adicionar outra entrada para [a-zA-Z0-9]{5,9}. Agora, vai beneficiar do reconhecedor de sequências quando fizer a correspondência de "ABC123", mas a NLU vai continuar a fazer a correspondência de entradas como "ABC 123" graças à regra original que permite espaços.

Os seguintes exemplos de expressões regulares adaptam-se a 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 adaptam-se a sequências de dígitos:

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

O suporte incorporado da adaptação automática do discurso para entidades de expressões regulares varia consoante o idioma. Verifique os tokens de classe de voz para os idiomas suportados $OOV_CLASS_ALPHANUMERIC_SEQUENCE e $OOV_CLASS_DIGIT_SEQUENCE.

Se o seu idioma não for apresentado, pode contornar esta limitação. Por exemplo, se quiser que um ID de funcionário com três letras seguidas de três dígitos seja reconhecido com precisão, pode criar o seu agente com as seguintes entidades e parâmetros:

  • Defina uma entidade digit que contenha 10 entradas de entidades (com sinónimos):
    0, 0
    1, 1
    ...
    9, 9
  • Defina uma entidade letter que contenha 26 entradas de entidades (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 numa expressão de preparação.

A testar a adaptação da voz

Quando testar as capacidades de adaptação de voz do seu agente para uma determinada expressão de preparação ou correspondência de entidade, não deve passar diretamente para o teste da correspondência com a primeira emissão de voz de uma conversa. Deve usar apenas entradas de voz ou de eventos para toda a conversa antes da correspondência que quer testar. O comportamento do seu agente quando testado desta forma será semelhante ao comportamento nas conversas de produção reais.

Limitações

Aplicam-se as seguintes limitações:

  • A adaptação da voz não está disponível para todos os modelos de voz e combinações de idiomas. Consulte a página de apoio técnico de idiomas do Cloud Speech para verificar se a "adaptação de modelos" está disponível para o seu modelo de voz e combinação de idiomas.
  • A adaptação automática da voz não funciona para as Ações no Google (Assistente Google), porque o reconhecimento de voz é realizado pelas Ações no Google antes de enviar dados para o Dialogflow.
  • O reconhecimento de sequências de carateres longas é difícil. O número de carateres captados num único turno está diretamente relacionado com a qualidade do áudio de entrada. Por exemplo, se a sua integração funcionar com áudio de chamadas telefónicas, tem de ativar os modelos de voz melhorados para reconhecer de forma fiável sequências alfanuméricas com mais de quatro ou cinco carateres, ou sequências de dígitos com mais de 10 carateres. Se seguiu todas as diretrizes de entidades de expressões regulares e ainda tem dificuldades em captar toda a sequência num único turno, pode considerar algumas alternativas mais conversacionais:
    • Quando validar a sequência numa base de dados, considere fazer referências cruzadas a outros parâmetros recolhidos, como datas, nomes ou números de telefone, para permitir correspondências incompletas. Por exemplo, em vez de apenas pedir a um utilizador o número da encomenda, peça também o respetivo número de telefone. Agora, quando o webhook consulta a sua base de dados para saber o estado da encomenda, pode confiar primeiro no número de telefone e, em seguida, devolver a encomenda mais próxima para essa conta. Isto pode permitir que o Dialogflow ouça incorretamente "ABC" como "AVC", mas ainda assim devolva o estado da encomenda correto ao utilizador.
    • Para sequências muito longas, considere criar um fluxo que incentive os utilizadores finais a fazerem uma pausa a meio para que o bot possa confirmar à medida que avançam. Leia este tutorial para mais detalhes.