Partager via


Traduire du texte avec l’API Translator

L’API Translator est une API web expérimentale qui vous permet de traduire du texte entre différentes langues à l’aide d’un modèle expert intégré à Microsoft Edge, à partir du code JavaScript dans votre site web ou extension de navigateur.

Pour plus d’informations sur l’API Translator, consultez :

Contenu détaillé :

Disponibilité de l’API Translator

L’API Translator est disponible en préversion pour les développeurs dans les canaux Microsoft Edge Canary ou Dev, à compter de la version 143.0.3636.0. Pour télécharger un canal en préversion de Microsoft Edge (bêta, dev ou canary), accédez à Devenir un Microsoft Edge Insider.

Avantages de l’API Translator

L’API Translator utilise un modèle expert pour la traduction automatique qui s’exécute sur le même appareil que celui où les entrées et sorties du modèle sont utilisées (c’est-à-dire, localement). Cette approche présente les avantages suivants par rapport aux solutions basées sur le cloud :

  • Coût réduit : L’utilisation d’un service de traduction cloud n’a aucun coût.

  • Indépendance du réseau : Au-delà du téléchargement initial du modèle, il n’y a aucune latence réseau lors de l’utilisation de cette API pour traduire du texte, et l’API peut également être utilisée lorsque l’appareil est hors connexion.

  • Confidentialité améliorée : Les données entrées dans le modèle ne quittent jamais l’appareil et ne sont pas collectées pour entraîner les modèles IA.

Les modèles de traduction pour les paires de langues spécifiées sont téléchargés la première fois que l’API est utilisée dans Microsoft Edge et sont ensuite partagés entre tous les sites web du navigateur. Les modèles sont accessibles via une API web simple qui ne nécessite pas de connaissance des infrastructures tierces et qui ne nécessite pas d’intelligence artificielle (IA) ou de machine learning (ML).

Alternatives à l’API Translator

Vous pouvez envoyer des demandes réseau à des services de traduction basés sur le cloud avec des fonctionnalités plus sophistiquées, notamment la traduction neuronale ; Consultez la documentation Azure AI Translator.

En guise d’alternative sur l’appareil, l’API Prompt propose des scénarios d’invite multilingues plus personnalisés, avec un petit modèle de langage intégré à Microsoft Edge . Consultez Demander un modèle de langage intégré avec l’API Prompt.

Clause d’exclusion de responsabilité

Comme d’autres modèles de traduction automatique, les modèles experts de Microsft Edge peuvent potentiellement produire des traductions injustes, peu fiables ou offensantes. Pour en savoir plus sur les limitations de ces modèles de traduction automatique, consultez Limitations dans Azure AI Translator Transparency Note.

Disponibilité du modèle

Un téléchargement initial du modèle sera nécessaire la première fois qu’un site web appelle une API IA intégrée. Vous pouvez surveiller le téléchargement du modèle à l’aide de l’option monitor lors de la création d’une session d’API Translator . Consultez Surveiller la progression du téléchargement du modèle (monitor :) ci-dessous.

Activer l’API Translator

Pour utiliser l’API Translator dans Microsoft Edge, définissez deux indicateurs, comme suit :

  1. Dans Microsoft Edge, accédez à edge://versionet vérifiez que vous utilisez la version 143.0.3636.0 ou ultérieure de Microsoft Edge, par exemple le canal canary ou dev en préversion de Microsoft Edge.

    Pour télécharger un canal en préversion de Microsoft Edge (bêta, dev ou canary), accédez à Devenir un Microsoft Edge Insider.

  2. Dans cette version de Microsoft Edge, ouvrez un nouvel onglet ou une nouvelle fenêtre et accédez à edge://flags.

  3. Dans la zone de texte Indicateurs de recherche en haut, commencez à taper api de traduction :

    Page Indicateurs du navigateur

    Les indicateurs suivants sont répertoriés :

    • API de traduction expérimentale : active l’API de traduction de langue sur l’appareil. Consultez Explicatif pour les API Translator et Language Detector.

      Cette entrée affiche #edge-translation-api, qui va à edge://flags/#edge-translation-api.

    • Api de traduction en continu fractionnée par phrase : lorsqu’elle est activée, l’API de traduction fractionne le texte par phrase et diffuse en continu chaque phrase traduite à mesure qu’elle se termine, offrant ainsi une meilleure réactivité pour la traduction de texte long.

      Cette entrée affiche #edge-translation-api-streaming-by-sentence, qui va à edge://flags/#edge-translation-api-streaming-by-sentence.

  4. Sous API de traduction expérimentale, sélectionnez Activé.

  5. Sous Diffusion en continu de l’API de traduction fractionnée par phrase, sélectionnez Activé.

    En bas à droite, un bouton Redémarrer s’affiche.

  6. Cliquez sur le bouton Redémarrer .

