Adaptación de voz

Cuando realizas una solicitud de detección de intent, tienes la opción de suministrar phrase_hints para proporcionar 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 se inhabilita 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:

Console

  1. Abre la consola de Dialogflow CX.
  2. Elige tu proyecto de GCP.
  3. Selecciona el agente.
  4. Haz clic en Configuración del agente.
  5. Haz clic en la pestaña IVR y voz.
  6. Activa o desactiva la opción Habilitar la adaptación de voz automática.
  7. Haz clic en Guardar.

API

Consulta los métodos get y patch/update para el tipo Agent.

Selecciona un protocolo y una versión para la Referencia del agente:

Protocolo V3 V3beta1
REST Recurso de agente Recurso de agente
RPC Interfaz del agente Interfaz del agente
C++ AgentsClient No disponible
C# AgentsClient No disponible
Go AgentsClient No disponible
Java AgentsClient AgentsClient
Node.js AgentsClient AgentsClient
PHP No disponible No disponible
Python AgentsClient AgentsClient
Ruby No disponible No disponible

Diseño del agente 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 y las entidades del agente.

Frases de entrenamiento

  • 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 tienes un parámetro obligatorio que obliga a Dialogflow a completar formularios instrucciones, adaptación de voz automática se personalizará fuertemente la entidad que se está completando.

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 @sys.number entidad del sistema , y el usuario final dice: “Quiero dos”, puede 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 un entidad personalizada para los nombres de productos o servicios ofrecidos por su empresa, y el usuario final menciona estos términos en una declaración, es más probable que 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

Entidades de expresión regular puede activar la función de voz automática adaptación para secuencias alfanuméricas y de dígitos como “ABC123” o "12345" cuándo configurar y probar correctamente.

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

1. Requisito de entrada de la expresión regular

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

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

  • Debe coincidir con algunos caracteres alfanuméricos, como \d, \w, [a-zA-Z0-9].
  • No debe contener espacios en blanco   ni \s, aunque se permiten \s* y \s?
  • No debe contener grupos de captura o no de captura ()
  • No debes intentar hacer coincidir 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ámetro

Marca la entidad de expresión regular como parámetro del formulario requerido para que pueda recopilarse durante el proceso para completar formularios. 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. Requisitos de anotación de frases de entrenamiento

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

4. Requisito de prueba

Consulta Cómo 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 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 podrás beneficiarte del reconocedor de secuencia cuando coincida con “ABC123”, pero la NLU seguirá comparando 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 para la expresión regular

La compatibilidad integrada de la adaptación de voz automática para las entidades de expresión regular varía según el idioma. Marca Tokens de clase de voz. para $OOV_CLASS_ALPHANUMERIC_SEQUENCE y $OOV_CLASS_DIGIT_SEQUENCE idiomas admitidos.

Si tu idioma no aparece en la lista, puedes solucionar esta limitación. Por ejemplo, si quieres un ID de empleado que sea tres letras seguidas de tres dígitos para reconocerse con precisión, podrías compila 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.

Adaptación de voz manual

La adaptación de voz manual te permite configurar manualmente las frases de adaptación de voz. para un flujo o una página. También anula los contextos de voz implícitos generados por la adaptación de voz automática cuando esta última está habilitada.

Los parámetros de configuración de la adaptación de voz a nivel de flujo y de página tienen una estrategia relación, lo que significa que una página hereda la configuración de adaptación de voz de el nivel de flujo de forma predeterminada y el nivel de página más detallado siempre, anula el nivel de flujo si la página tiene una configuración personalizada.

Para la configuración de la adaptación de voz, la configuración del nivel de flujo y la del nivel de página pueden habilitarse de manera independiente. Si no está habilitado el parámetro de configuración de adaptación a nivel del flujo, puedes elegir Personalizar a nivel de la página para habilitar la adaptación de voz manual para esa página específica. Del mismo modo, si inhabilitas la adaptación de voz manual en la configuración a nivel del flujo, las páginas del flujo con Personalizar seleccionadas no se verán afectadas.

Sin embargo, la configuración del nivel de flujo y la de nivel de página no se pueden inhabilitar de forma independiente. Si un flujo tiene habilitada la adaptación de voz manual, no puedes inhabilitarla para una página del flujo a través de la opción Personalizar. Por lo tanto, si quieres tienen un uso mixto de la adaptación de voz manual y la adaptación de voz automática para las páginas en un flujo, no debes habilitar la adaptación de voz manual a nivel del flujo y solo debe usar la configuración de adaptación a nivel de página. Puedes consultar la tabla a continuación para comprender qué combinación de flujo y configuración de página debes usar. para tu caso de adaptación.

