Principes de base de Media Translation

Ce document présente les principes de base de l'utilisation de Media Translation Dans ce guide conceptuel, vous découvrirez les types de requêtes que vous pouvez envoyer à Media Translation. Vous apprendrez également à créer de telles requêtes et à gérer leurs réponses. Nous recommandons à tous les utilisateurs de Media Translation de lire à la fois ce guide et l'un des tutoriels associés avant de se plonger dans l'API en soi.

Requêtes de traduction vocale

Pour le moment, Media Translation ne dispose que d'une seule méthode de traduction vocale :

  • La traduction en flux continu (gRPC uniquement) effectue la traduction des données audio fournies dans un flux bidirectionnel gRPC. Les requêtes en flux continu sont conçues à des fins de traduction en temps réel, par exemple pour l'enregistrement de contenu audio en direct à partir d'un micro. La traduction en flux continu fournit des résultats intermédiaires pendant l'enregistrement audio, ce qui permet par exemple d'afficher des résultats au fur et à mesure qu'un utilisateur parle. Les requêtes de traduction en flux continu sont limitées aux données audio d'une durée maximale de cinq minutes.

Les requêtes contiennent des paramètres de configuration ou des données audio. Dans les sections suivantes, vous trouverez la description plus détaillée de chaque type de requêtes de traduction vocale, des réponses qu'elles génèrent et de la manière de gérer ces réponses.

Requêtes de traduction vocale en flux continu

Une requête de l'API Media Translation en flux continu peut être une configuration de traduction vocale ou des données audio. Un exemple de requête de configuration est présenté ci-dessous :

{
    "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
}

Un exemple de requête de données audio est présenté ci-dessous :

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

La première requête StreamingTranslateSpeechRequest doit contenir une configuration de type StreamingTranslateSpeechConfig non accompagnée de contenu audio. Les requêtes StreamingTranslateSpeechRequest ultérieures envoyées sur le même flux seront alors composées de plusieurs trames consécutives d'octets audio bruts.

Une configuration StreamingTranslateSpeechConfig contient les champs suivants :

  • audio_config (obligatoire) : contient des informations de configuration pour l'audio, de type TranslateSpeechConfig.
  • single_utterance (facultatif, valeur par défaut : false) : indique si cette requête doit se terminer automatiquement lorsqu'aucune parole n'est plus détectée. Si ce champ est défini, Media Translation détecte les pauses, le silence ou le contenu audio non vocal afin de déterminer quand mettre fin à la traduction. Si ce champ n'est pas défini, l'écoute et le traitement du contenu audio continuent jusqu'à ce que le flux soit interrompu explicitement ou que sa durée limite soit atteinte. Il est préférable de définir single_utterance sur true pour le traitement de commandes vocales.

TranslateSpeechConfig contient les sous-champs suivants :

  • audio_encoding (obligatoire) : spécifie le schéma d'encodage du contenu audio fourni (de type AudioEncoding). Si vous avez le choix entre plusieurs codecs, préférez un encodage sans perte tel que FLAC ou LINEAR16, de façon à obtenir des performances optimales. (Pour en savoir plus, consultez la page Encodages audio.)
  • sample_rate_hertz (obligatoire) : spécifie le taux d'échantillonnage (en Hertz) du contenu audio fourni. (Pour en savoir plus sur les taux d'échantillonnage, consultez la section Taux d'échantillonnage ci-dessous.)
  • source_language_code (obligatoire) : contient la langue et les paramètres régionaux à utiliser pour la reconnaissance vocale du contenu audio fourni. Le code de langue doit être un identifiant BCP-47. Notez que les codes de langue se composent généralement d'un tag principal indiquant la langue et d'un sous-tag désignant le dialecte régional (dans l'exemple ci-dessus : "en" pour l'anglais et "US" pour les États-Unis). (Consultez la page Langues acceptées pour accéder à la liste.)
  • "target_language_code" (obligatoire) : contient la langue à utiliser pour la traduction du contenu audio fourni. Le code de langue doit être un identifiant BCP-47. Notez que les codes de langue se composent généralement de tags de langue primaires, car le texte de traduction ne prend pas en compte les dialectes régionaux. Toutefois, les langues zh-CN et zh-TW seront rendues différemment dans le texte de traduction. (Consultez la page Langues acceptées pour accéder à la liste.)

Le contenu audio est acheminé vers Media Translation via le paramètre audio_content de type StreamingTranslateSpeechRequest. Le champ audio_content contient l'audio à évaluer, intégré dans la requête. Reportez-vous à la section Intégrer du contenu audio ci-dessous pour en savoir plus.

Réponse de traduction vocale en flux continu

