Melhorar o reconhecimento de fala com um vocabulário personalizado - Guia do desenvolvedor

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Melhorar o reconhecimento de fala com um vocabulário personalizado

Você pode fornecer ao Amazon Lex V2 mais informações sobre como processar conversas de áudio com um bot ao criar um vocabulário personalizado em um idioma específico. Um vocabulário personalizado é uma lista de palavras específicas que você deseja que o Amazon Lex V2 reconheça na entrada de áudio. Geralmente, esses são nomes próprios ou palavras específicas do domínio que o Amazon Lex V2 não reconhece.

Por exemplo, suponha que você tenha um bot de suporte técnico. Você pode adicionar “backup” a um vocabulário personalizado para ajudar o bot a transcrever o áudio corretamente como “backup”, mesmo quando o áudio soar como “pack up”. Um vocabulário personalizado também pode ajudar a reconhecer palavras raras no áudio, como “solvência”, para serviços financeiros ou nomes próprios, como “Cognito” ou “Monitron”.

Conceitos básicos de vocabulário personalizado

  • Um vocabulário personalizado funciona na transcrição da entrada de áudio para um bot. É necessário fornecer exemplos de enunciados para reconhecer uma intenção ou um valor de slot.

  • Um vocabulário personalizado é exclusivo para um idioma específico. É necessário configurar vocabulários personalizados de forma independente para cada idioma. Vocabulários personalizados são compatíveis somente com os idiomas inglês (Reino Unido) e inglês (EUA).

  • Vocabulários personalizados estão disponíveis com integrações de central de atendimento compatíveis com o Amazon Lex V2. A janela de teste no console do Amazon Lex V2 oferece suporte a vocabulários personalizados para todos os bots do Amazon Lex V2 criados em 31 de julho de 2022 ou após. Se você tiver problemas com vocabulários personalizados na janela de teste, reconstrua o bot e tente novamente.

O Amazon Lex V2 usa vocabulários personalizados para escolher intenções e slots. O mesmo arquivo de vocabulário personalizado é usado para intenções e slots. Você pode desativar seletivamente o recurso de vocabulário personalizado de um slot ao adicionar um tipo de slot.

Escolher uma intenção – Você pode criar um vocabulário personalizado para escolher uma intenção. Essas frases são usadas para transcrição quando o bot está determinando a intenção do usuário. Por exemplo, se você configurou a frase “backup” no vocabulário personalizado, o Amazon Lex V2 transcreverá a entrada do usuário para “você pode fazer backup das minhas fotos, por favor?” — mesmo quando o áudio soar como “você pode pack up minhas fotos, por favor”. É possível especificar o grau de prioridade para cada frase configurando um peso de 0, 1, 2 ou 3. Você também pode especificar uma representação alternativa para a frase na saída final de fala em texto adicionando um campo displayAs.

As frases de vocabulário personalizadas usadas para melhorar a transcrição durante a escolha da intenção não afetam as transcrições ao escolher slots. Para obter mais informações sobre a criação de um vocabulário personalizado para escolher intenções, consulte Criar um vocabulário personalizado para escolher intenções e slots.

Escolher slots personalizados – Você pode usar um vocabulário personalizado para melhorar o reconhecimento de slots em conversas de áudio. Para melhorar a capacidade do bot Amazon Lex V2 de reconhecer valores de slot, crie um slot personalizado e adicione os valores de slot ao slot personalizado, depois escolha Usar valores de slot como vocabulário personalizado. Exemplos de valores de slots incluem nomes de produtos, catálogos ou nomes próprios. Não use palavras ou frases comuns como “sim” e “não” em vocabulários personalizados.

Depois que os valores do slot são adicionados, esses valores são usados para melhorar o reconhecimento do slot quando o bot está aguardando uma entrada para o slot personalizado. Esses valores não são usados para transcrição ao escolher uma intenção. Para mais informações, consulte Adicionar tipos de slot.

Práticas recomendadas para criar um vocabulário personalizado

Escolher uma intenção

  • Vocabulários personalizados funcionam melhor quando são usados para direcionar palavras ou frases específicas. Somente adicione palavras a um vocabulário personalizado se elas não forem prontamente reconhecidas pelo Amazon Lex V2.

  • Decida quanto peso atribuir a uma palavra com base na frequência com que a palavra não é reconhecida na transcrição e na raridade da palavra na entrada. Palavras difíceis de pronunciar exigem um peso maior.

  • Use um conjunto de teste representativo para determinar se um peso é apropriado. Você pode coletar um conjunto de testes de áudio ativando o registro em log de áudio nos logs de conversas.

  • Evite usar palavras curtas como “em”, “isso”, “para”, “sim”, “não” em um vocabulário personalizado.

Escolher um slot personalizado

  • Adicione os valores ao tipo de slot personalizado que você espera que seja reconhecido. Adicione todos os valores de slot possíveis para o tipo de slot personalizado, independentemente de serem comuns ou raros.

  • Ative a opção somente quando o tipo de slot personalizado contiver uma lista de valores de catálogo ou entidades, como nomes de produtos ou fundos mútuos.

  • Desative a opção se o tipo de slot for usado para capturar frases genéricas como “sim”, “não”, “não sei”, “talvez” ou palavras genéricas como “um”, “dois”, “três”.

  • Limite o número de valores de slots e sinônimos a 500 ou menos para obter o melhor desempenho.