Efecto objetivo Uso recomendado de la configuración de adaptación
Inhabilita la adaptación automática para un flujo Flujo habilitado sin conjuntos de frases (las páginas dentro del flujo usan la configuración de flujo de forma predeterminada).
Cómo inhabilitar la adaptación automática de una página Flujo inhabilitado y página habilitada (se eligió Personalizar) sin conjuntos de frases
Usa solo la adaptación de voz manual para todas las páginas de un flujo Flujo habilitado. Personaliza las páginas que necesitan usar conjuntos de frases diferentes del flujo.
Combinar el uso de la adaptación automática y manual en un flujo Se inhabilitó el flujo. Personaliza las páginas en las que deseas aplicar la adaptación manual.
Usar la adaptación de voz automática solo para todas las páginas de un flujo Se inhabilitó el flujo.

Habilita o inhabilita la adaptación de voz manual

Para habilitar o inhabilitar la adaptación de voz manual a nivel del flujo o de la página, haz lo siguiente:

Configuración de flujo

  1. Abre la consola de Dialogflow CX.
  2. Elige tu proyecto de GCP.
  3. Desplaza el mouse sobre el flujo en la sección Flujos.
  4. Haz clic en el botón de opciones .
  5. Selecciona Flow Settings en el menú desplegable.
  6. Marca la casilla de verificación Habilitar la adaptación de voz manual o anula la selección.
  7. Cómo editar, agregar o borrar conjuntos de frases en la tabla de conjuntos de frases
  8. Haz clic en Guardar.

Configuración de la página

  1. Abre la consola de Dialogflow CX.
  2. Elige tu proyecto de GCP.
  3. Coloca el cursor sobre la página de la sección Páginas.
  4. Haz clic en el botón de opciones .
  5. Selecciona Configuración de la página en el menú desplegable.
  6. La opción Usar nivel de flujo se elige de forma predeterminada y, cuando se elige, se vuelven a usar las frases de adaptación a nivel del flujo para esta página. Puedes elegir Personalizar para configurar frases de adaptación diferentes de la configuración a nivel del flujo. Incluso si la adaptación de voz manual está inhabilitada en aún puedes habilitar y configurar la adaptación de voz manual para una página en ese flujo a través de la opción Customize.
  7. Editar, agregar o borrar un conjunto de frases en la tabla de conjuntos de frases de adaptación
  8. Haz clic en Guardar.

Configuración manual de conjuntos de frases para mejorar el reconocimiento de voz

1. Palabras y frases

En un conjunto de frases de adaptación, puedes definir frases de una o varias palabras con referencias opcionales a los tokens de clase de voz. Por ejemplo, puedes agregar frases como “gran tarifa”, “el número de seguimiento es $OOV_CLASS_ALPHANUMERIC_SEQUENCE” o “$FULLPHONENUM”. Estas frases proporcionadas aumentan la probabilidad de que se transcriban en otras frases fonéticamente similares. Cuando agregas una frase de varias palabras sin ninguna estímulo, el sesgo se aplica tanto a la frase completa como las porciones continuas dentro de la frase. En general, la cantidad de frases debe ser pequeña y solo debes agregar frases que el reconocimiento de voz tenga dificultades para interpretar correctamente sin la adaptación de voz. Si Speech-to-Text ya puede reconocer una frase correctamente, no es necesario agregarla a configuración de adaptación de voz. Si ves algunas frases que la función de texto a voz suele reconocer de forma incorrecta en una página o un flujo, puedes agregar las frases correctas a la configuración de adaptación correspondiente.

Ejemplo de corrección de errores de reconocimiento

Este es un ejemplo de cómo puedes usar la adaptación de voz para corregir el reconocimiento problemas. Supongamos que diseñas un agente comercial de dispositivos telefónicos el usuario puede decir algo, incluidas las frases "vender teléfonos" o "teléfono celular" después de que el agente haga su primera pregunta: “¿En qué necesitas ayuda?”. Entonces, ¿cómo podemos usar la adaptación de voz para mejorar la precisión del reconocimiento en ambas frases?

