Obiettivi
Passa il testo riconosciuto dall'API Cloud Vision all'API Cloud Translation.
Crea e utilizza i glossari di Cloud Translation per personalizzare le traduzioni dell'API Cloud Translation.
Crea una rappresentazione audio del testo tradotto utilizzando l'API Text-to-Speech.
Costi
Ogni Google Cloud API utilizza una struttura tariffaria separata.Per informazioni dettagliate sui prezzi, consulta la guida ai prezzi di Cloud Vision, la guida ai prezzi di Cloud Translation e la guida ai prezzi di Text-to-Speech.
Prima di iniziare
Assicurati di:- Un progetto nella Google Cloud console con l'API Vision, l'API Cloud Translation e l'API Text-to-Speech abilitate
- Una conoscenza di base della programmazione in Python
Download degli esempi di codice
Questo tutorial utilizza il codice nella directory samples/snippets/hybrid_glossaries
delle
librerie client di Cloud per Python.
Per scaricare e passare al codice di questo tutorial, esegui i seguenti comandi dal terminale.
git clone https://github.com/googleapis/python-translate.git cd samples/snippets/hybrid_glossaries/
Configurazione delle librerie client
Questo tutorial utilizza le librerie client Vision, Translation e Text-to-Speech.
Per installare le librerie client pertinenti, esegui questi comandi dal terminale.
pip install --upgrade google-cloud-vision pip install --upgrade google-cloud-translate pip install --upgrade google-cloud-texttospeech
Configurazione delle autorizzazioni per la creazione del glossario
La creazione di glossari di traduzione richiede l'utilizzo di una chiave dell'account di servizio con le autorizzazioni "Editor API Cloud Translation".
Per configurare una chiave dell'account di servizio con le autorizzazioni di editor dell'API Cloud Translation, procedi nel seguente modo:
Crea un account di servizio:
Nella console Google Cloud , vai alla pagina Service Accounts.
Seleziona il progetto.
Fai clic su
Crea service account.Nel campo Nome account di servizio, inserisci un nome. La consoleGoogle Cloud compila il campo ID service account in base a questo nome.
(Facoltativo) Nel campo Descrizione service account, inserisci una descrizione per ilaccount di serviziot.
Fai clic su Crea e continua.
Fai clic sul campo Seleziona un ruolo e seleziona Cloud Translation > Editor API Cloud Translation.
Fai clic su Fine per completare la creazione del service account.
Non chiudere la finestra del browser. Lo utilizzerai nel passaggio successivo.
Scarica una chiave JSON per l'account di servizio che hai appena creato:
- Nella console Google Cloud , fai clic sull'indirizzo email del service account che hai creato.
- Fai clic su Chiavi.
- Fai clic su Aggiungi chiave, poi su Crea nuova chiave.
Fai clic su Crea. Un file della chiave JSON viene scaricato sul computer.
Assicurati di archiviare il file della chiave in modo sicuro perché può essere utilizzato per l'autenticazione come account di servizio. Puoi spostare e rinominare il file come preferisci.
Fai clic su Chiudi.
Dalla cartella
hybrid_glossaries
nel terminale, imposta la variabileGOOGLE_APPLICATION_CREDENTIALS
utilizzando il seguente comando. Sostituiscipath_to_key
con il percorso del file JSON scaricato contenente la nuova chiave dell'account di servizio.Linux o macOS
export GOOGLE_APPLICATION_CREDENTIALS=path_to_key
Windows
set GOOGLE_APPLICATION_CREDENTIALS=path_to_key
Importazione di librerie
Questo tutorial utilizza le seguenti importazioni di sistema e librerie client.
Impostazione dell'ID progetto
Devi associare un Google Cloud progetto a
ogni richiesta a un'API Google Cloud . Specifica il tuo Google Cloud progetto
impostando la variabile di ambiente GOOGLE_CLOUD_PROJECT
dal
terminale.
Nel comando seguente, sostituisci PROJECT_NUMBER_OR_ID con il numero o l'ID del tuo progetto Google Cloud . Esegui questo comando dal terminale.
Linux o macOS
export GOOGLE_CLOUD_PROJECT=PROJECT_NUMBER_OR_ID
Windows
set GOOGLE_CLOUD_PROJECT=PROJECT_NUMBER_OR_ID
Questo tutorial utilizza la seguente variabile ID progetto globale.
Utilizzare Vision per rilevare il testo da un'immagine
Utilizzare l'API Vision per rilevare ed estrarre il testo da un'immagine.
L'API Vision utilizza il riconoscimento ottico dei caratteri (OCR)
per supportare due funzionalità di rilevamento del testo: il rilevamento di testo denso, o DOCUMENT_TEXT_DETECTION
, e il rilevamento di testo sparso, o TEXT_DETECTION
.
Il seguente codice mostra come utilizzare la funzionalità
DOCUMENT_TEXT_DETECTION
dell'API Vision per rilevare
il testo in una foto con testo denso.
Utilizzo della traduzione con i glossari
Dopo aver estratto il testo da un'immagine, utilizza i glossari di traduzione per personalizzare la traduzione del testo estratto. I glossari forniscono traduzioni predefinite che sostituiscono le traduzioni dell'API Cloud Translation dei termini designati.
I casi d'uso del glossario includono:
Nomi dei prodotti:ad esempio, "Google Home" deve essere tradotto in "Google Home".
Parole ambigue:ad esempio, la parola "pipistrello" può indicare un animale o un attrezzo sportivo. Se sai che stai traducendo parole relative allo sport, potresti voler utilizzare un glossario per fornire all'API Cloud Translation la traduzione sportiva di "bat", non quella dell'animale.
Parole prese in prestito:ad esempio, la parola francese "bouillabaisse" si traduce in inglese con "bouillabaisse"; la lingua inglese ha preso in prestito la parola "bouillabaisse" dalla lingua francese. Un anglofono che non conosce il contesto culturale francese potrebbe non sapere che la bouillabaisse è un piatto francese a base di stufato di pesce. I glossari possono sostituire una traduzione in modo che "bouillabaisse" in francese venga tradotto in "zuppa di pesce" in inglese.
Creazione di un file glossario
L'API Cloud Translation accetta file di glossario TSV, CSV o TMX. Questo tutorial utilizza un file CSV caricato su Cloud Storage per definire insiemi di termini equivalenti.
Per creare un file CSV del glossario:
Specifica la lingua di una colonna utilizzando i codici lingua ISO-639 o BCP-47 nella prima riga del file CSV.
fr,en,
Elenca le coppie di termini equivalenti in ogni riga del file CSV. Separa i termini con le virgole. L'esempio seguente definisce la traduzione in inglese di diverse parole francesi culinarie.
fr,en, chèvre,goat cheese, crème brulée,crème brulée, bouillabaisse,fish stew, steak frites,steak with french fries,
Definisci le varianti di una parola. L'API Cloud Translation è sensibile alle maiuscole e ai caratteri speciali, come le parole accentate. Assicurati che il glossario gestisca le varianti di una parola definendo esplicitamente le diverse ortografie della parola.
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,
Carica il glossario in un bucket Cloud Storage. Ai fini di questo tutorial, non è necessario caricare un file glossario in un bucket Cloud Storage né creare un bucket Cloud Storage. Utilizza invece il file del glossario disponibile pubblicamente creato per questo tutorial per evitare di sostenere costi di Cloud Storage. Invia l'URI di un file glossario in Cloud Storage all'API Cloud Translation per creare una risorsa glossario. L'URI del file del glossario disponibile pubblicamente per questo tutorial è gs://cloud-samples-data/translation/bistro_glossary.csv. Per scaricare il glossario, fai clic sul link URI riportato sopra, ma non aprirlo in una nuova scheda.
Creazione di una risorsa glossario
Per utilizzare un glossario, devi creare una risorsa glossario con l'API Cloud Translation. Per creare una risorsa glossario, invia l'URI di un file glossario in Cloud Storage all'API Cloud Translation.
Assicurati di utilizzare una chiave dell'account di servizio con autorizzazioni "Editor API Cloud Translation" e assicurati di aver impostato l'ID progetto dal terminale.
La seguente funzione crea una risorsa di glossario. Con questa risorsa del glossario, puoi personalizzare la richiesta di traduzione nel passaggio successivo di questo tutorial.
Tradurre con i glossari
Dopo aver creato una risorsa glossario, puoi utilizzarla per personalizzare le traduzioni del testo che invii all'API Cloud Translation.
La seguente funzione utilizza la risorsa del glossario creata in precedenza per personalizzare la traduzione del testo.
Utilizzo di Text-to-Speech con Speech Synthesis Markup Language
Ora che hai personalizzato una traduzione del testo rilevato nell'immagine, puoi utilizzare l'API Text-to-Speech. L'API Text-to-Speech può creare audio di sintesi del testo tradotto.
L'API Text-to-Speech genera audio di sintesi da una stringa di testo normale o da una stringa di testo contrassegnata con Speech Synthesis Markup Language (SSML). SSML è un linguaggio di markup che supporta l'annotazione del testo con tag SSML. Puoi utilizzare i tag SSML per influire sul modo in cui l'API Text-to-Speech formatta la creazione della sintesi vocale.
La seguente funzione converte una stringa SSML in un file MP3 di sintesi vocale.
In sintesi
Nei passaggi precedenti, hai definito le funzioni in hybrid_glossaries.py
che utilizzano Vision,
Translation e Text-to-Speech. Ora puoi utilizzare queste funzioni per generare la sintesi vocale del testo tradotto dalla seguente foto.
Il seguente codice chiama le funzioni definite in hybrid_glossaries.py
per:
crea una risorsa glossario dell'API Cloud Translation
utilizzare l'API Vision per rilevare il testo nell'immagine sopra
eseguire una traduzione del glossario dell'API Cloud Translation del testo rilevato
genera sintesi Text-to-Speech sintetica del testo tradotto
Esecuzione del codice
Per eseguire il codice, inserisci questo comando nel terminale nella directory hybrid_glossaries clonata:
python hybrid_tutorial.py
Viene visualizzato l'output seguente:
Created glossary bistro-glossary. Audio content written to file resources/example.mp3
Dopo aver eseguito hybrid_glossaries.py
, vai alla directory resources
dalla directory hybrid_glossaries.
Controlla la directory delle risorse per un file example.mp3
.
Ascolta il seguente clip audio per verificare che il file example.mp3
suoni allo stesso modo.
Risoluzione dei messaggi di errore
403 IAM permission 'cloudtranslate.glossaries.create' denied.
L'utilizzo di una chiave del service account senza autorizzazioni "Editor API Cloud Translation" genera questa eccezione.
KeyError: 'GOOGLE_CLOUD_PROJECT'
Questo errore si verifica se non imposti la variabile GOOGLE_CLOUD_PROJECT.
400 Invalid resource name project id
Questa eccezione viene generata se utilizzi un nome di glossario che contiene caratteri diversi da lettere minuscole, cifre, punti, due punti o trattini oppure se utilizzi una chiave del service account senza autorizzazioni "Editor API Cloud Translation".
File filename was not found.
L'impostazione della variabile GOOGLE_APPLICATION_CREDENTIALS su un percorso di file non valido genera questa eccezione.
Could not automatically determine credentials. Please set GOOGLE_APPLICATION_CREDENTIALS or explicitly create credentials and re-run the application
Se non imposti la variabile GOOGLE_APPLICATION_CREDENTIALS, viene generata questa eccezione.
Forbidden: 403 POST API has not been used or is disabled
La chiamata all'API Cloud Translation, all'API Cloud Vision o all'API Text-to-Speech senza abilitare le API genera questo avviso.
AttributeError: 'module' object has no attribute 'escape'
Python 2.7.10 o versioni precedenti non è compatibile con
HTML
. Per risolvere questo errore, utilizza un ambiente virtuale Python. L'ambiente virtuale utilizzerà la versione più recente di Python.UnicodeEncodeError
Python 2.7.10 o versioni precedenti non è compatibile con
HTML
. Per risolvere questo errore, utilizza un ambiente virtuale Python. L'ambiente virtuale utilizzerà la versione più recente di Python.
Pulizia
Utilizza la consoleGoogle Cloud per eliminare il progetto se non ti serve. L'eliminazione del progetto impedisce l'addebito di costi aggiuntivi al tuoaccount di fatturazione Cloudg per le risorse utilizzate in questo tutorial.
Eliminazione del progetto
- Nella consoleGoogle Cloud , vai alla pagina Progetti.
- Nell'elenco dei progetti, seleziona quello da eliminare e fai clic su Elimina.
- Nella finestra di dialogo, digita l'ID progetto e fai clic su Chiudi per eliminare il progetto.
Passaggi successivi
Complimenti! Hai appena utilizzato l'OCR di Vision per rilevare il testo in un'immagine. Poi, hai creato un glossario di traduzione e hai eseguito una traduzione con quel glossario. Successivamente, hai utilizzato Text-to-Speech per generare l'audio sintetico del testo tradotto.
Per approfondire le tue conoscenze di Vision, Cloud Translation e Text-to-Speech:
- Crea il tuo glossario. Scopri come creare un bucket Cloud Storage e come caricare il file CSV del glossario nel bucket.
- Sperimenta altri modi per utilizzare i glossari di traduzione.
- Scopri come utilizzare Cloud Storage con l'OCR di Cloud Vision.
- Scopri di più su come utilizzare SSML con Text-to-Speech.
- Scopri come utilizzare il campo
imageContext
dell'API Vision per trasmettere un contesto aggiuntivo su una foto quando utilizzi l'OCR di Vision. - Esplora i tutorial della community.