Compartir vía


Traducción de texto con Translator API

Translator API es una API web experimental que le permite traducir texto entre diferentes idiomas mediante un modelo experto integrado en Microsoft Edge, desde código JavaScript en su sitio web o extensión del explorador.

Para obtener información introductoria sobre Translator API, consulte:

Contenido detallado:

Disponibilidad de Translator API

Translator API está disponible como versión preliminar para desarrolladores en los canales Microsoft Edge Canary o Dev, a partir de la versión 143.0.3636.0. Para descargar un canal de versión preliminar de Microsoft Edge (Beta, Desarrollo o Canary), vaya a Convertirse en microsoft edge insider.

Ventajas de Translator API

Translator API usa un modelo experto para la traducción automática que se ejecuta en el mismo dispositivo donde se usan las entradas y salidas del modelo (es decir, localmente). Este enfoque tiene las siguientes ventajas en comparación con las soluciones basadas en la nube:

  • Costo reducido: No hay ningún costo asociado con el uso de un servicio de traducción en la nube.

  • Independencia de red: Más allá de la descarga del modelo inicial, no hay latencia de red al usar esta API para traducir texto y la API también se puede usar cuando el dispositivo está sin conexión.

  • Privacidad mejorada: La entrada de datos en el modelo nunca sale del dispositivo y no se recopila para entrenar modelos de inteligencia artificial.

Los modelos de traducción para pares de idioma especificados se descargan la primera vez que se usa la API en Microsoft Edge y, posteriormente, se comparten en todos los sitios web del explorador. Se accede a los modelos a través de una API web sencilla que no requiere conocimientos de marcos de trabajo de terceros y no requiere conocimientos de inteligencia artificial (IA) ni aprendizaje automático (ML).

Alternativas a Translator API

Puede enviar solicitudes de red a servicios de traducción basados en la nube con funcionalidades más sofisticadas, incluida la traducción neuronal; consulte Azure documentación de AI Translator.

Como alternativa en el dispositivo, la API de aviso sirve más escenarios de solicitud en varios idiomas personalizados, con un modelo de lenguaje pequeño integrado en Microsoft Edge; consulte Prompt a built-in language model with the Prompt API (Preguntar un modelo de lenguaje integrado con prompt API).

Aviso de declinación de responsabilidades

Al igual que otros modelos de traducción automática, los modelos expertos de Microsft Edge pueden producir traducciones injustas, poco confiables o ofensivas. Para obtener más información sobre las limitaciones de estos modelos de traducción automática, consulte Limitaciones en Azure nota de transparencia de Translator de IA.

Disponibilidad del modelo

Se necesitará una descarga inicial del modelo la primera vez que un sitio web llame a una API de inteligencia artificial integrada. Puede supervisar la descarga del modelo mediante la opción de supervisión al crear una nueva sesión de Translator API; consulte Supervisión del progreso de la descarga del modelo (monitor:), a continuación.

Habilitación de Translator API

Para usar Translator API en Microsoft Edge, establezca dos marcas, como se indica a continuación:

  1. En Microsoft Edge, vaya a edge://versiony asegúrese de que usa la versión 143.0.3636.0 o posterior de Microsoft Edge, como el canal de versión preliminar Canary o Dev de Microsoft Edge.

    Para descargar un canal de versión preliminar de Microsoft Edge (Beta, Desarrollo o Canary), vaya a Convertirse en microsoft edge insider.

  2. En esa versión de Microsoft Edge, abra una nueva pestaña o ventana y vaya a edge://flags.

  3. En el cuadro de texto Marcas de búsqueda de la parte superior, empiece a escribir la API de traducción:

    Página Marcas del explorador

    Se muestran las siguientes marcas:

    • API de traducción experimental : habilita la API de traducción de idioma en el dispositivo. Consulte Explainer para las API translator and language detector.

      Esta entrada muestra #edge-translation-api, que va a edge://flags/#edge-translation-api.

    • Streaming de la API de traducción dividido por oración : cuando está habilitada, la API de traducción dividirá el texto por oración y transmitirá cada oración traducida a medida que se complete, lo que proporciona una mejor capacidad de respuesta para la traducción de texto largo.

      Esta entrada muestra #edge-translation-api-streaming-by-sentence, que va a edge://flags/#edge-translation-api-streaming-by-sentence.

  4. En API de traducción experimental, seleccione Habilitado.

  5. En Streaming de Translation API dividido por oración, seleccione Habilitado.

    En la esquina inferior derecha, se muestra un botón Reiniciar .

  6. Haga clic en el botón Reiniciar .

Consulte un ejemplo de trabajo