Si incluyes ambas frases en la configuración de adaptación, es posible que la función Texto a voz siga generando confusión, ya que suenan similares. Si solo proporcionas una de las dos frases, es posible que Speech-to-Text reconozca una como la otra. Para mejorar la precisión del reconocimiento de voz para ambas frases, debes proporcionarle a Speech-to-Text más pistas contextuales distinguir cuándo debe oír "vender teléfonos"; y cuando debería oír "teléfono celular". Por ejemplo: es posible que notes que las personas suelen usar "vender teléfonos" como parte de expresiones como "cómo vender teléfonos", "quiero vender teléfonos" o «¿vendes teléfonos?», mientras que "teléfono celular" como parte de expresiones como "compra teléfono celular", "factura de teléfono celular", y "servicio de telefonía celular". Si proporcionas estas frases más precisas al modelo, en lugar de las frases originales cortas "teléfono celular" y “vender teléfonos”, Speech-to-Text aprenderás que "vender teléfono" es más probable que siga a una frase verbal como "cómo", "quiero" y en "hazlo tú", mientras que en "teléfono celular" como sustantivo es más probable que la frase siga después de palabras como "compra", o ser seguidos por palabras como "bill" o "servicio". Por lo tanto, como regla general para configurar las frases de adaptación, suele ser mejor proporcionar frases más precisas, como "cómo vender teléfonos" o "¿vendes teléfonos?", en lugar de solo incluir "vender teléfono".

2. Tokens de clase de voz

Además de las palabras en lenguaje natural, también puedes incorporar referencias a tokens de clase de voz en una frase. Tokens de clase de voz representan conceptos comunes que suelen seguir determinadas formato por escrito. Por ejemplo, para el número de dirección en una dirección como “Calle Principal 123”, las personas suelen esperar ver formato numérico “123” en una dirección en lugar de en su versión escrita "centésima veintitrés". Si esperas que cierto formato en los resultados de la transcripción, en especial para los de variables, consulta la lista de tokens de clase admitidos a fin de ver qué tokens están disponibles para tu idioma y caso de uso.

Si la página ya tiene rutas de intent o parámetros con referencias a entidades del sistema, esta es una tabla de referencia para las asignaciones entre entidades del sistema comunes y tokens de clase de voz:

Entidades del sistema Tokens de clase de voz
@sys.date $MONTH $DAY $YEAR
@sys.date-time $MONTH $DAY $YEAR
@sys.date-period $MONTH $DAY $YEAR
@sys.time $TIME
@sys.time-period $TIME
@sys.age $OPERAND
@sys.number $OPERAND
@sys.number-integer $OPERAND
@sys.cardinal $OPERAND
@sys.ordinal $OPERAND
@sys.percentage $OPERAND
@sys.duration $OPERAND
@sys.currency-name $MONEY
@sys.unit-currency $MONEY
@sys.phone-number $FULLPHONENUM
@sys.zip-code $POSTALCODE o $OOV_CLASS_POSTALCODE
@sys.address $ADDRESSNUM $STREET $POSTALCODE
@sys.street-address $ADDRESSNUM $STREET $POSTALCODE
@sys.temperature $OOV_CLASS_TEMPERATURE
@sys.number-sequence $OOV_CLASS_DIGIT_SEQUENCE
@sys.flight-number $OOV_CLASS_ALPHANUMERIC_SEQUENCE

3. Valor de mejora

Si agregar frases sin el valor de mejora no proporciona un efecto de personalización lo suficientemente fuerte, puedes usar el valor de boosting para fortalecer aún más el efecto de personalización de la adaptación de voz.

El estímulo aplica un sesgo adicional cuando se establece en valores mayores que 0 y no más de Cuando la mejora está vacía o es 0, el efecto de personalización predeterminado ayuda a reconocer el toda la frase y las porciones continuas dentro de ella. Por ejemplo, una frase no potenciada "¿estás disponible para vender teléfonos" ayuda a reconocer esa frase y también frases similares, como "vendo teléfonos" y "Hola ¿estás disponible".

Cuando se aplica un impulso positivo, el efecto de personalización es más fuerte, pero solo se aplica a la frase exacta. Por ejemplo, una frase mejorada: "vender teléfonos" ayuda a reconocer "¿puedes vender teléfonos?". pero no "¿Vendes teléfonos?".

Por estos motivos, obtendrá mejores resultados si proporciona frases con y sin boost.

Los valores de impulso más altos pueden dar como resultado menos falsos negativos, que son casos en los que la palabra o frase se produjo en el audio, pero Speech-to-Text no lo reconoció correctamente (bajo sesgo). Sin embargo, la mejora también puede aumentar la probabilidad de falsos positivos; es decir, casos en los que la palabra o la frase aparecen en la transcripción aunque esto no haya ocurrido en el audio (sobreajuste). Por lo general, debes ajustar tus frases de sesgo para encontrar un buen punto de equilibrio entre los dos problemas de sesgo.

Puede obtener más información sobre cómo ajustar el valor de boosting para las frases en Documento de Cloud Speech sobre la mejora.

