Los asistentes de voz y la detección de nombres propios no siempre funciona

- ,
asistentes de voz

Estas últimas semanas han sido realmente intensas y durante estos días me he encontrado con una situación que había visto en el pasado y quería compartir algunos conocimientos relacionados con los asistentes de voz. La mayoría de las personas simplemente no comprenden las complejidades y limitaciones de la tecnología con asistentes de voz, por lo que pensé que compartir este caso de uso en particular y las dificultades del mismo podría ser útil para algunas personas.

Situación de mi asistente de voz

Uno de mis clientes deseaba que un asistente de voz entendiera y respondiera preguntas sobre personas, y que tuviera la capacidad de reconocer los nombres de las personas sobre las que se preguntaba. Esto requeriría un modelo de Speech-to-Text (STT) personalizado que pudiera escuchar las declaraciones del usuario y traducirlas en nombres de personas. En este escenario, mi cliente quería poder manejar una amplia variedad de nombres y apellidos diferentes. También querían poder manejar una variedad de diferentes acentos en inglés.

Desarrollo de ChatBots para empresas

Creamos chatbots en WhatsApp, Facebook Messenger, Telegram...

Contáctanos en nuestra web

Este cliente en particular ha estado escuchando a una variedad de “expertos” de la industria y profesionales comerciales sobre cómo la IA responderá a todas sus preguntas y resolverá todos sus problemas… si tan solo le dieran una oportunidad. Las personas a cargo del negocio analizan las cosas que pueden hacer los asistentes domésticos y otras aplicaciones comerciales, y sienten que este tipo de cosas deberían ser factibles, fáciles de hacer y relativamente rápidas de implementar.

Podrías estar lidiando con algo similar. Si es así, haz que tu equipo lea este artículo. Les ayudará a comprender las dificultades para hacer algunas de estas cosas y les dará expectativas más realistas.

La evaluación inicial

Esto es EXTREMADAMENTE difícil de lograr para un servicio Speech-to-Text (STT), debido a la variabilidad casi infinita en la pronunciación y la ortografía de los nombres de las personas.

La mayor parte de esto no es exclusivo de ninguna subcultura de nombres (las personas a menudo luchan con los nombres indios, árabes y asiáticos), sucede con los nombres en general. Recuerda que el contenido que leerás a continuación, está pensado para nombres en inglés, pero que se puede aplicar a cualquiera de estos idiomas.

Piensa en un nombre como «Dawn». Las pronunciaciones comunes del nombre podrían traducirse en el nombre Dawn (lo que quieras), o en el concepto de «amanecer», el nombre del producto «Dawn», el apellido masculino «Don», la dirección «abajo», la acción de » dibujado ”, el ruido“ din ”, etc. (es decir, todas las cosas que no quieres que sean). Esa confusión es toda por un nombre de una sola sílaba, femenino, anglosajón.

Ahora considera las complejidades de un nombre de varias sílabas. ¿Y qué hay del revoltijo aparentemente aleatorio de letras que parecen ser algunos nombres? Como seres humanos, a menudo abreviamos los nombres de las personas para evitar situaciones como esta, solo para no estropear constantemente los nombres de las personas. Hacemos esto con mi apodo, «Tox», para que la gente no pronuncie mal mi apellido de «Toczala» (que se pronuncia TOKS ALLA). Lo hacemos por Bob, Cindy, Mike, Candy, Joe y otros, y la base de esos nombres es bastante común.

Otro factor que puede dificultar la diferenciación de nombres es la estructura de muchos nombres, independientemente del idioma de origen. Algunos nombres son términos de una sola palabra o compuestos del idioma. Nombres como Cooper, Hammersmith, Wordsworth, Ginger, Penny y otros. También tiene problemas al tratar con algunos de los nombres «más nuevos» y las convenciones de nomenclatura que se han seguido en los últimos años. ¿Cómo esperas que tu servicio STT traduzca “M. Night Shyamalan ”? ¿Qué pasa con «North West«? ¿O «Daisy Bloom«? Peor aún, ¿qué hay de los nombres con acciones incrustadas en ellos? ¿Como «Christopher Walken«? o «Paige Turner»? ¿Cómo reconoces los nombres, los verbos y la puntuación en esto? Ni siquiera me refiero a «búfalo búfalo búfalo búfalo búfalo búfalo búfalo«. Nuestros sistemas necesitan algunas pautas a seguir, algunas reglas y patrones básicos a seguir. Cuando se trata de nombres y títulos de personas, las reglas del idioma parecen quedar suspendidas, lo que hace que sea extremadamente difícil para un asistente de voz hacerlo bien.

Yendo más abajo por la madriguera del conejo