Les résultats de la traduction vocale en flux continu sont renvoyés dans une série de réponses de type StreamingTranslateSpeechResponse. Une telle réponse comprend les champs suivants :

  • speech_event_type contient des événements de type SpeechEventType. La valeur de ces événements indique à quel moment il a été déterminé qu'un énoncé unique a été prononcé. Les événements vocaux servent de marqueurs dans la réponse de votre flux. Lors de la réception de END_OF_SINGLE_UTTERANCE, l'utilisateur doit cesser d'envoyer des requêtes en attendant de recevoir les réponses de traduction restantes.
  • results contient la liste des résultats, qui peuvent être intermédiaires ou finaux, et qui sont de type StreamingTranslateSpeechResult. La liste des résultats ( results) contient les sous-champs suivants :
    • translation contient du texte de traduction.
    • isFinal indique si les résultats obtenus dans l'entrée de liste considérée sont intermédiaires ou finaux.

Des informations complémentaires sur ces paramètres de requête et de réponse sont présentées ci-dessous.

Taux d'échantillonnage

Vous spécifiez le taux d'échantillonnage de votre contenu audio dans le champ sample_rate_hertz de la requête de configuration. Il doit correspondre au taux d'échantillonnage du flux ou contenu audio associé. Les taux d'échantillonnage compris entre 8 000 Hz et 48 000 Hz sont compatibles avec Media Translation.

Si vous avez le choix entre plusieurs types d'encodage pour votre contenu source, enregistrez le contenu audio en utilisant un taux d'échantillonnage de 16 000 Hz. En effet, des valeurs inférieures pourraient compromettre la précision de la reconnaissance vocale et affecter la qualité de la traduction. De plus, un taux d'échantillonnage plus élevé n'a aucun effet notable sur la qualité de la reconnaissance vocale et peut augmenter la latence.

Toutefois, si vos données audio ont déjà été enregistrées à un taux d'échantillonnage différent de 16 000 Hz, ne refaites pas d'échantillonnage du contenu audio à 16 000 Hz. La plupart des anciens systèmes audio de téléphonie, par exemple, utilisent des taux d'échantillonnage de 8 000 Hz, ce qui peut donner des résultats moins précis. Si vous devez utiliser ce type de contenu audio, fournissez-le à l'API Media Translation à son taux d'échantillonnage natif.

Langues

Le moteur de reconnaissance/traduction de Media Translation est compatible avec un grand nombre de langues et de dialectes. Vous spécifiez la langue (et le dialecte national ou régional) de votre contenu audio dans les champs source_language_code et target_language_code de la configuration de la requête, à l'aide d'un identifiant BCP-47.

La liste complète des langues compatibles pour chaque fonctionnalité est disponible sur la page Langues acceptées.

Sélectionner des modèles

Media Translation peut utiliser l'un des modèles de machine learning pour traduire votre fichier audio. Google a entraîné ces modèles pour des types de contenu audio et des sources audio spécifiques.

Lorsque vous envoyez une requête de traduction audio à Media Translation, vous pouvez améliorer les résultats obtenus en spécifiant le modèle. L'API Media Translation peut ainsi traiter vos fichiers audio à l'aide d'un modèle de machine learning entraîné à reconnaître les données vocales de ce type de source en particulier.

Pour spécifier un modèle de traduction vocale, incluez le champ model dans l'objet TraductionSpeechConfig de votre requête en indiquant le modèle que vous souhaitez utiliser.

Media Translation peut exploiter les types de modèles de machine learning suivants pour la traduction de vos fichiers audio.

Type Nom de chaîne Description
Vidéo google-provided-model/video

Ce modèle permet de transcrire du contenu audio provenant d'un clip vidéo ou comprenant plusieurs locuteurs. Pour optimiser les résultats, fournissez un contenu audio enregistré à un taux d'échantillonnage de 16 000 Hz ou plus.

Remarque : Il s'agit d'un modèle premium plus onéreux que le tarif standard.

Appel téléphonique google-provided-model/(enhanced-)phone-call

Ce modèle permet de transcrire le contenu audio d'un appel téléphonique. En règle générale, le contenu audio téléphonique est enregistré à un taux d'échantillonnage de 8 000 Hz.

Remarque : Le modèle d'appel téléphonique amélioré est un modèle premium plus onéreux que le tarif standard.

Media Translation : par défaut google-provided-model/default

Utilisez ce modèle si votre fichier audio ne correspond à aucun des modèles ci-dessus. Par exemple, vous pouvez l'utiliser pour des enregistrements audio de longue durée qui ne comportent qu'un seul locuteur. Il est préférable d'utiliser du contenu audio haute fidélité, enregistré à un taux d'échantillonnage de 16 000 Hz ou plus.

Intégrer du contenu audio

L'audio intégré est inclus dans la requête de traduction vocale en flux continu lorsqu'un champ audio_content est transmis dans la requête. L'audio intégré fourni en tant que contenu dans une requête gRPC doit être compatible avec la sérialisation Proto3 et transmis sous forme de données binaires.

Lorsque vous créez une requête à l'aide d'une bibliothèque cliente Google Cloud, vous écrivez généralement ces données binaires directement dans le champ audio_content.

Pour afficher des exemples de code, consultez la page Traduire du contenu audio diffusé en streaming.