Mejorar el reconocimiento de voz con un vocabulario personalizado - Amazon Lex

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Mejorar el reconocimiento de voz con un vocabulario personalizado

Puede proporcionar a Amazon Lex V2 más información sobre cómo procesar las conversaciones de audio con un bot creando un vocabulario personalizado en un idioma específico. Un vocabulario personalizado es una lista de palabras específicas que desea que Amazon Lex V2 reconozca en la entrada de audio. Por lo general, se trata de nombres propios o palabras de dominios específicos que Amazon Lex V2 no reconoce.

Por ejemplo, supongamos que dispone de un bot de soporte técnico. Puede añadir «contexto» a un vocabulario personalizado para ayudar al bot a transcribir correctamente el audio como «contexto», incluso cuando el audio suene como «contesto». Un vocabulario personalizado también puede ayudar a reconocer palabras raras en el audio, como «solvencia» para servicios financieros o nombres propios, como «Cognito» o «Monitron».

Conceptos básicos de vocabulario personalizado

  • Un vocabulario personalizado funciona con la transcripción de la entrada de audio a un bot. Debe proporcionar ejemplos de enunciados para reconocer una intención o un valor de slot.

  • Un vocabulario personalizado es exclusivo de un idioma específico. Debe configurar los vocabularios personalizados de forma independiente para cada idioma. Los vocabularios personalizados solo se admiten en los idiomas inglés (Reino Unido) e inglés (EE. UU.).

  • Los vocabularios personalizados están disponibles con integraciones de centros de contacto compatibles con Amazon Lex V2. La ventana de pruebas de la consola de Amazon Lex V2 admite vocabularios personalizados para todos los bots de Amazon Lex V2 creados a partir del 31 de julio de 2022. Si tiene problemas con los vocabularios personalizados en la ventana de prueba, vuelva a compilar el bot e inténtelo de nuevo.

Amazon Lex V2 utiliza vocabularios personalizados para obtener intenciones y slots. Se utiliza el mismo archivo de vocabulario personalizado para las intenciones y los slots. Puede desactivar de forma selectiva la función de vocabulario personalizado para un slot al añadir un tipo de slot.

Obtener una intención: puede crear un vocabulario personalizado para obtener una intención. Estas frases se utilizan para transcribir cuando su bot determina la intención del usuario. Por ejemplo, si configuró la frase «contexto» en su vocabulario personalizado, Amazon Lex V2 transcribe la entrada del usuario a «¿puedes darme más contexto?» —incluso cuando el audio suene como «¿puedes darme más contesto?». Puede especificar el grado de refuerzo de cada frase configurando un peso de 0, 1, 2 o 3. También puede especificar una representación alternativa para la frase en la salida final del discurso a texto añadiendo un campo displayAs.

Las frases de vocabulario personalizadas que se utilizan para mejorar la transcripción durante la obtención de la intención no afectan a las transcripciones al obtener slots. Para obtener más información acerca de la creación de un vocabulario personalizado para obtener intenciones, consulte Crear un vocabulario personalizado para descubrir intenciones y slots.

Obtener slots personalizados: puede usar un vocabulario personalizado para mejorar el reconocimiento de los slots en las conversaciones de audio. Para mejorar la capacidad de su bot de Amazon Lex V2 para reconocer los valores de los slots, cree un slot personalizado y añada los valores de los slots al slot personalizado y, a continuación, seleccione Utilizar valores de los slots como vocabulario personalizado. Algunos ejemplos de valores de slots son los nombres de productos, los catálogos o los nombres propios. No debe usar palabras o frases comunes como «sí» y «no» en los vocabularios personalizados.

Una vez añadidos los valores de los slots, estos valores se utilizan para mejorar el reconocimiento de los slots cuando el bot espera introducir datos para el slot personalizado. Estos valores no se utilizan para la transcripción cuando se suscita una intención. Para obtener más información, consulte Agregar tipos de slot.

Prácticas recomendadas para crear un vocabulario personalizado

Obtener una intención

  • Los vocabularios personalizados funcionan mejor cuando se utilizan para palabras o frases específicas. Añada palabras a un vocabulario personalizado únicamente si Amazon Lex V2 no las reconoce fácilmente.

  • Decida cuánto peso darle a una palabra en función de la frecuencia con la que no se reconoce la palabra en la transcripción y de su rareza en la entrada. Las palabras difíciles de pronunciar requieren un peso mayor.

  • Utilice un conjunto de pruebas representativo para determinar si un peso es apropiado. Puede recopilar un conjunto de pruebas de audio activando el registro de audio en los registros de conversaciones.

  • Evite usar palabras cortas como «así», «eso», «para», «sí», «no» en un vocabulario personalizado.

Crear un slot personalizado

  • Añada los valores al tipo de slot personalizado que espera que se reconozca. Añada todos los valores de slot posibles para el tipo de slot personalizado, independientemente de lo común o raro que sea el valor del slot.

  • Active la opción solo cuando el tipo de slot personalizado contenga una lista de valores de catálogo o entidades, como nombres de productos o fondos de inversión colectiva.

  • Desactive esta opción si el tipo de slot se utiliza para capturar frases genéricas como «sí», «no», «no sé», «quizás» o palabras genéricas como «uno», «dos», «tres».

  • Limite el número de valores y sinónimos de los slots a 500 o menos para obtener el mejor rendimiento.

