Enseñar al Asistente de Google a ser multilingüe
martes, 25 de septiembre de 2018
Los hogares multilingües se vuelven cada vez más comunes, con varias fuentes [1][2][3] que indican que los hablantes multilingües ya superan el número de versiones monolingües y que este número seguirá creciendo. Con esta gran población creciente de usuarios multilingües, es más importante que nunca que Google desarrolle productos que puedan admitir varios idiomas de manera simultánea para brindar a nuestros usuarios un mejor servicio.
lanzaremos la compatibilidad multilingüe con el Asistente de Google, que permite a los usuarios cambiar entre dos idiomas diferentes en las consultas, sin necesidad de regresar a sus configuraciones de idioma. Una vez que los usuarios seleccionan dos de los idiomas admitidos (inglés, español, francés, alemán, italiano y japonés), a partir de ese momento pueden hablar con el Asistente en cualquiera de ellos y este responderá del mismo modo. Anteriormente, los usuarios debían elegir una configuración de un único idioma para el Asistente, y cambiarla cada vez que querían usar otro idioma, pero ahora es una experiencia simple y de manos libres para entornos familiares multilingües.
Sin embargo, lograr que esto funcione no fue simple. De hecho, fue un esfuerzo de varios años que implicó resolver muchos problemas desafiantes. Al final, dividimos el problema en tres partes discretas: identificar varios idiomas, comprender varios idiomas y Optimizar el reconocimiento multilingüe para los usuarios del Asistente de Google.
Identificación de varios idiomas
Las personas pueden reconocer otro idioma cuando alguien habla, incluso si ellas mismas no lo hablan, con solo prestar atención a la acústica de la voz (entonación, registro fonético, etc.). Sin embargo, definir un marco de trabajo computacional para el reconocimiento automático de idiomas hablados es un desafío, incluso con la ayuda de sistemas de reconocimiento de voz completamente automáticos.1. En 2013, Google comenzó a trabajar con la tecnología de identificación de idiomas hablados (LangID) con redes neuronales profundas [4][5]. Hoy, nuestros modelos innovadores de LangID pueden distinguir pares de idiomas entre más de 2000 pares de idiomas alternativos a través de redes neuronales recurrentes, una familia de redes neuronales que son particularmente exitosas para problemas de modelación de secuencias, como los del reconocimiento de voz, la detección de voz y el reconocimiento de hablantes, entre otros. Uno de los desafíos que enfrentamos fue trabajar con conjuntos de audio más grandes; obtener modelos que puedan comprender automáticamente varios idiomas a escala y alcanzar un estándar de calidad que permitiera que los modelos funcionen de manera adecuada.
Comprender varios idiomas
Para comprender más de un idioma a la vez, se deben ejecutar varios procesos en paralelo, cada uno con resultados incrementales, lo cual permite que el Asistente no solo identifique el idioma en el que se dice la consulta sino también analice la consulta para crear un comando de acción. Por ejemplo, incluso en un entorno monolingüe, si un usuario pide “fijar una alarma a las 6 p. m.”, el Asistente de Google debe comprender que “fijar una alarma” implica abrir la app de reloj, cumplir con el parámetro explícito de “6 p. m.” y adicionalmente inferir que la alarma se debe fijar para hoy. Hacer que esto funcione para cualquier par de idiomas admitidos es un desafío, ya que el Asistente ejecuta el mismo trabajo que hace para el caso monolingüe, pero ahora adicionalmente debe permitir a LangID y no solo uno sino dos sistemas de reconocimiento de voz de forma simultánea (luego explicaremos más sobre la limitación actual de dos idiomas en esta publicación).
Un aspecto importante es que el Asistente de Google y otros servicios a los que se hace referencia en la consulta del usuario de modo asíncrono generen resultados incrementales en tiempo real, los cuales deben evaluarse en milisegundos. Esto se lleva a cabo con la ayuda de un algoritmo adicional que clasifica las hipótesis de transcripción proporcionadas por cada uno de los dos sistemas de reconocimiento de voz recurriendo a las probabilidades de los idiomas potenciales producidos por LangID, a nuestra confianza en la transcripción y a las preferencias del usuario (por ejemplo, artistas favoritos).
Optimización del reconocimiento multilingüe
Para minimizar estos efectos no deseados, cuanto más rápido pueda el sistema determinar el idioma hablado mejor será el resultado. Si el sistema determina con certeza el idioma hablado antes de que el usuario finalice una consulta, dejará de procesar la voz del usuario con el reconocedor improductivo y descartará la hipótesis infructuosa, lo cual reducirá la carga de procesamiento y cualquier latencia potencial. Con esto en mente, vimos varios formar de optimizar el sistema.
Tuvimos en cuenta un caso de uso en el que la gente normalmente emplea el mismo idioma en sus consultas (que es también el idioma que los usuarios quieren oír usar al Asistente), a excepción de las preguntas sobre entidades con nombres en diferentes idiomas. Esto significa que, en la mayoría de los casos, concentrarse en la primera parte de la consulta permite que el Asistente realice una conjetura preliminar del idioma hablado, incluso en oraciones con entidades en un idioma diferente. Con esta identificación preliminar, la tarea se simplifica realizando un cambio a un reconocedor único de voz monolingüe, como lo hacemos con las consultas monolingües. Para tomar una decisión rápida sobre cómo y dónde optar un único idioma, sin embargo, se requiere un último toque tecnológico: específicamente, usamos una técnica de bosque aleatorio que combina varias señales contextuales, como el tipo de dispositivo usado, el número de hipótesis de voz encontradas, la frecuencia con la que recibimos hipótesis similares, la incertidumbre de los reconocedores de voz individuales y la frecuencia con la que se usa cada idioma.
Una alternativa adicional con la que simplificamos y mejoramos la calidad del sistema consistió en limitar la lista de idiomas potenciales que los usuarios pueden seleccionar. Los usuarios pueden elegir dos idiomas entre los seis que nuestros dispositivos Home admiten actualmente, lo que nos permitirá contemplar a la mayoría de nuestros hablantes multilingües. Sin embargo, mientras seguimos mejorando nuestra tecnología esperamos poder arribar a una compatibilidad trilingüe con la certeza de que esto mejorará la experiencia de nuestra creciente base de usuarios.
Bilingüe a trilingüe
Desde el comienzo, nuestro objetivo fue lograr que el Asistente fuera naturalmente conversacional para todos los usuarios. La compatibilidad multilingüe ha sido una característica muy requerida y nuestro equipo observó esto hace unos años. Pero hoy no solo hay muchísimos hablantes bilingües en el mundo; también queremos hacer más sencilla la vida para los usuarios trilingües o las familias que vivan en hogares en los cuales se hablen más de dos idiomas.
Con la actualización de hoy, estamos en el camino correcto y esto fue posible gracias a nuestro aprendizaje automático avanzado, a nuestras tecnologías de reconocimiento de idioma y de voz y al compromiso de nuestro equipo para redefinir nuestro modelo LangID. Ahora estamos trabajando para enseñar al Asistente de Google a procesar más de dos idiomas de manera simultánea y para agregar más idiomas admitidos en el futuro. ¡No te lo pierdas!
1 Por lo general, se sabe que el reconocimiento de idiomas hablados supone un desafío mucho mayor que la identificación de idiomas en base a textos, en la cual técnicas relativamente simples basadas en diccionarios pueden hacer un buen trabajo. Los patrones de tiempo y frecuencia de las palabras orales son difíciles de comparar; estas pueden ser más difíciles de delimitar, ya que pueden articularse sin pausa y en diferentes ritmos, y los micrófonos pueden registrar ruidos de fondo además de la voz.