Para ver Translator API en acción y revisar el código existente que usa estas API:

  1. Habilite Translator API, como se describió anteriormente.

  2. En Microsoft Edge Canary o Dev, vaya al área de juegos de Translator API en una nueva ventana o pestaña.

  3. En el banner de información de la parte superior, compruebe el estado: inicialmente lee: API en el dispositivo y modelo descargable. El modelo de un par de idioma especificado se descargará la primera vez que se use la API.

  4. En el cuadro texto para traducir , escriba texto para traducir y, opcionalmente, cambie los valores idioma de origen y Idioma de destino .

  5. Haga clic en el botón Traducir .

    Si el modelo del par de idioma especificado no se ha descargado antes, se inicia la descarga.

    Indicador de estado que muestra el progreso de descarga del modelo

    Si no se inicia la descarga del modelo, reinicie Microsoft Edge e inténtelo de nuevo.

    Una vez descargado el modelo, el modelo comienza a generar una traducción del texto del idioma de origen al idioma de destino.

    La salida se genera en la sección de respuesta de la página:

    Página de demostración de Translator con la configuración y un botón Traducir

  6. Para dejar de generar la respuesta, en cualquier momento, haga clic en el botón Detener .

Vea también:

  • /built-in-ai/ - Código fuente y Léame para la demostración de áreas de juegos de IA integrada.

Uso de Translator API

En las secciones siguientes se trata sobre el uso de Translator API.

Compruebe si Translator API está habilitado

Antes de usar Translator API en el código del sitio web, compruebe que la API está habilitada mediante la prueba de la presencia del Translator objeto:

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

Compruebe si se puede usar el modelo (availability())

Translator API tiene los siguientes requisitos:

  • Se debe admitir la traducción del idioma de origen especificado al idioma de destino especificado.
  • Microsoft Edge ya debe haber descargado el modelo de traducción para el par de idioma y el tiempo de ejecución del modelo.

Para comprobar si se puede usar la API, llame a 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.
}

Para sourceLanguage y targetLanguage, use los códigos de idioma en Etiquetas para identificar idiomas, como cadenas.

Creación de una nueva sesión (create())

La creación de una sesión indica al explorador que cargue el modelo de lenguaje en la memoria para que se pueda usar. Para poder traducir texto, cree una nueva sesión mediante el create() método y especifique los idiomas de origen y de destino:

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

Puede supervisar la descarga del modelo mediante la monitor opción , como se indica a continuación.

Supervisar el progreso de la descarga del modelo (monitor:)

Puede seguir el progreso de la descarga del modelo mediante la monitor opción . Esto resulta útil cuando el modelo aún no se ha descargado por completo en el dispositivo donde se usará, para informar a los usuarios de su sitio web de que deben esperar.

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

Ejecución de Translator API (translate())

Después de crear una sesión de modelo, puede traducir texto. Translation API proporciona dos métodos para traducir texto:

  • translatorSession.translate() devuelve una promesa, que se resuelve una vez traducido el texto.
  • translatorSession.translateStreaming() devuelve inmediatamente un objeto de secuencia, que puede usar para mostrar el texto traducido, token por token, a medida que se genera.

A continuación se detallan los detalles.

Espere a que el texto se traduzca (translate())

Traduce texto. Devuelve una promesa que se resuelve después de traducir el texto.

Para esperar a que el texto se traduzca completamente antes de seguir ejecutando código, use el translate() método asincrónico. Este método devuelve una promesa que se resuelve una vez que la API ha terminado de generar texto:

// 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);

Mostrar tokens a medida que se generan (translateStreaming())

Traduce texto. Devuelve inmediatamente un objeto de secuencia, que puede usar para mostrar el texto traducido, token por token, a medida que se genera.

Para mostrar los tokens a medida que se generan, use este método de streaming. El translateStreaming() método devuelve un objeto de secuencia inmediatamente. Use el objeto de secuencia devuelto para mostrar los tokens de respuesta a medida que se generan:

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

Detener la traducción de texto (abortController.signal)

Para dejar de traducir texto antes de que la promesa o la secuencia devueltas por los métodos anteriores se hayan resuelto o finalizado, use una AbortController señal:

// 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();

Destruir una sesión (destroy())

Después de traducir texto, destruya la sesión para que el explorador sepa que ya no necesita el modelo de lenguaje, de modo que el modelo se pueda descargar de la memoria.

Puede destruir una sesión de dos maneras diferentes:

  • Mediante el destroy() método .
  • Mediante el uso de .AbortController

A continuación se detallan los detalles.

Destruir una sesión llamando a destroy()

Para destruir una sesión llamando a destroy() con una Translator sesión:

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

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

Destrucción de una sesión mediante AbortController

Para destruir una sesión mediante la creación de un AbortController objeto, cree una Translator sesión y, a continuación, llame a 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();

Enviar comentarios

Estamos muy interesados en conocer la gama de escenarios para los que piensa usar Translator API, los problemas con la API o el modelo experto y si otras API integradas específicas de la tarea serían útiles.

Para enviar comentarios sobre los escenarios y las tareas que desea lograr, agregue un comentario al problema de comentarios de Translator API.

Si observa algún problema al usar la API en su lugar, notifíquelo en el repositorio.

También puede contribuir a la discusión sobre el diseño de Translator API en el repositorio del grupo de trabajo de W3C Web Machine Learning.

Vea también

Obtener Microsoft Edge:

GitHub:

Azure documentos:

Repositorio de demostraciones: