Ao executar uma solicitação de detecção de intent, é possível fornecer phrase_hints 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 é 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
- Abra o Console do Dialogflow CX.
- Escolha seu projeto do GCP.
- Selecione seu agente.
- Clique em Configurações do agente.
- Clique na guia Speech and IVR.
- Ative ou desative a opção Ativar a adaptação automática de fala.
- Clique em Salvar.
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 de agente | Recurso do agente |
RPC (remote procedure call) | Interface do agente | Interface do agente |
C++ | AgentsClient (em inglês) | Indisponível |
C# | AgentsClient (em inglês) | Indisponível |
Go | AgentsClient (em inglês) | 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 |
Design do 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 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 preenchimento de formulário 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",
ele pode ser reconhecido 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
ousize
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ônimoone
para simplificar a lógica de fulfillment.
- Defina uma entidade
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 Regexp
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
\s
, embora\s*
e\s?
sejam permitidos. - Não contém 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 parâmetro de formulário obrigatório para que ela seja coletada durante preenchimento. 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 formulário.
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
A compatibilidade integrada da adaptação automática de fala para entidades regexp varia de acordo com o idioma.
Verifique os tokens da classe Speech
para conferir 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, se você quer 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.
Adaptação manual de fala
A adaptação manual da fala permite configurar manualmente frases de adaptação de fala de um fluxo ou uma página. Ele também substitui contextos de fala implícitos gerados por adaptação automática de fala quando a última estiver ativada.
As configurações de adaptação de fala no nível do fluxo e da página têm uma hierarquia relação, o que significa que uma página herda as configurações de adaptação de fala dos o nível de fluxo por padrão e o nível de página mais detalhado sempre substitui o nível do fluxo se a página tiver uma configuração personalizada.
Para a configuração de adaptação de fala, a configuração do nível do fluxo e a configuração do nível da página podem ser ativadas de forma independente. Se a configuração de adaptação no nível do fluxo não estiver ativada, você ainda poderá escolher Personalizar no nível da página para ativar a adaptação de fala manual para essa página específica. Da mesma forma, se você desativar a adaptação manual da fala na configuração do nível do fluxo, as páginas no fluxo com Personalizar selecionado não serão afetadas.
No entanto, a configuração no nível do fluxo e no nível da página não pode ser desativada de forma independente. Se um fluxo tiver a adaptação manual de fala ativada, não será possível desativá-la para uma abaixo do fluxo, usando a opção Personalizar. Portanto, se você quiser usar a adaptação manual e automática de fala para páginas em um fluxo, não ative a adaptação manual de fala no nível do fluxo e use apenas as configurações de adaptação no nível da página. Consulte a tabela abaixo para entender qual combinação de fluxo e configuração de página você deve usar no seu caso de adaptação.
Efeito desejado | Uso recomendado das configurações de adaptação |
---|---|
Desativar a adaptação automática de um fluxo | Fluxo ativado sem conjuntos de frases (as páginas no fluxo usam a configuração de fluxo por padrão). |
Desativar a adaptação automática de uma página | Fluxo desativado e página ativada (Personalizar escolhida) sem conjuntos de frases. |
Usar apenas a adaptação de fala manual para todas as páginas em um fluxo | Fluxo ativado. Personalize as páginas que precisam usar conjuntos de frases diferentes do fluxo. |
Usar a adaptação automática e manual em um fluxo | Fluxo desativado. Personalize as páginas em que você quer aplicar a adaptação manual. |
Usar a adaptação automática de fala apenas para todas as páginas de um fluxo | Fluxo desativado. |
Ativar ou desativar a adaptação manual de fala
Para ativar ou desativar a adaptação manual de fala no nível do fluxo ou da página:
Configurações de fluxo
- Abra o Console do Dialogflow CX.
- Escolha seu projeto do GCP.
- Passe o cursor do mouse sobre o fluxo na seção Fluxos.
- Clique no botão de opções .
- Selecione Configurações de fluxo no menu suspenso.
- Marque ou desmarque a caixa de seleção Ativar a adaptação manual de fala.
- Editar, adicionar ou excluir conjuntos de frases na tabela de conjuntos de frases
- Clique em Salvar.
Configurações da página
- Abra o Console do Dialogflow CX.
- Escolha seu projeto do GCP.
- Passe o cursor do mouse sobre a página na seção Páginas.
- Clique no botão de opções .
- Selecione Configurações da página no menu suspenso.
- A opção Usar nível de fluxo é escolhida por padrão e, quando selecionada, as frases de adaptação do nível do fluxo serão reutilizadas nesta página. Escolha Personalizar para configurar frases de adaptação diferentes das configurações do nível do fluxo. Mesmo que a adaptação manual de fala esteja desativada no nível do fluxo, ainda é possível ativar e configurar a adaptação manual de fala para uma página nesse fluxo usando a opção Personalizar.
- Editar, adicionar ou excluir um conjunto de frases na tabela de adaptação
- Clique em Salvar.
Configuração manual do conjunto de frases para melhorias no reconhecimento de fala
1. Palavras e frases
Em um conjunto de frases de adaptação, é possível definir frases de uma ou várias palavras com referências opcionais a tokens de classe de fala. Por exemplo, é possível adicionar frases como "great rate", "tracking number is $OOV_CLASS_ALPHANUMERIC_SEQUENCE" ou "$FULLPHONENUM". Essas frases aumentam a probabilidade de serem transcritas em vez de outras frases fonéticamente semelhantes. Quando você adiciona uma frase com várias palavras sem nenhum otimizador, a inclinação é aplicada à frase inteira e às partes contínuas dentro dela. Em geral, o número de frases deve ser mantido em tamanho pequeno e só deve adicionar frases que o reconhecimento de fala tem dificuldade para acertar sem a adaptação da fala. Se o recurso "Texto por voz" já reconhecer uma frase corretamente, não será necessário adicionar essa frase às configurações de adaptação de fala. Se você encontrar algumas frases que o Speech-to-Text muitas vezes reconhece incorretamente em uma página ou fluxo, é possível adicionar as frases corretas ao as configurações de adaptação correspondentes.
Exemplo de correção de erro de reconhecimento
Este é um exemplo de como usar a adaptação de fala para corrigir o reconhecimento problemas. Digamos que você esteja projetando um agente comercial de dispositivos móveis e o usuário pode dizer algo que inclua as frases "vender telefones" ou "telefone celular" depois que o agente fizer a primeira pergunta: "Com o que você precisa de ajuda?". Como podemos usar a adaptação de fala para melhorar a precisão do reconhecimento nas duas frases?
Se você incluir as duas frases nas configurações de adaptação, a conversão de voz em texto ainda poderá ser confusa, já que elas soam semelhantes. Se você fornecer apenas uma das duas frases, a Speech-to-Text poderá reconhecer incorretamente uma frase como sendo a outra; Para melhorar a precisão do reconhecimento de voz para as duas frases, forneça à Speech-to-Text mais dicas de contexto para distinguir quando ela precisa ouvir "vender telefones" e quando ela precisa ouvir "telefone celular". Por exemplo, é possível notar que as pessoas costumam usar "vender smartphones" como parte de frases como "como vender smartphones", "quero vender smartphones" ou "você vende smartphones", enquanto "smartphone" é usado em frases como "comprar smartphone", "fatura de smartphone" e "serviço de smartphone". Se você fornecer essas frases mais precisas ao modelo em vez das frases originais curtas "celular" e "vender celulares", a Speech-to-Text vai aprender que "vender celular" como uma frase de verbo tem mais chances de seguir palavras como "como", "querer" e "você", enquanto "celular" como uma frase de substantivo tem mais chances de seguir palavras como "comprar" ou ser seguida por palavras como "conta" ou "serviço". Portanto, como regra geral para configurar frases de adaptação, geralmente é melhor fornecer frases mais precisas, como "como vender telefones" ou "você vende telefones", em vez de incluir apenas "vender telefone".
2. Tokens de classe de fala
Além das palavras em linguagem natural, você também pode incorporar referências a de classe de fala em uma frase. Tokens da classe de fala representam conceitos comuns que geralmente seguem certas por escrito. Por exemplo, para o número de um endereço como "123 Main Street", as pessoas geralmente esperam ver o formato numérico "123" em um endereço em vez da versão totalmente soletrada "cento e vinte e três". Se você espera certa formatação nos resultados da transcrição, especialmente para sequências alfanuméricas, consulte a lista de tokens de classe compatíveis para saber quais tokens estão disponíveis para seu idioma e caso de uso.
Se a página já tiver rotas de intent ou parâmetros com referências a entidades do sistema, confira uma tabela de referência para mapeamentos entre entidades comuns do sistema e tokens de classe de voz:
Entidades do sistema | Tokens de classe de fala |
---|---|
@sys.date |
$MONTH $DAY $YEAR |
@sys.date-time |
$MONTH $DAY $YEAR |
@sys.date-period |
$MONTH $DAY $YEAR |
@sys.time |
$TIME |
@sys.time-period |
$TIME |
@sys.age |
$OPERAND |
@sys.number |
$OPERAND |
@sys.number-integer |
$OPERAND |
@sys.cardinal |
$OPERAND |
@sys.ordinal |
$OPERAND |
@sys.percentage |
$OPERAND |
@sys.duration |
$OPERAND |
@sys.currency-name |
$MONEY |
@sys.unit-currency |
$MONEY |
@sys.phone-number |
$FULLPHONENUM |
@sys.zip-code |
$POSTALCODE ou $OOV_CLASS_POSTALCODE |
@sys.address |
$ADDRESSNUM $STREET $POSTALCODE |
@sys.street-address |
$ADDRESSNUM $STREET $POSTALCODE |
@sys.temperature |
$OOV_CLASS_TEMPERATURE |
@sys.number-sequence |
$OOV_CLASS_DIGIT_SEQUENCE |
@sys.flight-number |
$OOV_CLASS_ALPHANUMERIC_SEQUENCE |
3. Otimizar valor
Se adicionar frases sem o valor de otimização não fornecer um efeito de viés forte o suficiente, use o valor de otimização para fortalecer ainda mais o efeito de viés da adaptação de fala.
A otimização aplica uma polarização adicional quando definida para valores maiores do que 0 e não mais que 20. Quando a otimização está vazia ou 0, o efeito de polarização padrão ajuda a reconhecer a frase inteira e as partes contínuas dentro da frase. Por exemplo, frase sem recursos "você está aberto para vender smartphones"? ajuda a reconhecer essa frase e também frases semelhantes, como "Vendo smartphones" e "Olá, você está aberto".
Quando o aumento positivo é aplicado, o efeito de viés é mais forte, mas só se aplica à frase exata. Por exemplo, uma frase otimizada "vender smartphones" ajuda a reconhecer "você pode vender smartphones" mas não "você vende smartphones".
Por esses motivos, você vai ter os melhores resultados se fornecer frases com e sem incremento.
Valores de otimização maiores podem resultar em menos falsos negativos, que são casos em que a palavra ou frase ocorreu no áudio, mas não foi reconhecido corretamente pela Speech-to-Text (underbiasing). No entanto, o aumento também pode aumentar a probabilidade de falsos positivos; ou seja, casos em que a palavra ou frase aparece na transcrição mesmo que isso não tenha ocorrido no áudio (excesso de viés). Geralmente, é necessário ajustar as frases de viés para encontrar um bom ponto de equilíbrio entre os dois problemas.
Saiba como ajustar o valor do boost para frases no documento do Cloud Speech sobre o boost.
Quando usar a adaptação automática ou manual de fala
Em geral, se você não tiver certeza se a adaptação de fala vai melhorar a qualidade do reconhecimento de fala do seu agente (sem padrões de erros de transcrição claros), tente a adaptação automática primeiro antes de recorrer à adaptação manual. Para decisões mais sutis, considere os seguintes fatores para decidir entre a adaptação automática ou manual da fala:
1. Preenchimento de formulário
A adaptação automática de fala funciona muito bem com preenchimento de formulário já que usa contexto gramatical ABNF dos parâmetros do formulário e aplica regras gramaticais com base nos tipos de entidade. Como a adaptação manual de fala ainda não oferece suporte a gramáticas ABNF, a adaptação automática de fala é geralmente preferida em vez da manual para uma página de preenchimento de formulário. Ainda para páginas com somente parâmetros de entidade do sistema e entidades regexp simples compatíveis com tokens de classe de fala, Também é possível usar a adaptação manual da fala para conseguir um efeito de viés semelhante ao adaptação automática de fala sem precisar ajustar entidades regexp.
2. Complexidade da transição de página ou fluxo
Para uma página ou fluxo simples com algumas rotas de intent, a adaptação automática de fala provavelmente vai gerar frases de viés representativas e ter um bom desempenho.
No entanto, se uma página ou fluxo tiver uma grande quantidade de rotas de intent (para uma página, considere também o número de rotas no nível do fluxo) ou se alguma das intents tiver frases de treinamento muito longas ou curtas (por exemplo, uma frase inteira ou uma única palavra com apenas uma ou duas sílabas), é muito provável que o modelo de adaptação de fala não funcione bem com essas frases. Primeiro, tente desativar a adaptação de fala para as páginas abertas com alta complexidade ativando a adaptação de fala manual com conjuntos de frases vazios (substituições de adaptação vazias). Depois disso, avalie se há frases especiais não ambíguas que ainda precisam ser fornecidas ao Speech-to-Text para melhorar a qualidade do reconhecimento.
Outro sintoma desse problema de complexidade é a ocorrência de uma ampla gama de problemas de subestimação ou superestimação quando a adaptação automática de fala está ativada. Assim como no caso acima, também é necessário fazer testes com a adaptação de fala. desativado para a página específica primeiro. Se os comportamentos incorretos persistirem após a desativação da adaptação de fala, Em seguida, você pode adicionar as frases que deseja corrigir ao configurações de adaptação de fala e até mesmo adicionar valores de otimização para fortalecer ainda mais os efeitos de viés quando necessário.
Como testar a adaptação de 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.
Atualmente, a adaptação manual de fala não tem suporte classes personalizadas ou ABNF gramática ainda. Você pode ativar a adaptação automática de fala ou usar o ambiente de execução detectar solicitação de intent para fazer uso desses recursos de adaptação.
O mesmo valor de otimização pode ter um desempenho diferente para modelos de fala distintos e Por isso, tenha cuidado ao configurá-las manualmente para agentes que usam vários idiomas ou modelos de fala. No momento, a adaptação manual de fala é aplicada a todos os idiomas em um agente. Portanto, agentes multilíngues devem usar apenas frases independentes do idioma ou dividir cada idioma em um agente separado. Como o comportamento de viés padrão (não fornecer boost ou 0 boost) geralmente tem um bom desempenho em todos os idiomas e modelos, não é necessário configurar valores de boost específicos da linguagem, a menos que um viés mais forte seja necessário para seu caso de uso de reconhecimento. Saiba mais sobre como ajustar o valor de otimização Guia do Cloud Speech-to-Text.
- 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.
Se você seguiu todas as diretrizes de entidades regexp
e tentei usar tokens de classe de fala relevantes
nas configurações manuais de adaptação de fala
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, crie um fluxo que incentive os usuários finais a pausar no meio para que o bot possa confirmar durante o processo.