Criação de um vocabulário personalizado para melhorar o reconhecimento de fala - Amazon Lex

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á.

Criação de um vocabulário personalizado para melhorar o reconhecimento de fala

Você pode fornecer ao Amazon Lex V2 mais informações sobre como processar conversas de áudio com um bot criando um vocabulário personalizado em um idioma específico. Um vocabulário personalizado é uma lista de frases específicas que você deseja que o Amazon Lex V2 reconheça na entrada de áudio. Geralmente, esses são substantivos próprios ou palavras específicas de 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 soa como “empacotar”. Um vocabulário personalizado também pode ajudar a reconhecer palavras raras no áudio, como “solvência” para serviços financeiros ou substantivos próprios, como “Cognito” ou “Monitron”.

Noções básicas do vocabulário personalizado

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

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

  • Vocabulários personalizados suportam apenas entrada de áudio de 8 kHz. Ele está disponível com integrações de contact center suportadas pelo Amazon Lex V2. A janela de teste no console Amazon Lex V2 não oferece suporte a vocabulários personalizados, pois usa entrada de áudio de 16 kHz.

O Amazon Lex V2 usa vocabulários personalizados para obter intenções e espaços. 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.

Evocar uma intenção — Você pode criar um vocabulário personalizado para provocar uma intenção. Essas frases são usadas para transcrever quando seu bot está determinando a intenção do usuário. Por exemplo, se você configurou a frase “backup” em seu vocabulário personalizado, o Amazon Lex V2 transcreve a entrada do usuário para “você pode fazer backup das minhas fotos?” —mesmo quando o áudio soa como “você pode, por favor, empacotar minhas fotos”. Você pode especificar o grau de aumento para cada frase configurando um peso de 0, 1, 2 ou 3. Você também pode especificar uma representação alternativa da frase na saída final da fala em texto adicionando umdisplayAs campo.

As frases de vocabulário personalizadas usadas para melhorar a transcrição durante a elicitação da intenção não afetam as transcrições enquanto geram espaços. Para obter mais informações sobre como criar um vocabulário personalizado para obter intenções, consulteCriação de um vocabulário personalizado para obter intenções e espaços.

Evocando slots personalizados — Você pode usar um vocabulário personalizado para melhorar o reconhecimento de slots para conversas de áudio. Para melhorar a capacidade do seu bot Amazon Lex V2 de reconhecer valores de slots, crie um slot personalizado e adicione os valores do slot personalizado e escolha Usar valores de slot como vocabulário personalizado. Exemplos de valores de slots incluem nomes de produtos, catálogos ou substantivos próprios. Você não deve usar 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 espera uma entrada para o slot personalizado. Esses valores não são usados para transcrição ao obter uma intenção. Para obter mais informações, consulte Adicionar tipos de slots.

Práticas recomendadas para criar um vocabulário personalizado

Evocando uma intenção

  • Vocabulários personalizados funcionam melhor quando usados para atingir palavras ou frases específicas. Adicione palavras a um vocabulário personalizado somente se elas não forem facilmente 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 de áudio nos registros de conversas.

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

Evocando 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, não importa quão comum ou raro seja o valor do slot.

  • Ative a opção somente quando o tipo de slot personalizado contiver uma lista de valores ou entidades do catálogo, 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 e sinônimos de slots 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 e 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.” Você pode usar letras maiúsculas ou minúsculas para definir um acrônimo.

Criação de um vocabulário personalizado para obter intenções e espaços

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

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

  2. Na lista de bots, escolha o bot ao qual você deseja adicionar ao 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 a presença de vocabulário personalizado.

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

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

  4. Você pode continuar fazendo edições em linha 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 no menu suspenso no canto superior direito.

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

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

  3. A resposta daListCustomVocabularyItems operação é a seguinte:

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

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

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

  4. A resposta doBatchCreateCustomVocabularyItem testamento 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 falhar na criação. A lista de erros conterá informações sobre por que a operação falhou nessa entrada específica. A lista de recursos conterá todas as entradas que foram criadas com sucesso.

  6. PoisBatchCreateCustomVocabularyItem, você pode esperar ver esses 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 acionar esta operação.

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

    • RESOURCE_ALREADY_EXISTS: A frase fornecida para a entrada já existe em seu 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 aBatchDeleteCustomVocabularyItem API para excluir entradas de vocabulário personalizadas existentes:
  1. Se a localidade do seu bot ainda não tiver um vocabulário personalizado criado, siga as etapas para Usar o StartImportpara criar um vocabulário personalizado para criar um.

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

    { "customVocabularyItemList": [ { "itemId": "string" } ] }
  3. A resposta doBatchDeleteCustomVocabularyItem testamento será assim:

    { "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 falhar na exclusão. A lista de erros conterá informações sobre por que a operação falhou nessa entrada específica. A lista de recursos conterá todas as entradas que foram excluídas com sucesso.

  5. PoisBatchDeleteCustomVocabularyItem, você pode esperar ver esses 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 aBatchUpdateCustomVocabularyItem API para atualizar as entradas de vocabulário personalizadas existentes:
  1. Se a localidade do seu bot ainda não tiver um vocabulário personalizado criado, siga as etapas para Usar o StartImportpara criar um vocabulário personalizado para criar um vocabulário personalizado.

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

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

  4. A resposta doBatchUpdateCustomVocabularyItem testamento será assim:

    { "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 falhar na exclusão. A lista de erros conterá informações sobre por que a operação falhou nessa entrada específica. A lista de recursos conterá todas as entradas que foram atualizadas com êxito.

  6. PoisBatchUpdateCustomVocabularyItem, você pode esperar ver esses tipos de erros:

    • RESOURCE_DOES_NOT_EXIST: A entrada de vocabulário personalizada 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 em seu 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 separados por tabulação que contém a frase a ser reconhecida, um peso para dar um impulso e umdisplayAs campo que substituirá a frase na transcrição da fala. Frases com um valor de reforço maior têm maior probabilidade de serem usadas quando aparecem na entrada de áudio.

O arquivo de vocabulário personalizado deve ser nomeadoCustomVocabulary.tsv e compactado em um arquivo zip antes de ser importado. O arquivo zip deve ter menos de 300 MB. O número máximo de frases em um vocabulário personalizado é 500.

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

  • peso — O grau de intensificação do reconhecimento da frase. O valor é um número 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 nenhum reforço será aplicado e a entrada será usada apenas para realizar substituições usando odisplayAs campo.

  • DisplayAs — Define como você deseja que sua 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 “frase”, “peso” 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