Escriba separado mediante puntos o espacios los acrónimos u otras palabras cuyas letras deban pronunciarse por separado. No utilice letras individuales a menos que formen parte de una frase, como «J. P. Morgan» o «A. W. S.» Puede usar letras mayúsculas o minúsculas para definir un acrónimo.

Crear un vocabulario personalizado para descubrir intenciones y slots

Puede utilizar la consola de Amazon Lex V2 para crear y gestionar un vocabulario personalizado, o puede utilizar las operaciones de la API de Amazon Lex V2. Hay dos formas de crear un vocabulario personalizado a través de la consola:

Importar vocabulario personalizado en la consola:
  1. Abra la consola de Amazon Lex V2 en https://console.aws.amazon.com/ecs/v2.

  2. De la lista de bots, seleccione el bot al que desea añadir el vocabulario personalizado.

  3. En la página de detalles del bot, en la sección Añadir idiomas, seleccione Ver idiomas.

  4. De la lista de idiomas, seleccione el idioma al que desea añadir el vocabulario personalizado.

Cree un nuevo vocabulario personalizado directamente desde la consola:
  1. Haga clic en Crear en la sección Vocabulario personalizado de la página de detalles del idioma. Se abrirá una ventana de edición sin ningún vocabulario personalizado.

  2. Agregue entradas para la frase, DisplayAS y el peso según sea necesario. También puede realizar modificaciones integradas en los elementos agregados actualizando sus campos o eliminándolos de la lista.

  3. Haga clic en Guardar. Tenga en cuenta que el nuevo vocabulario personalizado solo se guarda en su bot después de hacer clic en Guardar.

  4. Puede seguir haciendo modificaciones en línea en esta página y hacer clic en Guardar cuando termine.

  5. Esta página también le permite importar, exportar y eliminar un archivo de vocabulario personalizado del menú desplegable de la parte superior derecha.

Use la API de ListCustomVocabularyItems para ver las entradas de vocabulario personalizadas:
  1. Use la operación de ListCustomVocabularyItems para ver las entradas de vocabulario personalizadas. El resultado tendrá este aspecto:

    { "maxResults": number, "nextToken": "string" }
  2. Tenga en cuenta que los campos maxResults y nextToken son opcionales para el cuerpo de la solicitud.

  3. La respuesta de la operación ListCustomVocabularyItems tiene el siguiente aspecto:

    { "botId": "string", "botVersion": "string", "localeId": "string", "customVocabularyItems": [ { "itemId": "string", "phrase": "string", "weight": number, "displayAs": "string" } ] }
Use la API de BatchCreateCustomVocabularyItem para ver las entradas de vocabulario personalizadas:
  1. Si la configuración regional de su bot aún no tiene un vocabulario personalizado creado, siga los pasos para usar StartImport para crear un vocabulario personalizado.

  2. Una vez creado el vocabulario personalizado, use la operación BatchCreateCustomVocabularyItem para crear nuevas entradas de vocabulario personalizadas. El resultado tendrá este aspecto:

    { "customVocabularyItemList": [ { "phrase": "string", "weight": number, "displayAs": "string" } ] }
  3. Tenga en cuenta que los campos weight y displayAs son opcionales para el cuerpo de la solicitud.

  4. La salida del BatchCreateCustomVocabularyItem tendrá este aspecto:

    { "botId": "string", "botVersion": "string", "localeId": "string", "errors": [ { "itemId": "string", "errorMessage": "string", "errorCode": "string" } ], "resources": [ { "itemId": "string", "phrase": "string", "weight": number, "displayAs": "string" } ] }
  5. Como se trata de una operación por lotes, la solicitud no fallará si uno de los elementos no se crea. La lista de errores contendrá información sobre el motivo por el que se produjo un error en la operación en esa entrada específica. La lista de recursos contendrá todas las entradas que se crearon correctamente.

  6. Para BatchCreateCustomVocabularyItem, puede esperar ver estos tipos de errores:

    • RESOURCE_DOES_NOT_EXIST: el vocabulario personalizado no existe. Siga los pasos para crear un vocabulario personalizado antes de realizar esta operación.

    • DUPLICATE_INPUT: la lista de entradas contiene frases duplicadas.

    • RESOURCE_ALREADY_EXISTS: la frase indicada para la entrada ya existe en su vocabulario personalizado.

    • INTERNAL_SERVER_FAILURE: se ha producido un error en el servidor al procesar su solicitud. Esto puede indicar una interrupción del servicio u otro problema.

