Adaptación de voz

Cuando realizas una solicitud de detección de intent, puedes proporcionar de forma opcional un contexto de voz para brindar sugerencias al reconocedor de voz. Estas sugerencias pueden ayudarte con el reconocimiento en una situación de conversación específica.

Adaptación de voz automática

La función de adaptación de voz automática mejora la precisión del reconocimiento de voz de tu agente mediante el uso automático del estado de la conversación para pasar entidades relevantes y frases de entrenamiento como sugerencias de contexto de voz en todas las solicitudes de detección de intent. Esta función está habilitada de forma predeterminada.

Habilita o inhabilita la adaptación automática de voz

Para habilitar o inhabilitar la adaptación automática de voz, haz lo siguiente:

  1. Ve a la consola de Dialogflow ES.
  2. Selecciona tu agente cerca de la parte superior del menú de la barra lateral izquierda.
  3. Haz clic en el botón de configuración  ubicado junto al nombre del agente.
  4. Selecciona la pestaña Voz.
  5. Desplázate hacia la sección Mejorar la calidad del reconocimiento de voz.
  6. Activa o desactiva Habilitar la adaptación de voz automática.

Diseño de agentes para mejoras en el reconocimiento de voz

Si habilitas la adaptación automática de voz, puedes compilar tu agente para aprovecharla. En las siguientes secciones, se explica cómo se puede mejorar el reconocimiento de voz con ciertos cambios en las frases de entrenamiento, los contextos y las entidades del agente.

Frases de entrenamiento y contextos

  • Si defines frases de entrenamiento con una frase como “es 3 de diciembre”, un enunciado del usuario que suene similar se reconoce de manera correcta como “es 3 de diciembre” y no “estrés de diciembre”.
  • Cuando una sesión tiene contextos activos, la adaptación de voz automática restringirá la mayoría de las frases de entrenamiento de intents en los que todos los contextos de entrada estén activos. Por ejemplo, con dos contextos activos “pago-factura” y “confirmación”, todos los intents siguientes influirán en la adaptación de voz automática: intents con un solo contexto de entrada “pay-bill”, intents con un solo contexto en el contexto de entrada “confirmation” y los intents con dos contextos de entrada “pay-bill” y “confirmation”.

  • Cuando una sesión no tiene contextos activos, la adaptación de voz automática penalizará las frases de entrenamiento de los intents sin contextos de entrada.

  • Cuando tienes un parámetro obligatorio que fuerza a Dialogflow a enviar mensajes de relleno de ranuras, la adaptación de voz automática se aplicará a la entidad que se llena.

En todos los casos, la adaptación de voz automática solo restringe el reconocimiento de voz, no la limita. Por ejemplo, aunque Dialogflow le solicite a un usuario un parámetro obligatorio, los usuarios aún podrán activar otros intents, como un intent “hablar con un agente”.

Entidades del sistema

Si defines una frase de entrenamiento que usa la entidad del sistema @sys.number y el usuario final dice “Quiero dos”, esta podría reconocerse como “para”, “demasiado”, “2” o “dos”.

Cuando la adaptación de voz automática está habilitada, Dialogflow usa la entidad @sys.number como pista durante el reconocimiento de voz, y es más probable que el parámetro se extraiga como "100".

Entidades personalizadas

  • Si defines una entidad personalizada para los nombres de productos o servicios que ofrece tu empresa, y el usuario final menciona estos términos en un enunciado, es más probable que se reconozcan. Una frase de entrenamiento “Me encanta Dialogflow”, en la que “Dialogflow” se anota como la entidad @product, le indicará una adaptación de voz automática a la biografía para “Me encanta Dialogflow”, “Me encanta Cloud Speech” y otras entradas en la entidad @product.

  • Es muy importante definir sinónimos de entidad limpia cuando se usa Dialogflow para detectar la voz. Imagina que tienes dos entradas de entidad @product: “Dialogflow” y “Dataflow”. Tus sinónimos de “Dialogflow” pueden ser “Dialogflow”, “flujo de diálogo”, “compilador de diálogo”, “Speakoit”, “hablar con él”, “API.ai”, “IA de punto de API”. Estos son sinónimos adecuados, ya que abarcan las variaciones más comunes. No es necesario que agregues “el compilador de flujo de diálogo” porque el “flujo de diálogo” ya lo cubre.

  • Las declaraciones de usuario con entidades numéricas consecutivas, pero distintas pueden ser ambiguas. Por ejemplo, “Quiero dos dieciséis paquetes” podría significar 2 cantidades de 16 paquetes o 216 cantidades de paquetes. La Adaptación de voz puede ayudar a evitar la ambigüedad de estos casos si configuras las entidades con valores deletreados:
    • Define una entidad quantity con entradas:
      zero
      one
      ...
      twenty
    • Define una entidad product o size con entradas:
      sixteen pack
      two ounce
      ...
      five liter
    • Solo se usan los sinónimos de entidad en la adaptación de voz, por lo que puedes definir una entidad con valor de referencia 1 y sinónimo único one para simplificar tu lógica de entrega.

Entidades de expresión regular

Las entidades de expresión regular pueden activar la adaptación de voz automática para secuencias alfanuméricas y de dígitos, como “ABC123” o “12345”, cuando se configuran y prueban de forma correcta.

Para reconocer estas secuencias por voz, implementa los cuatro requisitos que se indican a continuación:

1. Requisito de entrada de expresiones regulares

Si bien se puede usar cualquier expresión regular para extraer entidades de las entradas de texto, solo ciertas expresiones indicarán a la adaptación de voz automática a la ordenación de las secuencias alfanuméricas o de dígitos escritas que se reconozcan cuando se reconozca la voz.