Insira acrônimos ou outras palavras cujas letras devem ser pronunciadas individualmente como letras únicas separadas por um ponto ou um espaço. Não use letras individuais, a menos que elas façam parte de uma frase, como “J. P. Morgan” ou “A. W. S.”. É possível usar letras maiúsculas ou minúsculas para definir um acrônimo.

Criar um vocabulário personalizado para escolher intenções e slots

Você pode usar o console do Amazon Lex V2 para criar e gerenciar um vocabulário personalizado ou pode usar as operações de API do Amazon Lex V2. Há duas maneiras de criar um vocabulário personalizado por meio do console:

Importe o vocabulário personalizado no console:
  1. Abra o console do Amazon Lex V2 em https://console.aws.amazon.com/lexv2/home

  2. Na lista de bots, escolha o bot ao qual você deseja adicionar o vocabulário personalizado.

  3. Na página de detalhes do bot, na seção Adicionar idiomas, escolha Exibir idiomas.

  4. Na lista de idiomas, escolha o idioma ao qual você deseja adicionar o vocabulário personalizado.

Crie um novo vocabulário personalizado diretamente pelo console:
  1. Clique em Criar na seção Vocabulário personalizado da página de detalhes do idioma. Isso abrirá uma janela de edição sem nenhum vocabulário personalizado presente.

  2. Adicione entradas para frase, DisplayAs e peso conforme necessário. Você também pode fazer edições embutidas nos itens adicionados atualizando os campos ou excluindo-os da lista.

  3. Clique em Salvar. Observação: o novo vocabulário personalizado só é salvo no bot depois que você clica em Salvar.

  4. Você pode continuar fazendo edições embutidas nesta página e clicar em Salvar quando terminar.

  5. Essa página também permite importar, exportar e excluir um arquivo de vocabulário personalizado do menu suspenso no canto superior direito.

Use a API ListCustomVocabularyItems para visualizar as entradas de vocabulário personalizadas:
  1. Use a operação ListCustomVocabularyItems para visualizar as entradas de vocabulário personalizadas. O corpo da solicitação será semelhante a este:

    { "maxResults": number, "nextToken": "string" }
  2. Observe que maxResults e nextToken são campos opcionais para o corpo da solicitação.

  3. A resposta da operação ListCustomVocabularyItems é semelhante a esta:

    { "botId": "string", "botVersion": "string", "localeId": "string", "customVocabularyItems": [ { "itemId": "string", "phrase": "string", "weight": number, "displayAs": "string" } ] }
Use a API BatchCreateCustomVocabularyItem para criar novas entradas de vocabulário personalizadas:
  1. Se a localidade do bot ainda não tiver um vocabulário personalizado criado, siga as etapas para usar o StartImport para criar um vocabulário personalizado.

  2. Depois que o vocabulário personalizado for criado, use a operação BatchCreateCustomVocabularyItem para criar novas entradas de vocabulário personalizado. O corpo da solicitação será semelhante a este:

    { "customVocabularyItemList": [ { "phrase": "string", "weight": number, "displayAs": "string" } ] }
  3. Observe que weight e displayAs são campos opcionais para o corpo da solicitação.

  4. A resposta do BatchCreateCustomVocabularyItem será semelhante a esta:

    { "botId": "string", "botVersion": "string", "localeId": "string", "errors": [ { "itemId": "string", "errorMessage": "string", "errorCode": "string" } ], "resources": [ { "itemId": "string", "phrase": "string", "weight": number, "displayAs": "string" } ] }
  5. Como essa é uma operação em lote, a solicitação não falhará se um dos itens não for criado. A lista de erros conterá informações sobre o motivo pelo qual a operação falhou nessa entrada específica. A lista de recursos conterá todas as entradas que foram criadas com êxito.

  6. Para BatchCreateCustomVocabularyItem, é possível encontrar estes tipos de erros:

    • RESOURCE_DOES_NOT_EXIST: o vocabulário personalizado não existe. Siga as etapas para criar um vocabulário personalizado antes de chamar essa operação.

    • DUPLICATE_INPUT: a lista de entradas contém frases duplicadas.

    • RESOURCE_ALREADY_EXISTS: a frase fornecida para a entrada já existe no vocabulário personalizado.

    • INTERNAL_SERVER_FAILURE: houve um erro no back-end ao processar sua solicitação. Isso pode indicar uma interrupção do serviço ou outro problema.