Use la API de BatchDeleteCustomVocabularyItem para eliminar las entradas de vocabulario personalizadas existentes:
  1. Si la configuración regional de su bot aún no tiene un vocabulario personalizado creado, siga los pasos para usar StartImport para crear un vocabulario personalizado.

  2. Una vez creado el vocabulario personalizado, use la operación BatchDeleteCustomVocabularyItem para eliminar nuevas entradas de vocabulario personalizadas. El resultado tendrá este aspecto:

    { "customVocabularyItemList": [ { "itemId": "string" } ] }
  3. La salida del BatchDeleteCustomVocabularyItem tendrá este aspecto:

    { "botId": "string", "botVersion": "string", "localeId": "string", "errors": [ { "itemId": "string", "errorMessage": "string", "errorCode": "string" } ], "resources": [ { "itemId": "string", "phrase": "string", "weight": number, "displayAs": "string" } ] }
  4. Como se trata de una operación por lotes, la solicitud no fallará si uno de los elementos no se elimina. La lista de errores contendrá información sobre el motivo por el que se produjo un error en la operación en esa entrada específica. La lista de recursos contendrá todas las entradas que se eliminaron correctamente.

  5. Para BatchDeleteCustomVocabularyItem, puede esperar ver estos tipos de errores:

    • RESOURCE_DOES_NOT_EXIST: la entrada de vocabulario personalizada que está intentando eliminar no existe.

    • INTERNAL_SERVER_FAILURE: se ha producido un error en el servidor al procesar su solicitud. Esto puede indicar una interrupción del servicio u otro problema.

Use la API de BatchUpdateCustomVocabularyItem para actualizar las entradas de vocabulario personalizadas existentes:
  1. Si la configuración regional de su bot aún no tiene un vocabulario personalizado creado, siga los pasos para usar StartImport para crear un vocabulario personalizado.

  2. Una vez creado el vocabulario personalizado, use la operación BatchUpdateCustomVocabularyItem para actualizar nuevas entradas de vocabulario personalizadas. El resultado tendrá este aspecto:

    { "customVocabularyItemList": [ { "itemId": "string", "phrase": "string", "weight": number, "displayAs": "string" } ] }
  3. Tenga en cuenta que los campos weight y displayAs son opcionales para el cuerpo de la solicitud.

  4. La salida del BatchUpdateCustomVocabularyItem tendrá este aspecto:

    { "botId": "string", "botVersion": "string", "localeId": "string", "errors": [ { "itemId": "string", "errorMessage": "string", "errorCode": "string" } ], "resources": [ { "itemId": "string", "phrase": "string", "weight": number, "displayAs": "string" } ] }
  5. Como se trata de una operación por lotes, la solicitud no fallará si uno de los elementos no se elimina. La lista de errores contendrá información sobre el motivo por el que se produjo un error en la operación en esa entrada específica. La lista de recursos contendrá todas las entradas que se actualizaron correctamente.

  6. Para BatchUpdateCustomVocabularyItem, puede esperar ver estos tipos de errores:

    • RESOURCE_DOES_NOT_EXIST: la entrada de vocabulario personalizada que está intentando actualizar no existe.

    • DUPLICATE_INPUT: la lista de entradas contiene Id de elementos duplicadas.

    • RESOURCE_ALREADY_EXISTS: la frase indicada para la entrada ya existe en su vocabulario personalizado.

    • INTERNAL_SERVER_FAILURE: se ha producido un error en el servidor al procesar su solicitud. Esto puede indicar una interrupción del servicio u otro problema.

Crear un archivo de vocabulario personalizado

Un archivo de vocabulario personalizado es una lista de valores separados por tabulaciones que contiene la frase que se debe reconocer, un peso que la potencia y un campo displayAs que sustituirá a la frase en la transcripción del discurso. Es más probable que se usen frases con un valor de refuerzo más alto cuando aparecen en la entrada de audio.

El archivo de vocabulario personalizado debe tener un nombre CustomVocabulary.tsv y comprimirse en un archivo zip antes de poder importarlo. El archivo zip debe tener menos de 300 MB. El número máximo de frases en un vocabulario personalizado es 500.

  • frase: de 1 a 4 palabras que deben reconocerse. Separe las palabras de la frase con espacios. No puede tener frases duplicadas en el archivo. El campo «frase» es obligatorio.

  • peso: el grado en que debe potenciarse el reconocimiento de la frase. El valor es un número entero 0, 1, 2 o 3. Si no se especifica un peso, el valor predeterminado es 1. Decida el peso en función de la frecuencia con la que no se reconoce la palabra en la transcripción y de su rareza en la entrada. El peso 0 significa que no se potenciará nada y que la entrada solo se utilizará para realizar sustituciones utilizando el campo displayAs.

  • DisplayAS: define el aspecto que desea que tenga la frase en el resultado de la transcripción. Se trata de un campo opcional en el vocabulario personalizado.

El archivo de vocabulario personalizado debe contener una fila de encabezados con los encabezados «frase», «peso» y «DisplayAs». Los encabezados pueden estar en cualquier orden, pero deben seguir la nomenclatura anterior.

A continuación se muestra un ejemplo de un archivo CSV personalizado. El carácter de tabulación necesario para separar la frase, el peso y la pantalla se representa mediante el texto «[TAB]». Si utiliza este ejemplo, sustituya el texto por un carácter de tabulación.

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