En la entidad regexp, al menos una entrada debe seguir todas estas reglas:

  • Debe coincidir con algunos caracteres alfanuméricos, por ejemplo: \d, \w, [a-zA-Z0-9].
  • No debe contener espacios en blanco   ni \s, aunque se permiten \s* y \s?
  • No debe incluir grupos de captura o que no sean de captura ()
  • No debes intentar coincidir con ningún carácter especial o puntuación como los siguientes: ` ~ ! @ # $ % ^ & * ( ) - _ = + , . < > / ? ; ' : " [ ] { } \ |

Esta entrada puede tener grupos de caracteres [] y cuantificadores de repetición como *, ?, + y {3,5}.

Consulta los ejemplos.

2. Requisito de definición de parámetros

Marca la entidad de expresión regular como parámetro de intent obligatorio para que pueda recopilarse durante el llenado de ranuras. Esto permite que la adaptación de voz automática establezca un sesgo sólido para el reconocimiento de secuencias en lugar de intentar reconocer una intención y una secuencia al mismo tiempo. De lo contrario, “Where is my package for ABC123” podría no reconocerse como “Where is my package 4ABC123”?

3. Requisito de anotación de frases de entrenamiento

No uses la entidad regexp para una anotación de frase de entrenamiento de intents. Esto garantiza que el parámetro se resuelva como parte del relleno de ranuras.

4. Requisito de pruebas

Consulta Prueba la adaptación de voz.

Ejemplos

Por ejemplo, una entidad de expresión regular con una sola entrada ([a-zA-Z0-9]\s?){5,9} no activará el reconocedor de la secuencia de voz porque contiene un grupo de captura. Para solucionar este problema, agrega otra entrada para [a-zA-Z0-9]{5,9}. Ahora te beneficiarás del reconocedor de secuencias cuando hagas coincidir "ABC123", pero la CLN seguirá coincidir con entradas como "ABC 123" gracias a la regla original que permite los espacios.

Los siguientes ejemplos de expresiones regulares se adaptan a secuencias 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]

Los siguientes ejemplos de expresiones regulares se adaptan a las secuencias de dígitos:

\d{2,8}
^[0-9]+$
2[0-9]{7}
[2-9]\d{2}[0-8]{3}\d{4}
Solución alternativa de expresiones regulares

La compatibilidad integrada de la adaptación de voz automática con las entidades de expresión regular varía según el idioma. Verifica los tokens de clase de Speech para ver los idiomas admitidos en $OOV_CLASS_ALPHANUMERIC_SEQUENCE y $OOV_CLASS_DIGIT_SEQUENCE.

Si tu idioma no aparece en la lista, puedes solucionar esta limitación. Por ejemplo, si deseas que se reconozca con precisión un ID de empleado compuesto por tres letras seguidas de tres dígitos, puedes compilar tu agente con los siguientes parámetros y entidades:

  • Define una entidad digit que contenga 10 entradas de entidad (con sinónimos):
    0, 0
    1, 1
    ...
    9, 9
  • Define una entidad letter que contenga 26 entradas de entidad (con sinónimos):
    A, A
    B, B
    ...
    Z, Z
  • Define una entidad employee-id que contenga una sola entrada de entidad (sin sinónimos):
    @letter @letter @letter @digit @digit @digit
  • Usa @employee-id como parámetro en una frase de entrenamiento.

Prueba la adaptación de voz

Cuando pruebas las capacidades de adaptación de voz del agente para una frase de entrenamiento o coincidencia de entidad en particular, no debes pasar directamente a probar la coincidencia con el primer enunciado de voz de una conversación. Debes usar solo entradas de voz o eventos para toda la conversación antes de la coincidencia que deseas probar. El comportamiento de tu agente cuando se prueba de esta manera será similar al comportamiento de las conversaciones de producción reales.

Limitaciones

Se aplica la siguiente limitación:

  • La adaptación de voz no está disponible para todos los modelos de voz ni combinaciones de idiomas. Consulta la página de compatibilidad de Lenguaje de Cloud Speech para verificar si la “adaptación de modelo” está disponible para tu modelo de voz y combinación de idioma.
  • La adaptación de voz automática no funciona para Actions on Google (Asistente de Google), ya que Actions on Google realiza el reconocimiento de voz antes de enviar los datos a Dialogflow.
  • Es un desafío reconocer secuencias de personajes largos. La cantidad de caracteres que se capturan en un solo turno se relaciona directamente con la calidad del audio de entrada. Por ejemplo, si tu integración funciona con audio de llamadas telefónicas, debes habilitar los modelos de voz mejorados para que reconozcan de manera confiable secuencias alfanuméricas de más de cuatro o cinco caracteres, o bien secuencias de dígitos de más de 10 caracteres. Si seguiste todos los lineamientos de entidades de regexp y aún no logras capturar la secuencia completa en un solo turno, puedes considerar algunas alternativas más conversacionales:
    • Cuando valides la secuencia en una base de datos, considera hacer una referencia cruzada de otros parámetros recopilados, como las fechas, los nombres o los números de teléfono, a fin de permitir coincidencias incompletas. Por ejemplo, en lugar de pedir a un usuario a su número de pedido, también pídele su número de teléfono. Ahora, cuando tu webhook consulta a tu base de datos por el estado del pedido, primero puede aparecer en el número de teléfono y, luego, mostrar el orden coincidente más cercano para esa cuenta. Esto podría permitir que Dialogflow escuche incorrectamente “ABC” como “AVC” y aún muestra el estado correcto del pedido para el usuario.
    • Para secuencias muy largas, considera diseñar un flujo que anime a los usuarios finales a detenerse en el medio para que el bot pueda confirmarlo sobre la marcha. Lee este instructivo para obtener más detalles.