Adaptación de voz

Cuando realices una solicitud de detección de intenciones, puedes proporcionar de forma opcional un contexto de voz para dar pistas al reconocedor de voz. Estas pistas pueden ayudar a reconocer el estado de una conversación específica.

Adaptación de voz automática

La función de adaptación automática del habla mejora la precisión del reconocimiento de voz de tu agente. Para ello, usa automáticamente el estado de la conversación para enviar entidades y frases de entrenamiento relevantes como sugerencias de contexto de voz en todas las solicitudes de detección de intención. Esta función está habilitada de forma predeterminada.

Habilitar o inhabilitar la adaptación automática del habla

Para habilitar o inhabilitar la adaptación de voz automática, sigue estos pasos:

  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 situado junto al nombre del agente.
  4. Selecciona la pestaña Voz.
  5. Desplázate hasta la sección Mejorar la calidad del reconocimiento de voz.
  6. Activa o desactiva Habilitar adaptación automática del habla.

Diseño de agentes para mejorar el reconocimiento de voz

Si la adaptación automática del habla está habilitada, puedes crear tu agente de forma que aproveche esta función. En las siguientes secciones se explica cómo se puede mejorar el reconocimiento de voz haciendo ciertos cambios en las frases de entrenamiento, los contextos y las entidades de tu agente.

Frases de entrenamiento y contextos

  • Si defines frases de entrenamiento con una frase como "nariz taponada", una expresión del usuario final con un sonido similar se reconocerá de forma fiable como "nariz taponada" y no como "nariz taponada".
  • Cuando una sesión tiene contextos activos, la adaptación automática del habla se centrará principalmente en las frases de entrenamiento de las intenciones en las que todos los contextos de entrada estén activos. Por ejemplo, si hay dos contextos activos ("pay-bill" y "confirmation"), todas las intenciones siguientes influirán en la adaptación automática del habla: las intenciones con un solo contexto de entrada ("pay-bill"), las intenciones con un solo contexto de entrada ("confirmation") y las intenciones con dos contextos de entrada ("pay-bill" y "confirmation").

  • Cuando una sesión no tiene contextos activos, la adaptación automática del habla se centrará principalmente en las frases de entrenamiento de las intenciones sin contextos de entrada.

  • Cuando tienes un parámetro obligatorio que obliga a Dialogflow a mostrar peticiones de relleno de espacios, la adaptación automática del habla se centrará en la entidad que se esté rellenando.

En todos los casos, la adaptación automática del habla solo influye en el reconocimiento de voz, no lo limita. Por ejemplo, aunque Dialogflow pida a un usuario un parámetro obligatorio, los usuarios podrán activar otras intenciones, como una intención de nivel superior para hablar con un agente.

Entidades del sistema

Si defines una frase de entrenamiento que usa la @sys.number entidad de sistema , y el usuario final dice "Quiero dos", puede reconocerse como "to", "too", "2" o "two".

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

Entidades personalizadas

  • Si defines una entidad personalizada para los nombres de los productos o servicios que ofrece tu empresa y el usuario final menciona estos términos en una petición, es más probable que se reconozcan. Si la frase de entrenamiento es "Me encanta Dialogflow", donde "Dialogflow" se anota como la entidad @product, la adaptación automática del habla se centrará en "Me encanta Dialogflow", "Me encanta Cloud Speech" y todas las demás entradas de la entidad @product.

  • Es especialmente importante definir sinónimos de entidades claros cuando se usa Dialogflow para detectar el habla. Supongamos que tiene dos entradas de la entidad @product: "Dialogflow" y "Dataflow". Los sinónimos de "Dialogflow" pueden ser "Dialogflow", "dialogue flow", "dialogue builder", "Speaktoit", "speak to it", "API.ai" y "API dot AI". Son buenos sinónimos porque abarcan las variaciones más habituales. No es necesario que añadas "el creador de flujo de diálogo" porque "flujo de diálogo" ya lo incluye.

  • Las peticiones de los usuarios con entidades numéricas consecutivas pero distintas pueden ser ambiguas. Por ejemplo, "Quiero dos paquetes de 16" puede significar 2 cantidades de paquetes de 16 o 216 cantidades de paquetes. La adaptación del habla puede ayudar a distinguir estos casos si configuras entidades con valores escritos:
    • Define una entidad quantity con entradas:
      zero
      one
      ...
      twenty
    • Define una entidad product o size con las siguientes entradas:
      sixteen pack
      two ounce
      ...
      five liter
    • En la adaptación de voz solo se usan sinónimos de entidades, por lo que puedes definir una entidad con el valor de referencia 1 y el sinónimo one para simplificar la lógica de la respuesta.

