Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Conceptos básicos de la traducción de medios

Este documento es una guía sobre los conceptos básicos del uso de la traducción de medios. En esta guía conceptual, se abordan los tipos de solicitudes que puedes realizar a la traducción de medios, cómo crear esas solicitudes y cómo manejar sus respuestas. Recomendamos que todos los usuarios de la traducción de medios lean esta guía y uno de los instructivos asociados antes de comenzar a usar la API.

Solicitudes de traducción de voz

La traducción de medios solo tiene un método hasta el momento para realizar la traducción de voz:

  • La traducción de transmisión (solo en gRPC) realiza la traducción en los datos de audio proporcionados dentro de una transmisión bidireccional de gRPC. Las solicitudes de transmisión están diseñadas para fines de traducción en tiempo real, como la captura de audio en vivo de un micrófono. La traducción de transmisión proporciona resultados provisorios mientras se captura el audio, lo que permite que el resultado aparezca mientras un usuario aún está hablando, por ejemplo. Las solicitudes de traducción de transmisión se limitan a datos de audio de hasta 5 minutos de duración.

Las solicitudes contienen parámetros de configuración o datos de audio. En las siguientes secciones, se describe este tipo de solicitudes de traducción de voz, las respuestas que generan y cómo manejar esas respuestas con más detalle.

Solicitudes de traducción de voz de transmisión

Una solicitud de API de traducción de medios de transmisión puede ser una configuración de traducción de voz o datos de audio. A continuación, se muestra una solicitud de configuración de muestra:

{
    "audio_config": {
        "audio_encoding": "linear16",
        "sample_rate_hertz": 16000,
        "source_language_code": "en-US",
        "target_language_code": "zh",
        "model" : "google-provided-model/video",
    }
    "single_utterance" : False
}

A continuación, se muestra una solicitud de datos de audio de muestra:

{
    "audio_content " : "\366c\256\375jQ\r\312\205j\271\243%/u\216z\330\354\221\360\253KJ\005\"
}

El primer elemento StreamingTranslateSpeechRequest debe contener una configuración del tipo StreamingTranslateSpeechConfig sin audio que lo acompañe. Los elementos StreamingTranslateSpeechRequest subsiguientes enviados en la misma transmisión continua consistirán en marcos consecutivos de bytes de audio sin procesar.

Un elemento StreamingTranslateSpeechConfig incluye los siguientes campos:

  • audio_config: Contiene información de configuración del tipo TranslateSpeechConfig para el audio (obligatorio).
  • single_utterance: Indica si esta solicitud debe finalizar de forma automática después de que ya no se detecte la voz (opcional, el valor predeterminado es false). Si se la configura, la traducción de medios detectará las pausas, los silencios o el audio sin voz para determinar cuándo finalizar la traducción. Si no se configura, la transmisión continuará escuchando y procesando audio hasta que esta se cierre directamente o se exceda la longitud límite de la transmisión. Establecer single_utterance en true es útil para procesar comandos por voz.

Un elemento TranslateSpeechConfig contiene los siguientes subcampos:

  • audio_encoding: Especifica el esquema de codificación del audio suministrado (del tipo AudioEncoding). Si puedes elegir el códec, se recomienda una codificación sin pérdidas, como FLAC o LINEAR16, a fin de lograr el mejor rendimiento (obligatorio) (para obtener más información, consulta Codificaciones de audio).
  • sample_rate_hertz: Especifica la tasa de muestreo (en hercios) del audio suministrado (obligatorio) (para obtener más información sobre las tasas de muestreo, consulta Tasas de muestreo a continuación).
  • source_language_code (obligatorio): Contiene el idioma + la región/configuración regional que se usará para el reconocimiento de voz del audio suministrado. El código de idioma debe ser un identificador BCP-47. Ten en cuenta que los códigos de idioma suelen consistir en etiquetas del idioma principal y subetiquetas de la región secundaria que indican los dialectos (por ejemplo, "en" para inglés y "US" para Estados Unidos en el ejemplo anterior) (para obtener una lista de los idiomas admitidos, consulta Idiomas compatibles).
  • “target_language_code”: Contiene el idioma que se usará para la traducción de texto del audio proporcionado (obligatorio). El código de idioma debe ser un identificador BCP-47. Ten en cuenta que, por lo general, los códigos de idioma solo contienen etiquetas del idioma principal, ya que el texto de la traducción no considerará los dialectos. Sin embargo, "zh-CN" y "zh-TW" serán textos de traducción diferentes (para obtener una lista de los idiomas compatibles, consulta Idiomas compatibles).

El audio se proporciona a la traducción de medios a través del campo audio_content del tipo StreamingTranslateSpeechRequest. El campo audio_content contiene el audio que se evaluará y que está incorporado en la solicitud. Consulta Incorpora contenido de audio a continuación para obtener más información.

Respuesta de traducción de voz de transmisión

