Détection de la langue dans Chrome avec l'IA intégrée

Publié le 24 septembre 2024

Avant de traduire du texte d'une langue à une autre, vous devez d'abord déterminer la langue utilisée dans le texte donné. Auparavant, il fallait importer le texte dans un service cloud. Grâce aux inférences sur l'appareil, vous pouvez améliorer votre confidentialité. Bien qu'il soit possible de fournir une bibliothèque spécifique qui effectue cette opération, cela nécessiterait des ressources supplémentaires à télécharger.

La proposition d'API Language Detector et Translator vise à résoudre ce problème en ajustant un modèle à cette tâche, avec une API intégrée au navigateur.

Exemples de cas d'utilisation

L'API Language Detector est principalement utile dans les scénarios suivants:

  • Déterminez la langue du texte saisi afin qu'il puisse être traduit.
  • Déterminez la langue du texte d'entrée afin que le modèle approprié puisse être chargé pour les tâches spécifiques à la langue, telles que la détection de toxicité.
  • Déterminez la langue du texte saisi afin de pouvoir l'étiqueter correctement, par exemple sur les sites de réseaux sociaux en ligne.
  • Déterminez la langue du texte saisi afin que l'interface d'une application puisse être ajustée en conséquence. Par exemple, sur un site belge, pour n'afficher que l'interface adaptée aux utilisateurs qui parlent français.

Utiliser l'API Language Detector

L'API Language Detector fait partie de la famille plus vaste de l'API Translator. Commencez par exécuter la détection de fonctionnalités pour voir si le navigateur est compatible avec l'API Language Detector.

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

Téléchargement du modèle

La détection de la langue dépend d'un modèle optimisé pour la tâche spécifique de détection des langues. Bien que l'API soit compilée dans le navigateur, le modèle est téléchargé à la demande la première fois qu'un site tente d'utiliser l'API. Dans Chrome, ce modèle est très petit par rapport aux autres modèles. En fait, il est peut-être déjà présent, car ce modèle est également utilisé par les fonctionnalités du navigateur Chrome.

Pour savoir si le modèle est prêt à être utilisé, appelez la fonction translation.canDetect() asynchrone. Trois réponses sont possibles :

  • 'no' : le navigateur actuel est compatible avec l'API Language Detector, mais il ne peut pas être utilisé pour le moment. (par exemple, si l'espace disque disponible est insuffisant pour télécharger le modèle).
  • 'readily' : le navigateur actuel est compatible avec l'API Language Detector et peut être utilisé immédiatement.
  • 'after-download' : le navigateur actuel est compatible avec l'API Language Detector, mais il doit d'abord télécharger le modèle.

Pour déclencher le téléchargement et instancier le détecteur de langue, appelez la fonction translation.createDetector() asynchrone. Si la réponse à canDetect() était 'after-download', il est recommandé d'écouter la progression du téléchargement afin d'informer l'utilisateur si le téléchargement prend du temps.

L'exemple suivant montre comment initialiser le détecteur de langue.

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;
}

Exécuter le détecteur de langue

L'API Language Detector utilise un modèle de classement pour déterminer la langue la plus probable dans un texte donné. Le classement est un type de machine learning, dont l'objectif est d'ordonner une liste d'éléments. Dans ce cas, l'API Language Detector classe les langues de la probabilité la plus élevée à la plus faible.

La fonction detect() peut renvoyer le premier résultat, la réponse la plus probable ou itérer sur les candidats classés en fonction du niveau de confiance. Il est renvoyé sous la forme d'une liste d'objets {detectedLanguage, confidence}. Le niveau confidence est exprimé sous la forme d'une valeur comprise entre 0.0 (confiance la plus faible) et 1.0 (confiance la plus élevée).

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

Démo

Découvrez l'API Language Detector dans notre démonstration. Saisissez du texte écrit dans différentes langues dans la zone de texte.

S'inscrire à l'essai

Inscrivez-vous à l'essai de l'API Language Detector pour commencer à tester cette API auprès de vos utilisateurs. Cette phase d'évaluation de l'origine s'applique aux versions Chrome 130 à 135.

En savoir plus sur le fonctionnement des essais d'origine

Effort de standardisation

L'API Language Detector a été transférée vers le groupe de la communauté de l'incubateur Web du W3C après que la proposition correspondante a reçu suffisamment d'appuis. L'API fait partie d'une proposition d'API Translation plus vaste. L'équipe Chrome a demandé des commentaires au Groupe d'architecture technique du W3C et à Mozilla et WebKit pour connaître les positions des fournisseurs de navigateurs sur les normes.

Envoyer des commentaires

Si vous avez des commentaires sur l'implémentation de Chrome, signalez un bug dans Chromium. Partagez vos commentaires sur la forme de l'API du détecteur de langue en commentant un problème existant ou en en créant un dans le dépôt GitHub de l'API Translation.

Ressources