Voir un exemple de travail

Pour voir l’API Translator en action et passer en revue le code existant qui utilise ces API :

  1. Activez l’API Translator, comme décrit ci-dessus.

  2. Dans Microsoft Edge Canary ou Dev, accédez au terrain de jeu de l’API Translator dans une nouvelle fenêtre ou un nouvel onglet.

  3. Dans la bannière d’informations en haut, case activée le status : il s’agit initialement de l’API sur l’appareil et du modèle téléchargeables. Le modèle d’une paire de langues spécifiée est téléchargé la première fois que l’API est utilisée.

  4. Dans la zone Texte à traduire , entrez le texte à traduire, puis modifiez éventuellement les valeurs Langue source et Langue cible .

  5. Cliquez sur le bouton Traduire .

    Si le modèle de la paire de langues spécifiée n’a pas été téléchargé auparavant, le téléchargement démarre.

    Indicateur d’état montrant la progression du téléchargement du modèle

    Si le téléchargement du modèle ne démarre pas, redémarrez Microsoft Edge et réessayez.

    Une fois le modèle téléchargé, il commence à générer une traduction du texte de la langue source vers la langue cible.

    La sortie est générée dans la section réponse de la page :

    Page de démonstration Translator avec des paramètres et un bouton Traduire

  6. Pour arrêter la génération de la réponse, cliquez à tout moment sur le bouton Arrêter .

Voir aussi :

  • /built-in-ai/ - Code source et fichier Lisez-moi pour la démonstration des terrains de jeu d’IA intégrés.

Utiliser l’API Translator

Les sections suivantes concernent l’utilisation de l’API Translator.

Vérifier si l’API Translator est activée

Avant d’utiliser l’API Translator dans le code de votre site web, case activée que l’API est activée en testant la présence de l’objet Translator :

if (!Translator) {
  // The Translator API is not available.
} else {
  // The Translator API is available.
}

Vérifier si le modèle peut être utilisé (availability())

La configuration requise pour l’API Translator est la suivante :

  • La traduction de la langue source spécifiée vers la langue cible spécifiée doit être prise en charge.
  • Le modèle de traduction de la paire de langues et du runtime du modèle doit déjà avoir été téléchargé par Microsoft Edge.

Pour case activée si l’API peut être utilisée, appelez availability():

const availability = await Translator.availability({
  sourceLanguage: "en",
  targetLanguage: "es"
});

if (availability == "unavailable") {
  // The model is not available.
}

if (availability == "downloadable" || availability == "downloading") {
  // The model can be used, but it needs to be downloaded first.
}

if (availability == "available") {
  // The model is available and can be used.
}

Pour sourceLanguage et targetLanguage, utilisez les codes de langue dans Balises pour identifier les langues, comme chaînes.

Créer une session (create())

La création d’une session indique au navigateur de charger le modèle de langage en mémoire, afin qu’il puisse être utilisé. Avant de pouvoir traduire du texte, créez une session à l’aide de la create() méthode et spécifiez les langues source et cible :

// Create a Translator session.
const session = await Translator.create({
  sourceLanguage: "en",
  targetLanguage: "es"
});

Vous pouvez surveiller le téléchargement du modèle à l’aide de l’option monitor , comme suit.

Surveiller la progression du téléchargement du modèle (monitor:)

Vous pouvez suivre la progression du téléchargement du modèle à l’aide de l’option monitor . Cela est utile lorsque le modèle n’a pas encore été entièrement téléchargé sur l’appareil où il sera utilisé, pour informer les utilisateurs de votre site web qu’ils doivent attendre.

// Create a Translator session with the monitor option to monitor the model
// download.
const session = await Translator.create({
  sourceLanguage: "en",
  targetLanguage: "es",
  monitor: m => {
    // Use the monitor object argument to add an listener for the 
    // downloadprogress event.
    m.addEventListener("downloadprogress", event => {
      // The event is an object with the loaded and total properties.
      if (event.loaded == event.total) {
        // The model is fully downloaded.
      } else {
        // The model is still downloading.
        const percentageComplete = (event.loaded / event.total) * 100;
      }
    });
  }
});

Exécuter l’API Translator (translate())

