Detección de idioma en Chrome con IA integrada

Fecha de publicación: 24 de septiembre de 2024

Antes de traducir texto de un idioma a otro, primero debes determinar cuál es el idioma que se usa en el texto determinado. Anteriormente, la traducción requería subir el texto a un servicio en la nube, realizar la traducción en el servidor y, luego, descargar los resultados.

La API de Language Detector usa inferencias integradas en el dispositivo para que puedas mejorar tu historia de privacidad. Si bien es posible enviar una biblioteca específica que haga esto, se requerirían recursos adicionales para descargarla.

Disponibilidad

Regístrate para la prueba de origen

Para comenzar a usar la API de Language Detector, sigue estos pasos:

  1. Acepta la Política de Usos Prohibidos de IA Generativas de Google.
  2. Ve a la prueba de origen de la API de Language Detector.
  3. Haz clic en Registrarse y completa el formulario.
    • En el campo Origen web, proporciona tu origen o el ID de extensión, chrome-extension://YOUR_EXTENSION_ID.
  4. Para enviarla, haz clic en Registrarse.
  5. Copia el token proporcionado y agrégalo a cada página web de tu origen o archivo de tu extensión en la que deseas que se habilite la prueba.
  6. Comienza a usar la API de Language Detection.

Obtén más información para comenzar a usar las pruebas de origen.

Agrega compatibilidad con localhost

Para acceder a la API de Language Detection en localhost durante la prueba de origen, debes actualizar Chrome a la versión más reciente. Luego, sigue estos pasos:

  1. Abre Chrome en una de estas plataformas: Windows, Mac o Linux.
  2. Ve a chrome://flags/#language-detection-api.
  3. Selecciona Habilitado.
  4. Haz clic en Reiniciar o reinicia Chrome.

Ejemplos de casos de uso

La API de Language Detector es útil principalmente en las siguientes situaciones:

  • Determina el idioma del texto de entrada para que se pueda traducir.
  • Determina el idioma del texto de entrada para que se pueda cargar el modelo correcto para tareas específicas del idioma, como la detección de toxicidad.
  • Determina el idioma del texto de entrada para que se pueda etiquetar correctamente, por ejemplo, en sitios de redes sociales en línea.
  • Determina el idioma del texto de entrada para que la interfaz de una app se pueda ajustar según corresponda. Por ejemplo, en un sitio belga, solo mostrar la interfaz relevante para los usuarios que hablan francés.

Usa la API de Language Detector

La API de Language Detector forma parte de la familia más amplia de la API de Translator. Primero, ejecuta la detección de funciones para ver si el navegador admite la API de LanguageDetector.

if ('translation' in self && 'canDetect' in self.translation) {
  // The Language Detector API is available.
}  

Descarga del modelo

La detección de idiomas depende de un modelo que está ajustado para la tarea específica de detectar idiomas. Mientras la API se compila en el navegador, el modelo se descarga a pedido la primera vez que un sitio intenta usar la API. En Chrome, este modelo es muy pequeño en comparación con otros. De hecho, es posible que ya esté presente, ya que las funciones del navegador Chrome también usan este modelo.

Para ver si el modelo está listo para usarse, llama a la función translation.canDetect() asíncrona. Existen tres respuestas posibles:

  • 'no': El navegador actual admite la API de Language Detector, pero no se puede usar en este momento. Por ejemplo, porque no hay suficiente espacio libre en el disco disponible para descargar el modelo.
  • 'readily': El navegador actual admite la API de Language Detector y se puede usar de inmediato.
  • 'after-download': El navegador actual admite la API de Language Detector, pero primero debe descargar el modelo.

Para activar la descarga y crear una instancia del detector de idioma, llama a la función translation.createDetector() asíncrona. Si la respuesta a canDetect() fue 'after-download', se recomienda escuchar el progreso de la descarga para poder informar al usuario en caso de que esta tarde tiempo.

En el siguiente ejemplo, se muestra cómo inicializar el detector de idioma.

const canDetect = await translation.canDetect();
let detector;
if (canDetect === 'no') {
  // The language detector isn't usable.
  return;
}
if (canDetect === 'readily') {
  // The language detector can immediately be used.
  detector = await translation.createDetector();
} else {
  // The language detector can be used after model download.
  detector = await translation.createDetector();
  detector.addEventListener('downloadprogress', (e) => {
 console.log(e.loaded, e.total);
  });
  await detector.ready;
}

Ejecuta el detector de idioma

La API de Language Detector usa un modelo de clasificación para determinar cuál es el idioma más probable que se usa en un fragmento de texto determinado. El clasificación es un tipo de aprendizaje automático, en el que el objetivo es ordenar una lista de elementos. En este caso, la API de Language Detector clasifica los idiomas de la probabilidad más alta a la más baja.

La función detect() puede mostrar el primer resultado, la respuesta más probable o iterar sobre los candidatos clasificados con el nivel de confianza. Se muestra como una lista de objetos {detectedLanguage, confidence}. El nivel de confidence se expresa como un valor entre 0.0 (confianza más baja) y 1.0 (confianza más alta).

const someUserText \= 'Hallo und herzlich willkommen\!';
const results \= await detector.detect(someUserText);
for (const result of results) {
  // Show the full list of potential languages with their likelihood, ranked
  // from most likely to least likely. In practice, one would pick the top
  // language(s) that cross a high enough threshold.
  console.log(result.detectedLanguage, result.confidence);
}
// (Output truncated):
// de 0.9993835687637329
// en 0.00038279531872831285
// nl 0.00010798392031574622
// ...

Demostración

Obtén una vista previa de la API de Language Detector en nuestra demo. Ingresa texto escrito en diferentes idiomas en el área de texto.

Esfuerzo de estandarización

La API de Language Detector se trasladó al grupo comunitario de Web Incubator del W3C después de que la propuesta correspondiente recibió suficiente apoyo. La API forma parte de una propuesta más amplia de la API de Translation.

El equipo de Chrome solicitó comentarios al grupo de arquitectura técnica del W3C y a Mozilla y WebKit para conocer sus posiciones sobre los estándares.

Comparte tus comentarios

Si tienes comentarios sobre la implementación de Chrome, informa un error de Chromium. Comparte tus comentarios sobre la forma de la API de Language Detector. Para ello, comenta un problema existente o abre uno nuevo en el repositorio de GitHub de la API de Translation.