Use a API BatchDeleteCustomVocabularyItem para excluir entradas de vocabulário personalizado existentes:
  1. Se a localidade do bot ainda não tiver um vocabulário personalizado criado, siga as etapas em Usar o StartImport para criar um vocabulário personalizado.

  2. Depois que o vocabulário personalizado for criado, use a operação BatchDeleteCustomVocabularyItem para excluir entradas de vocabulário personalizado existentes. O corpo da solicitação será semelhante a este:

    { "customVocabularyItemList": [ { "itemId": "string" } ] }
  3. A resposta do BatchDeleteCustomVocabularyItem será semelhante a esta:

    { "botId": "string", "botVersion": "string", "localeId": "string", "errors": [ { "itemId": "string", "errorMessage": "string", "errorCode": "string" } ], "resources": [ { "itemId": "string", "phrase": "string", "weight": number, "displayAs": "string" } ] }
  4. Como essa é uma operação em lote, a solicitação não falhará se um dos itens não for excluído. A lista de erros conterá informações sobre o motivo pelo qual a operação falhou nessa entrada específica. A lista de recursos conterá todas as entradas que foram excluídas com êxito.

  5. Para BatchDeleteCustomVocabularyItem, é possível encontrar estes tipos de erros:

    • RESOURCE_DOES_NOT_EXIST: a entrada de vocabulário personalizado que você está tentando excluir não existe.

    • INTERNAL_SERVER_FAILURE: houve um erro no back-end ao processar sua solicitação. Isso pode indicar uma interrupção do serviço ou outro problema.

Use a API BatchUpdateCustomVocabularyItem para atualizar as entradas de vocabulário personalizado existentes:
  1. Se a localidade do bot ainda não tiver um vocabulário personalizado criado, siga as etapas em Usar o StartImport para criar um vocabulário personalizado.

  2. Depois que o vocabulário personalizado for criado, use a operação BatchUpdateCustomVocabularyItem para atualizar entradas de vocabulário personalizado existentes. O corpo da solicitação será semelhante a este:

    { "customVocabularyItemList": [ { "itemId": "string", "phrase": "string", "weight": number, "displayAs": "string" } ] }
  3. Observe que weight e displayAs são campos opcionais para o corpo da solicitação.

  4. A resposta do BatchUpdateCustomVocabularyItem será semelhante a esta:

    { "botId": "string", "botVersion": "string", "localeId": "string", "errors": [ { "itemId": "string", "errorMessage": "string", "errorCode": "string" } ], "resources": [ { "itemId": "string", "phrase": "string", "weight": number, "displayAs": "string" } ] }
  5. Como essa é uma operação em lote, a solicitação não falhará se um dos itens não for excluído. A lista de erros conterá informações sobre o motivo pelo qual a operação falhou nessa entrada específica. A lista de recursos conterá todas as entradas que foram atualizadas com êxito.

  6. Para BatchUpdateCustomVocabularyItem, é possível encontrar estes tipos de erros:

    • RESOURCE_DOES_NOT_EXIST: a entrada de vocabulário personalizado que você está tentando atualizar não existe.

    • DUPLICATE_INPUT: a lista de entradas contém itemIds duplicados.

    • RESOURCE_ALREADY_EXISTS: a frase fornecida para a entrada já existe no vocabulário personalizado.

    • INTERNAL_SERVER_FAILURE: houve um erro no back-end ao processar sua solicitação. Isso pode indicar uma interrupção do serviço ou outro problema.

Criar um arquivo de vocabulário personalizado

Um arquivo de vocabulário personalizado é uma lista de valores separada por tabulação que contém a frase a ser reconhecida, um peso para aumentar sua prioridade e um campo displayAs que substituirá a frase na transcrição da fala. Frases com um valor de prioridade mais alta têm maior probabilidade de serem usadas quando aparecem na entrada de áudio.

O arquivo de vocabulário personalizado deve ser nomeado como CustomVocabulary.tsv e compactado em um arquivo zip antes de ser importado. O arquivo .zip deve ter um tamanho menor que 300 MB. O número máximo de frases em um vocabulário personalizado é 500.

  • phrase – Uma a quatro palavras que devem ser reconhecidas. Separe as palavras na frase com espaços. Não é possível ter frases duplicadas no arquivo. O campo phrase é obrigatório.

  • weight – O grau de prioridade do reconhecimento da frase. O valor é um inteiro 0, 1, 2 ou 3. Se você não especificar um peso, o valor padrão será 1. Decida o peso com base na frequência com que a palavra não é reconhecida na transcrição e na raridade da palavra na entrada. O peso 0 significa que nenhuma prioridade será aplicada e que a entrada será usada apenas para realizar substituições usando o campo displayAs.

  • displayAs – Define como você deseja que a frase apareça na saída da transcrição. Esse é um campo opcional no vocabulário personalizado.

O arquivo de vocabulário personalizado deve conter uma linha de cabeçalho com os cabeçalhos “phrase”, “weight” e “displayAs”. Os cabeçalhos podem estar em qualquer ordem, mas devem seguir a nomenclatura acima.

O exemplo a seguir é um arquivo de vocabulário personalizado. O caractere de tabulação necessário para separar a frase, o peso e o displayAs é representado pelo texto “[TAB]”. Se você usar esse exemplo, substitua o texto por um caractere de tabulação.

phrase[TAB]weight[TAB]displayAs Newcastle[TAB]2 Hobart[TAB]2[TAB]Hobart, Australia U. Dub[TAB]1[TAB]University of Washington, Seattle W. S. U.[TAB]3 Issaquah Kennewick