Objectifs
Transmettre le texte reconnu par l'API Cloud Vision à l'API Cloud Translation
Créer et utiliser des glossaires Cloud Translation pour personnaliser les traductions générées par l'API Cloud Translation
Créer une représentation audio du texte traduit à l'aide de l'API Text-to-Speech
Coûts
Chaque API Google Cloud utilise une grille tarifaire distincte.Pour en savoir plus sur les tarifs, consultez le Guide de tarification Cloud Vision, le Guide de tarification Cloud Translation et le Guide de tarification Text-to-Speech.
Avant de commencer
Vous devez disposer des éléments suivants :- Un projet dans la console Google Cloud, pour lequel les API Vision, API Cloud Translation et Text-to-Speech sont activées
- Des connaissances de base en programmation Python
Télécharger les exemples de code
Ce tutoriel utilise du code figurant dans le répertoire samples/snippets/hybrid_glossaries
des bibliothèques clientes Cloud pour Python.
Pour télécharger le code pour ce tutoriel et y accéder, exécutez les commandes suivantes depuis le terminal.
git clone https://github.com/googleapis/python-translate.git cd samples/snippets/hybrid_glossaries/
Configurer des bibliothèques clientes
Ce tutoriel utilise les bibliothèques clientes Vision, Translation et Text-to-Speech.
Pour installer les bibliothèques clientes appropriées, exécutez les commandes suivantes depuis le terminal.
pip install --upgrade google-cloud-vision pip install --upgrade google-cloud-translate pip install --upgrade google-cloud-texttospeech
Configurer des autorisations pour la création de glossaires
La création de glossaires Translation nécessite l'utilisation d'une clé de compte de service possédant les autorisations "Éditeur de l'API Cloud Translation".
Pour configurer une clé de compte de service possédant les autorisations de l'éditeur de l'API Cloud Translation, procédez comme suit :
Créez un compte de service :
Dans Google Cloud Console, accédez à la page Comptes de service.
Sélectionnez votre projet.
Cliquez sur
Créer un compte de service.Dans le champ Nom du compte de service, saisissez un nom. Google Cloud Console remplit le champ ID du compte de service en fonction de ce nom.
Facultatif : dans le champ Description du compte de service, saisissez une description du compte de service.
Cliquez sur Créer et continuer.
Cliquez sur le champ Sélectionner un rôle, puis sélectionnez Cloud Translation > Éditeur de l'API Cloud Translation.
Cliquez sur OK pour terminer la création du compte de service.
Ne fermez pas la fenêtre de votre navigateur. Vous en aurez besoin lors de la tâche suivante.
Téléchargez une clé JSON pour le compte de service que vous venez de créer :
- Dans Google Cloud Console, cliquez sur l'adresse e-mail du compte de service que vous avez créé.
- Cliquez sur Keys (Clés).
- Cliquez sur Add key (Ajouter une clé), puis sur Create new key (Créer une clé).
Cliquez sur Créer. Un fichier de clé JSON est téléchargé sur votre ordinateur.
Veillez à stocker le fichier de clé en toute sécurité, car il peut être utilisé pour s'authentifier en tant que compte de service. Vous pouvez déplacer et renommer ce fichier comme vous le souhaitez.
Cliquez sur Fermer.
À partir du dossier
hybrid_glossaries
dans le terminal, définissez la variableGOOGLE_APPLICATION_CREDENTIALS
à l'aide de la commande ci-après. Remplacezpath_to_key
par le chemin d'accès au fichier JSON téléchargé contenant votre nouvelle clé de compte de service.Linux ou macOS
export GOOGLE_APPLICATION_CREDENTIALS=path_to_key
Windows
set GOOGLE_APPLICATION_CREDENTIALS=path_to_key
Importer des bibliothèques
Ce tutoriel utilise les importations système et les importations de bibliothèques clientes ci-après.
Définir l'ID de votre projet
Vous devez associer un projet Google Cloud à chaque requête envoyée à une API Google Cloud. Spécifiez votre projet Google Cloud en définissant la variable d'environnement GOOGLE_CLOUD_PROJECT
à partir du terminal.
Dans la commande suivante, remplacez PROJECT_NUMBER_OR_ID par le numéro ou l'ID de votre projet Google Cloud. Exécutez la commande ci-après à partir du terminal.
Linux ou macOS
export GOOGLE_CLOUD_PROJECT=PROJECT_NUMBER_OR_ID
Windows
set GOOGLE_CLOUD_PROJECT=PROJECT_NUMBER_OR_ID
Ce tutoriel utilise la variable d'ID de projet globale suivante.
Détecter le texte d'une image à l'aide de Vision
Utilisez l'API Vision pour détecter et extraire le texte d'une image.
L'API Vision fait appel à la reconnaissance optique des caractères (OCR, Optical Character Recognition) pour prendre en charge deux fonctionnalités de détection de texte : la détection de texte dense, ou DOCUMENT_TEXT_DETECTION
, et la détection de texte épars, ou TEXT_DETECTION
.
Le code suivant montre comment utiliser la fonctionnalité DOCUMENT_TEXT_DETECTION
de l'API Vision pour détecter du texte dans une photo comprenant du texte dense.
Utiliser Translation avec des glossaires
Après avoir extrait du texte d'une image, utilisez les glossaires Translation pour personnaliser la traduction du texte extrait. Les glossaires fournissent des traductions prédéfinies qui remplacent les traductions de l'API Cloud Translation pour les termes désignés.
Voici des cas d'utilisation de glossaires :
Noms de produits : par exemple, Google Home doit être traduit par Google Home.
Mots ambigus : par exemple, le mot "avocat" peut désigner une profession ou un aliment. Si vous savez que vous traduisez un texte juridique, vous pouvez utiliser un glossaire pour indiquer à l'API Cloud Translation que la traduction juridique du mot "avocat" doit être employée, et non la traduction correspondant à l'aliment.
Emprunts : par exemple, le mot "bouillabaisse" en français est traduit par "bouillabaisse" en anglais. L'anglais a emprunté le mot "bouillabaisse" au français. Si un anglophone ne connaît pas le contexte culturel français, il ne sait peut-être pas que la bouillabaisse est un plat français à base de poisson. Un glossaire permet de remplacer une traduction de sorte que le mot "bouillabaisse" en français soit traduit par "fish stew" (ragoût de poisson) en anglais.
Créer un fichier de glossaire
L'API Cloud Translation accepte les fichiers de glossaire TSV, CSV ou TMX. Ce tutoriel utilise un fichier CSV importé dans Cloud Storage pour définir des ensembles de termes équivalents.
Pour créer un fichier de glossaire CSV :
Spécifiez la langue d'une colonne à l'aide des codes de langue ISO-639 ou BCP-47 dans la première ligne du fichier CSV.
fr,en,
Répertoriez les paires de termes équivalents sur chaque ligne du fichier CSV. Séparez les termes par des virgules. L'exemple suivant définit la traduction en anglais de plusieurs termes culinaires français.
fr,en, chèvre,goat cheese, crème brulée,crème brulée, bouillabaisse,fish stew, steak frites,steak with french fries,
Définissez les variantes d'un mot. L'API Cloud Translation est sensible à la casse et aux caractères spéciaux tels que les accents. Assurez-vous que votre glossaire gère les variantes d'un mot en définissant explicitement ses différentes orthographes.
fr,en, chevre,goat cheese, Chevre,Goat cheese, chèvre,goat cheese, Chèvre,Goat cheese, crème brulée,crème brulée, Crème brulée,Crème brulée, Crème Brulée,Crème Brulée, bouillabaisse,fish stew, Bouillabaisse,Fish stew, steak frites,steak with french fries, Steak frites,Steak with french fries, Steak Frites,Steak with French Fries,
Importez le glossaire dans un bucket Cloud Storage. Dans le cadre de ce tutoriel, vous n'avez pas besoin d'importer un fichier de glossaire dans un bucket Cloud Storage ni de créer un bucket Cloud Storage. Utilisez plutôt le fichier de glossaire accessible au public créé pour ce tutoriel afin d'éviter que des frais liés à Cloud Storage ne vous soient facturés. Envoyez l'URI d'un fichier de glossaire dans Cloud Storage à l'API Cloud Translation pour créer une ressource de glossaire. L'URI du fichier de glossaire accessible au public pour ce tutoriel est gs://cloud-samples-data/translation/bistro_glossary.csv. Pour télécharger le glossaire, cliquez sur le lien URI ci-dessus, mais ne l'ouvrez pas dans un nouvel onglet.
Créer une ressource de glossaire
Pour utiliser un glossaire, vous devez créer une ressource de glossaire avec l'API Cloud Translation. Pour créer une ressource de glossaire, envoyez l'URI d'un fichier de glossaire dans Cloud Storage à l'API Cloud Translation.
Assurez-vous que vous utilisez une clé de compte de service possédant les autorisations "Éditeur de l'API Cloud Translation" et que vous avez défini l'ID du projet depuis le terminal.
La fonction suivante crée une ressource de glossaire. Grâce à cette ressource de glossaire, vous pouvez personnaliser la requête de traduction à l'étape suivante de ce tutoriel.
Traduire avec des glossaires
Une fois que vous avez créé une ressource de glossaire, vous pouvez l'utiliser pour personnaliser les traductions du texte que vous envoyez à l'API Cloud Translation.
La fonction suivante utilise la ressource de glossaire créée précédemment pour personnaliser la traduction du texte.
Utiliser Text-to-Speech avec le langage de balisage de synthèse vocale
Maintenant que vous avez personnalisé une traduction du texte détecté dans l'image, vous êtes prêt à utiliser l'API Text-to-Speech. Cette API peut créer un son synthétique du texte traduit.
L'API Text-to-Speech génère un son synthétique à partir d'une chaîne de texte brut ou d'une chaîne de texte balisée avec le langage de balisage de synthèse vocale (SSML, Speech Synthesis Markup Language). SSML est un langage de balisage qui accepte l'annotation de texte avec des balises SSML. Vous pouvez utiliser des balises SSML pour influencer la façon dont l'API Text-to-Speech formate la création de la voix synthétique.
La fonction suivante convertit une chaîne au format SSML en fichier MP3 de voix synthétique.
Synthèse
Au cours des étapes précédentes, vous avez défini des fonctions dans hybrid_glossaries.py
qui utilisent Vision, Translation et Text-to-Speech. Vous êtes maintenant prêt à utiliser ces fonctions pour générer une voix synthétique du texte traduit à partir de la photo suivante.
Le code suivant appelle les fonctions définies dans hybrid_glossaries.py
pour :
créer une ressource de glossaire de l'API Cloud Translation ;
utiliser l'API Vision pour détecter du texte dans l'image ci-dessus ;
effectuer une traduction du texte détecté à l'aide des glossaires de l'API Cloud Translation ;
générer la voix synthétique Text-to-Speech du texte traduit.
Exécuter le code
Pour exécuter le code, saisissez la commande suivante dans le terminal de votre répertoire hybrid_glossaries cloné :
python hybrid_tutorial.py
Le résultat suivant s'affiche :
Created glossary bistro-glossary. Audio content written to file resources/example.mp3
Après avoir exécuté hybrid_glossaries.py
, accédez au répertoire resources à partir du répertoire hybrid_glossaries.
Recherchez un fichier example.mp3
dans le répertoire "resources".
Écoutez le clip audio suivant pour vérifier que votre fichier example.mp3
est ressemblant.
Dépanner des messages d'erreur
403 IAM permission 'cloudtranslate.glossaries.create' denied.
Cette exception est générée si vous utilisez une clé de compte de service sans les autorisations "Éditeur de l'API Cloud Translation".
KeyError: 'GOOGLE_CLOUD_PROJECT'
Cette erreur est générée si vous ne définissez pas votre variable GOOGLE_CLOUD_PROJECT.
400 Invalid resource name project id
Cette exception est générée si vous utilisez soit un nom de glossaire qui contient des caractères autres que des lettres minuscules, des chiffres, des points, des signes deux-points ou des traits d'union, soit une clé de compte de service sans les autorisations "Éditeur de l'API Cloud Translation".
File filename was not found.
Cette exception est générée si vous définissez la variable GOOGLE_APPLICATION_CREDENTIALS sur un chemin de fichier non valide.
Could not automatically determine credentials. Please set GOOGLE_APPLICATION_CREDENTIALS or explicitly create credentials and re-run the application
Cette exception est générée si vous omettez de définir la variable GOOGLE_APPLICATION_CREDENTIALS.
Forbidden: 403 POST API has not been used or is disabled
Cet avertissement est généré en cas d'appel de l'API Cloud Translation, de l'API Cloud Vision ou de l'API Text-to-Speech sans les activer.
AttributeError: 'module' object has no attribute 'escape'
Python 2.7.10 ou version antérieure n'est pas compatible avec
HTML
. Pour corriger cette erreur, utilisez un environnement virtuel Python. L'environnement virtuel utilise la dernière version de Python.UnicodeEncodeError
Python 2.7.10 ou version antérieure n'est pas compatible avec
HTML
. Pour corriger cette erreur, utilisez un environnement virtuel Python. L'environnement virtuel utilise la dernière version de Python.
Nettoyer
Utilisez la console Google Cloud pour supprimer votre projet, si vous n'en avez plus besoin. En supprimant votre projet, vous évitez que des frais supplémentaires ne soient facturés sur votre compte de facturation Cloud pour les ressources utilisées dans ce tutoriel.
Supprimer le projet
- Dans Google Cloud Console, accédez à la page Projets.
- Dans la liste des projets, sélectionnez celui que vous souhaitez supprimer, puis cliquez sur Supprimer.
- Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour le supprimer.
Étape suivante
Félicitations ! Vous venez d'utiliser la fonctionnalité OCR de Vision pour détecter du texte dans une image. Vous avez ensuite créé un glossaire Translation et effectué une traduction avec celui-ci. Puis, vous avez généré le son synthétique du texte traduit à l'aide de Text-to-Speech.
Pour développer vos connaissances concernant Vision, Cloud Translation et Text-to-Speech :
- Créez votre propre glossaire. Découvrez comment créer un bucket Cloud Storage et importer votre fichier de glossaire CSV dans le bucket.
- Essayez d'autres façons d'utiliser des glossaires Translation.
- Découvrez comment utiliser Cloud Storage avec la fonctionnalité OCR de Cloud Vision.
- Découvrez comment utiliser le langage SSML avec Text-to-Speech.
- Apprenez à utiliser le champ
imageContext
de l'API Vision pour transmettre du contexte supplémentaire sur une photo lorsque vous utilisez la fonctionnalité OCR de Vision. - Consultez des tutoriels de la communauté.