Los resultados de la traducción de voz de transmisión se muestran dentro de una serie de respuestas del tipo StreamingTranslateSpeechResponse. Esta respuesta consta de los siguientes campos:

  • speech_event_type contiene eventos de tipo SpeechEventType. El valor de estos eventos indicará el momento en que se haya determinado que se completó una declaración. Los eventos de voz sirven como marcadores en la respuesta de tu transmisión. Cuando recibe END_OF_SINGLE_UTTERANCE, el usuario debe dejar de enviar solicitudes mientras espera para recibir las respuestas de traducción restantes.
  • results contiene la lista de resultados, que pueden ser resultados provisionales o finales del tipo StreamingTranslateSpeechResult. La lista results contiene los siguientes subcampos:
    • translation contiene el texto de la traducción.
    • isFinal indica si los resultados obtenidos en esta entrada de lista son provisionales o finales.

A continuación, se proporciona más información sobre estos parámetros de solicitud y respuesta.

Tasas de muestreo

Debes especificar la tasa de muestreo de tu audio en el campo sample_rate_hertz de la solicitud de configuración, y esta debe coincidir con la tasa de muestreo del contenido de audio o la transmisión asociados. Las velocidades de muestreo entre 8,000 Hz y 48,000 Hz son compatibles con la traducción de medios.

Si tienes la opción cuando codificas el material de origen, captura audio con una tasa de muestreo de 16,000 Hz. Los valores inferiores pueden afectar la exactitud del reconocimiento de voz, por lo que se reducirá la calidad de la traducción. Además, una tasa de muestreo superior no tiene un efecto significativo en la calidad del reconocimiento de voz y puede aumentar la latencia.

Sin embargo, si tus datos de audio ya se grabaron con una tasa de muestreo existente diferente de 16,000 Hz, no vuelvas a realizar un muestreo de tu audio a 16,000 Hz. La mayoría del audio de telefonía heredado, por ejemplo, usa tasas de muestreo de 8,000 Hz, lo que puede dar resultados menos exactos. Si debes usar ese audio, proporciónalo a la API de traducción de medios con su tasa de muestreo nativa.

Idiomas

El motor de reconocimiento y traducción de la traducción de medios admite una variedad de pares de idiomas y dialectos. Especifica el idioma (y el dialecto nacional o regional) del audio dentro de los campos source_language_code y target_language_code de la configuración de la solicitud mediante un identificador BCP-47.

En la página Idiomas compatibles, encontrarás una lista completa de los idiomas admitidos por cada función.

Selecciona modelos

En la traducción de medios, se puede usar uno de los varios modelos de aprendizaje automático para traducir el archivo de audio. Google entrenó estos modelos para tipos y fuentes de audio específicos.

Cuando envías una solicitud de traducción de audio a la traducción de medios, puedes mejorar los resultados que recibes si especificas el modelo. Esto permite que la API de traducción de medios procese los archivos de audio mediante un modelo entrenado de aprendizaje automático para reconocer audio de voz de ese tipo de fuente en particular.

Si deseas especificar un modelo para la traducción de voz, incluye el campo model en el objeto TranslateSpeechConfig de tu solicitud y especifica el modelo que deseas usar.

La traducción de medios puede usar los siguientes tipos de modelos de aprendizaje automático para traducir tus archivos de audio.

Tipo String de nombre Descripción
Video google-provided-model/video

Usa este modelo para transcribir audio de clips de video o que incluya varios interlocutores. Para obtener los mejores resultados, proporciona audio grabado a 16,000 Hz o con una tasa de muestreo mayor.

Nota: Este es un modelo premium que cuesta más que la tarifa estándar.

Llamada telefónica google-provided-model/(enhanced-)phone-call

Usa este modelo para transcribir audio de una llamada telefónica. Normalmente, el audio telefónico se graba con una tasa de muestreo de 8,000 Hz.

Nota: El modelo de teléfono mejorado es un modelo premium que cuesta más que la tarifa estándar.

traducción de medios: predeterminada google-provided-model/default

Usa este modelo si tu audio no se ajusta a uno de los modelos descritos más arriba. Por ejemplo, puedes usarlo para grabaciones de audio de formato largo que tienen un solo interlocutor. En un caso ideal, este audio es de alta fidelidad y está grabado con una tasa de muestreo de 16,000 Hz o superior.

Incorpora contenido de audio

El audio incorporado se incluye en la solicitud de traducción de voz de transmisión cuando se pasa un campo audio_content dentro de la solicitud de transmisión. En el caso del audio incorporado que se proporciona como contenido dentro de una solicitud de gRPC, este debe ser compatible con la serialización Proto3 y se debe proporcionar como datos de objetos binarios.

Cuando construyes una solicitud mediante una biblioteca cliente de Google Cloud, por lo general, escribes estos datos de objetos binarios directamente en el campo audio_content.

Para ver muestras de código, consulta Traducir transmisión de audio.