Entonces, con todos los desafíos que mencioné anteriormente, puedes ver por qué este caso de uso es difícil de implementar. Aumentamos esa dificultad cuando pedimos hacer esto con una amplia variedad de acentos del habla. Tienes múltiples variedades de inglés americano (acento común del Medio Oeste, acento de Brooklyn, acento de Boston, etc.), así como el inglés británico más refinado que la mayoría de los hablantes de la India utilizarán. Luego están los diversos acentos en inglés con tintes latinos (algunos podrían llamarlo spanglish) que escuchas de las personas que tienen el español como primer idioma y el inglés como segundo idioma. Comencemos con la frase, «Estacione el auto, tome el boleto y pague la tarifa». Ahora imagina entender esto como lo dicen cuatro personas diferentes:

  • Uno con acento del Medio Oeste.
  • Uno con acento de Boston.
  • Uno con acento inglés indio.
  • Uno con acento sureño.

Obtendrás cuatro traducciones muy diferentes. Las primeras tres palabras pueden ser todas diferentes entre estos cuatro hablantes diferentes. Incluso un modelo de lenguaje altamente personalizado como Siri (que está altamente especializado para el habla general y una variedad de acentos), lucha constantemente con los nombres y los acentos de las personas.

El último factor de complicación (como si lo anterior no fuera lo suficientemente difícil) es la idea completa de la ortografía. Los nombres se escriben de una manera que no se parece a la forma en que se pronuncian. Los ejemplos típicos de esto incluyen nombres como «Nguyen», «McConaughey», «Weinstein», «Jesús», «Baughman» y otros. Estos nombres están escritos de una manera que no podría predecirse por la forma en que se pronuncian. Y los nombres tienen múltiples grafías por todas partes: ¿es “Andy”, “Andi” o “Andee”? ¿»Tony», «Toni» o «Tone»?

¿Por qué estamos aquí de todos modos?

Entonces, ¿por qué todas estas excusas sobre lo difícil que es el reconocimiento de nombres en general? ¿Por qué nos esforzamos tanto en personalizar nuestros asistentes de voz? ¿Cuál es la recompensa? ¿Cuál es el valor de llamar a Tox por su nombre de pila?

Teniendo en cuenta todos estos desafíos, construir y mantener un modelo de lenguaje altamente eficiente y preciso para algo como esto sería costoso (en términos de tiempo y dinero). Y todavía sufriría inexactitudes y fallas en cosas como homófonos (nuevo, conocido, gnu), colisiones de nombres (smith, smythe) y todos los otros casos que he descrito anteriormente. En el panorama general, ¿vale la pena todo el trabajo y la complejidad? ¿No sería todo ese esfuerzo más productivo si estuviera dirigido a otra cosa que tuviera un impacto más definido en el rendimiento de tu asistente de voz y en la satisfacción general de tus usuarios finales? ¿Quizás gastar ese esfuerzo en configurar algunas pruebas automatizadas?

Te sugiero que leas el artículo Why The Overall Voicebot Solution And User Experience Are More Important Than Speech Accuracy de Marco Noel. Es una excelente descripción general de cómo un asistente de voz es más que un servicio de Speech-to-Text, y cómo debe ver tu experiencia de usuario final de manera integral, desde la perspectiva de tu usuario final.

Algunos enfoques que ayudan

Un enfoque que valdría la pena explorar es hacer que las personas intenten deletrear los nombres de las personas que les interesan y luego dejar que los usuarios «filtren y seleccionen» a la persona que desean. A menudo, los asistentes humanos requerirán que deletree un nombre para ellos; estamos acostumbrados a hacerlo.

Debes tener MUCHO cuidado con la cantidad de información (y el tipo de información) que proporcionas; divulgar información personal sin ningún control puede ser arriesgado (y contraviene el RGPD y restricciones regulatorias similares).

Los clientes con sistemas que devolverán información personal a los usuarios, a menudo requerirán algún tipo de validación de cuenta o inicio de sesión, momento en el que ya SABES el nombre de la persona (y cómo se escribe). También tienden a no depender de los nombres, sino que utilizan números de identificación o alguna otra información clave única para identificar a los usuarios. Los nombres no son únicos, ni tampoco las direcciones.

Otro enfoque sería intentar traducir los nombres e inmediatamente fallar al deletrearlos. A medida que pasa el tiempo, tu modelo STT puede mejorar y tu bot solicitará la ortografía con menos frecuencia. Pero esto requeriría el compromiso de trabajar constantemente para mejorar y administrar tus modelos personalizados STT específicos para nombres. Deberías agregar continuamente datos de personalización en forma de un nombre y la pronunciación fonética del nombre. Parece mucho trabajo y costo para algo con un valor limitado.

Entonces, la verdadera conclusión aquí es la siguiente: no intentes obtener los nombres de las personas de los motores de voz a texto. Es demasiado difícil y requiere demasiado esfuerzo para soportarlo. No hay nada de malo en personalizar la experiencia de tus usuarios finales, pero obtén esa información de nombre de otro modo, así será más sencillo y el resultado será óptimo.

Entradas del mismo autor

Deja un comentario