Cuándo usar la adaptación de voz automática o manual

En general, si no estás seguro de si la adaptación de voz mejorará la calidad del reconocimiento de voz de tu agente (no tienes patrones claros de errores de transcripción en mente), te recomendamos que primero pruebes la adaptación de voz automática antes de recurrir a la adaptación de voz manual. Para tomar decisiones con más matices, considera los siguientes factores para decidir entre la adaptación de voz automática o la adaptación de voz manual:

1. Relleno de formularios

La adaptación de voz automática funciona muy bien con completar formularios ya que usa el contexto gramatical ABNF para los parámetros del formulario y aplica las reglas gramaticales según sus tipos de entidades. Dado que la adaptación de voz manual aún no admite gramáticas ABNF, Por lo general, se prefiere la adaptación de voz automática en lugar de la adaptación de voz manual para completar un formulario. Todavía para páginas con solo de entidad de sistema y las entidades de expresión regular simples que admiten tokens de clase de voz, también puedes usar la adaptación de voz manual para lograr un efecto de personalización similar al la adaptación de voz automática sin la necesidad de ajustar las entidades regexp.

2. Complejidad de transición de página o flujo

Para una página o un flujo simple con algunas rutas de intents, la adaptación de voz automática probablemente generará frases de personalización representativas y funcionan bastante bien.

Sin embargo, si una página o flujo tiene una gran cantidad de rutas de intents (para una página, considera también la cantidad de rutas a nivel de flujo) si alguno de los intents tiene frases de entrenamiento demasiado largas o cortas (por ejemplo, una oración completa o una sola palabra con solo una o dos sílabas) es muy probable que el modelo de adaptación de voz no funcione bien. Primero debes intentar inhabilitar la adaptación de voz para las páginas abiertas. con alta complejidad, ya que permite la adaptación de voz manual con conjuntos de frases vacíos (anulación de adaptación vacía) Después de eso, evaluar si existen frases especiales no ambiguas que aún se deben proporcionar a Speech-to-Text para mejorar la calidad de reconocimiento.

Otro síntoma de este problema de complejidad es ver problemas de sesgo o subsesgos cuando está habilitada la adaptación de voz automática. Al igual que en el caso anterior, también debes probar la adaptación de voz. inhabilitado primero para esa página específica. Si los comportamientos erróneos persisten después de inhabilitar la adaptación de voz, puedes agregar las frases que deseas corregir a la configuración de adaptación de voz y hasta agregar valores de mejora para fortalecer aún más los efectos de sesgo cuando sea necesario.

Prueba la adaptación de voz

Cuando pruebes las capacidades de adaptación de voz de tu agente para una frase de entrenamiento o una coincidencia de entidad particular no deberías pasar directamente a la prueba de 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 quieres probar. El comportamiento de tu agente cuando se prueba de esta manera será similar al comportamiento en 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 todas las combinaciones de idiomas. Consulta la página de idiomas admitidos de Cloud Speech para verificar si la "adaptación del modelo" está disponible para tu modelo de voz y combinación de idiomas.
  • Actualmente, la adaptación de voz manual no es compatible. clases personalizadas o gramática ABNF. Puedes habilitar la adaptación de voz automática o usar el entorno de ejecución solicitud de detección de intent para usar estas funciones de adaptación.

  • El mismo valor de impulso puede tener un rendimiento diferente para distintos modelos de voz y lenguajes, así que ten cuidado cuando los configures manualmente para que los agentes usen varios idiomas o modelos de voz. Actualmente, la adaptación de voz manual se aplica a todos los idiomas de un agente, por lo que los agentes multilingües solo deben usar frases independientes del idioma o dividir cada idioma en un agente independiente. Dado que el comportamiento de personalización predeterminado (no proporciona boosting ni 0 boosting) suele funcionar bastante bien para todos los lenguajes y modelos, no necesitas es necesario configurar valores de impulso específicos del lenguaje, a menos que la personalización más fuerte necesarios para tu caso de uso de reconocimiento. Puedes obtener más información sobre cómo ajustar el valor de impulso en Guía de Cloud Speech-to-Text.

  • Es un desafío reconocer secuencias de personajes largos. El número de capturados en un solo turno, están directamente relacionados. a la calidad del audio de entrada. Si seguiste todos los lineamientos de las entidades de expresión regular, intentaste usar tokens de clase de voz relevantes en la configuración de adaptación de voz manual y aún tienes problemas para capturar toda la secuencia en una sola vez, 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 más largas, considera diseñar un flujo que aliente a los usuarios finales a pausarse en el medio para que el bot pueda confirmarse a medida que avanzas.