Une fois que vous avez créé une session de modèle, vous pouvez traduire du texte. L’API Traduction fournit deux méthodes pour traduire du texte :

  • translatorSession.translate() retourne une promesse, qui se résout après la traduction du texte.
  • translatorSession.translateStreaming() retourne immédiatement un objet de flux, que vous pouvez utiliser pour afficher le texte traduit, jeton par jeton, au fur et à mesure qu’il est généré.

Les détails sont ci-dessous.

Attendre que le texte soit traduit (translate())

Traduit du texte. Retourne une promesse, qui se résout après la traduction du texte.

Pour attendre que le texte soit entièrement traduit avant de poursuivre l’exécution du code, utilisez la translate() méthode asynchrone. Cette méthode retourne une promesse qui se résout une fois que l’API a fini de générer du texte :

// Create a Translator session.
const translatorSession = await Translator.create({
  sourceLanguage: "en",
  targetLanguage: "es"
});

// Translate the text and wait for the translation to be done.
const translatedText = await translatorSession.translate(sourceText);

// Use the translation.
console.log(translatedText);

Afficher les jetons au fur et à mesure qu’ils sont générés (translateStreaming())

Traduit du texte. Retourne immédiatement un objet de flux, que vous pouvez utiliser pour afficher le texte traduit, jeton par jeton, lors de sa génération.

Pour afficher les jetons au fur et à mesure qu’ils sont générés, utilisez cette méthode de diffusion en continu. La translateStreaming() méthode retourne immédiatement un objet stream. Utilisez l’objet stream retourné pour afficher les jetons de réponse au fur et à mesure qu’ils sont générés :

// Create a Translator session.
const translatorSession = await Translator.create({
  sourceLanguage: "en",
  targetLanguage: "es"
});

// Ask the model to translate text.
const stream = translatorSession.translateStreaming(sourceText);

// Use the stream object to display tokens that are generated by the model, as
// they are being generated.
for await (const chunk of stream) {
  console.log(chunk);
}

Arrêter la traduction de texte (abortController.signal)

Pour arrêter la traduction de texte avant que la promesse ou le flux retourné par les méthodes ci-dessus n’ait été résolu ou terminé, utilisez un AbortController signal :

// Create a Translator session.
const translatorSession = await Translator.create({
  sourceLanguage: "en",
  targetLanguage: "es"
});

// Create an AbortController object.
const abortController = new AbortController();

// Use the model session to translate some text and pass the AbortController
// object by using the signal option.
const stream = translatorSession.translateStreaming(sourceText, {
    signal: abortController.signal
});

// Later, perhaps when the user presses a "Stop" button, call the abort()
// method on the AbortController object to stop translating text.
abortController.abort();

Détruire une session (destroy())

Après avoir traduit du texte, détruisez la session pour informer le navigateur que vous n’avez plus besoin du modèle de langage, afin que le modèle puisse être déchargé de la mémoire.

Vous pouvez détruire une session de deux manières différentes :

  • À l’aide de la destroy() méthode .
  • À l’aide d’un AbortController.

Les détails sont ci-dessous.

Détruire une session en appelant destroy()

Pour détruire une session en appelant destroy() avec une Translator session :

const session = await Translator.create({
  sourceLanguage: "en",
  targetLanguage: "es"
});

// Later, destroy the session by using the destroy method.
session.destroy();

Détruire une session à l’aide de AbortController

Pour détruire une session en créant un AbortController objet, créez une Translator session, puis appelez abort():

// Create an AbortController object.
const controller = new AbortController();

// Create a Translator session and pass the 
// AbortController object by using the signal option.
const session = await Translator.create({
  sourceLanguage: "en",
  targetLanguage: "es",
  signal: controller.signal
});

// Later, perhaps when the user interacts with the UI, destroy the session by
// calling the abort() function of the AbortController object.
controller.abort();

Envoyer des commentaires

Nous sommes très intéressés par la gamme de scénarios pour lesquels vous envisagez d’utiliser l’API Translator, les éventuels problèmes avec l’API ou le modèle expert, et si d’autres API intégrées spécifiques à une tâche seraient utiles.

Pour envoyer des commentaires sur vos scénarios et les tâches que vous souhaitez accomplir, ajoutez un commentaire au problème de commentaires de l’API Translator.

Si vous remarquez des problèmes lors de l’utilisation de l’API à la place, signalez-le sur le dépôt.

Vous pouvez également contribuer à la discussion sur la conception de l’API Translator dans le référentiel W3C Web Machine Learning Working Group.

Voir aussi

Obtenir Microsoft Edge :

GitHub :

Azure documentation :

Dépôt de démonstrations :