Entidades de expresión regular

Las entidades de expresión regular pueden activar la adaptación automática del habla para secuencias alfanuméricas y de dígitos, como "ABC123" o "12345", cuando se configuran y se prueban correctamente.

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

1. Requisito de entrada de expresión regular

Aunque se puede usar cualquier expresión regular para extraer entidades de entradas de texto, solo determinadas expresiones indicarán a la adaptación automática del habla que se centre en secuencias alfanuméricas o de dígitos deletreadas al reconocer el habla.

En la entidad de expresión regular, al menos una entrada debe cumplir todas estas reglas:

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

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

Consulta los ejemplos.

2. Requisitos de definición de parámetros

Marca la entidad de expresión regular como parámetro de intención obligatorio para que se pueda recoger durante la asignación de espacios. De esta forma, la adaptación automática de voz se centra en el reconocimiento de secuencias en lugar de intentar reconocer una intención y una secuencia al mismo tiempo. De lo contrario, "¿Dónde está mi paquete para ABC123?" podría interpretarse erróneamente como "¿Dónde está mi paquete 4ABC123?".

3. Requisito de anotación de frases de preparación

No utilice la entidad de expresión regular para una anotación de frase de entrenamiento de intención. De esta forma, el parámetro se resuelve como parte del relleno de espacios.

4. Requisito de prueba

Consulta Probar 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 secuencias de voz porque contiene un grupo de captura. Para solucionarlo, solo tiene que añadir otra entrada para [a-zA-Z0-9]{5,9}. Ahora podrás beneficiarte del reconocedor de secuencias al buscar "ABC123", pero la NLU seguirá encontrando coincidencias con entradas como "ABC 123" gracias a la regla original que permite 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 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 con expresiones regulares

La compatibilidad integrada de la adaptación de voz automática con las entidades de expresiones regulares varía según el idioma. Consulta los tokens de clase de Speech para ver los idiomas admitidos de $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 quieres que se reconozca correctamente un ID de empleado que tenga tres letras seguidas de tres dígitos, puedes crear tu agente con las siguientes entidades y parámetros:

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

Probar la adaptación de voz

Cuando pruebes las funciones de adaptación del habla de tu agente para una frase de entrenamiento o una coincidencia de entidad concretas, no debes pasar directamente a probar la coincidencia con la primera expresión de voz de una conversación. Solo debes usar entradas de voz o de eventos durante toda la conversación anterior a la coincidencia que quieras probar. El comportamiento de tu agente cuando se pruebe de esta forma será similar al comportamiento en conversaciones de producción reales.

Limitaciones

Se aplican las siguientes limitaciones:

  • La adaptación del habla no está disponible para todos los modelos de voz ni para todas las combinaciones de idiomas. Consulta la página de idiomas compatibles con Cloud Speech para comprobar si la adaptación de modelos está disponible para tu modelo de voz y tu combinación de idiomas.
  • La adaptación automática del habla no funciona en Acciones de Google (el Asistente de Google), ya que Acciones de Google realiza el reconocimiento de voz antes de enviar los datos a Dialogflow.
  • Reconocer secuencias largas de caracteres es difícil. El número de caracteres que se capturan en un solo turno está directamente relacionado 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 reconocer de forma fiable secuencias alfanuméricas de más de cuatro o cinco caracteres, o secuencias de dígitos de más de 10 caracteres. Si has seguido todas las directrices de entidades de expresiones regulares y sigues teniendo problemas para capturar toda la secuencia en un solo turno, puedes probar con otras alternativas más conversacionales:
    • Al validar la secuencia en una base de datos, ten en cuenta que puedes comparar otros parámetros recogidos, como fechas, nombres o números de teléfono, para permitir coincidencias incompletas. Por ejemplo, en lugar de pedirle a un usuario su número de pedido, pídele también su número de teléfono. Ahora, cuando tu webhook consulte el estado de un pedido en tu base de datos, podrá basarse primero en el número de teléfono y, después, devolver el pedido que más se ajuste a esa cuenta. De esta forma, Dialogflow podría entender mal "ABC" y oír "AVC", pero aun así devolvería el estado correcto del pedido al usuario.
    • En el caso de secuencias muy largas, te recomendamos que diseñes un flujo que anime a los usuarios finales a hacer una pausa en medio para que el bot pueda confirmar la información sobre la marcha. Consulta este tutorial para obtener más información.