Obiettivi
Passa il testo riconosciuto dall'API Cloud Vision all'API Cloud Translation.
Crea e utilizza i glossari di Cloud Translation per personalizzare traduzioni dell'API Cloud Translation.
Crea una rappresentazione audio del testo tradotto utilizzando il metodo API Text-to-Speech.
Costi
Ogni API Google Cloud utilizza una struttura dei prezzi 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 avere:- Un progetto nella console Google Cloud con l'API Vision, l'API Cloud Translation e l'API Text-to-Speech attivata
- Familiarità di base con la programmazione in Python o NodeJS
Configurazione delle librerie client
Questo tutorial utilizza le librerie client Vision, Translation e Text-to-Speech.
Per installare le librerie client pertinenti, esegui i seguenti comandi dal terminale.
Python
pip install --upgrade google-cloud-vision pip install --upgrade google-cloud-translate pip install --upgrade google-cloud-texttospeech
Node.js
npm install --save @google-cloud/vision npm install --save @google-cloud/translate npm install --save @google-cloud/text-to-speech
Configurazione delle autorizzazioni per la creazione del glossario
La creazione di glossari di traduzione richiede l'utilizzo di un account di servizio chiave con le autorizzazioni "Editor API Cloud Translation".
Per configurare una chiave dell'account di servizio con autorizzazioni Editor API Cloud Translation, procedi nel seguente modo: le seguenti:
Crea un account di servizio:
Nella console Google Cloud, vai alla pagina Account di servizio.
Seleziona il progetto.
Fai clic su
Crea account di servizio.Nel campo Nome account di servizio, inserisci un nome. La La console Google Cloud compila il campo ID account di servizio in base a questo nome.
(Facoltativo) Nel campo Descrizione account di servizio, inserisci una per l'account di servizio.
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 dell'account di servizio.
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 servizio che hai creato.
- Fai clic su Chiavi.
- Fai clic su Aggiungi chiave, quindi 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 questo file come desideri.
Fai clic su Chiudi.
Nel terminale, imposta la variabile GOOGLE_APPLICATION_CREDENTIALS utilizzando il seguente comando. Sostituisci path_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 delle librerie
Questo tutorial utilizza le seguenti importazioni di sistema e librerie client.
Python
Prima di provare questo esempio, segui le istruzioni per la configurazione di Python nel Guida rapida di Cloud Translation con librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Translation Python.
Per autenticarti su Cloud Translation, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni per la configurazione di Node.js nel Guida rapida di Cloud Translation con librerie client. Per ulteriori informazioni, consulta API Cloud Translation Node.js documentazione di riferimento.
Per autenticarti su Cloud Translation, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Impostazione dell'ID progetto
Devi associare un progetto Google Cloud a
ogni richiesta a un'API Google Cloud. Designa il tuo progetto Google Cloud impostando la variabile di ambiente GCLOUD_PROJECT
dal terminale.
Nel comando seguente, sostituisci project-id con il tuo ID progetto Google Cloud. Esegui il comando seguente dal terminale.
Linux o macOS
export GCLOUD_PROJECT=project-id
Windows
set GCLOUD_PROJECT=project-id
Utilizzare Vision per rilevare il testo da un'immagine
Usa 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 funzioni di rilevamento testo:
rilevamento di testo denso o DOCUMENT_TEXT_DETECTION
,
e il rilevamento di testo sparso
TEXT_DETECTION
.
Il codice seguente mostra come utilizzare la funzionalità Text Detection dell'API Vision
DOCUMENT_TEXT_DETECTION
per rilevare il testo in una foto con testo fitto.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python riportate nella guida rapida di Cloud Translation che utilizza le librerie client. Per ulteriori informazioni, consulta API Cloud Translation Python documentazione di riferimento.
Per autenticarti su Cloud Translation, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js riportate nella guida rapida di Cloud Translation che utilizza le librerie client. Per ulteriori informazioni, consulta API Cloud Translation Node.js documentazione di riferimento.
Per autenticarti su Cloud Translation, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Utilizzare la traduzione con i glossari
Dopo aver estratto il testo da un'immagine, utilizza Glossari di traduzione per personalizzare la traduzione del testo estratto. I glossari forniscono traduzioni predefinite che sostituiscono le traduzioni dei termini designati dell'API Cloud Translation.
I casi d'uso dei glossario includono:
Nomi dei prodotti: ad esempio, "Google Home" deve essere tradotto in "Google Home".
Parole ambigue: ad esempio, la parola "pipistrello". può essere un attrezzo sportivo o un animale. Se sai che stai traducendo parole relative allo sport, potresti utilizzare un glossario per alimentare la l'API Cloud Translation la traduzione sportiva di "pipistrello", non la traduzione animale.
Parole prese in prestito: ad esempio "bouillabaisse" in francese significa "bouillabaisse" in inglese; la lingua inglese ha preso in prestito la parola "bouillabaisse" dalla lingua francese. Una persona di lingua inglese priva di un contesto culturale francese potrebbe non sapere che la bouillabaisse è uno stufato di pesce francese. I glossari possono sostituire una traduzione in modo che "bouillabaisse" in francese venga tradotto in "zuppa di pesce" in inglese.
Creazione di un file del glossario
L'API Cloud Translation accetta file di glossario TSV, CSV o TMX. Questo tutorial utilizza un file CSV in Cloud Storage per definire set di termini equivalenti.
Per creare un file CSV di glossario:
Designa la lingua di una colonna utilizzando i codici lingua ISO-639 o BCP-47 nella prima riga del file CSV.
fr,en,
Elenca coppie di termini equivalenti in ogni riga del file CSV. Separa i termini con virgole. L'esempio seguente definisce la traduzione in inglese di diverse parole francesi di cucina.
fr,en, chèvre,goat cheese, crème brulée,crème brulée, bouillabaisse,fish stew, steak frites,steak with french fries,
Definire le varianti di una parola. L'API Cloud Translation è sensibile alle maiuscole e sensibile ai caratteri speciali come le parole accentate. Assicurati che il glossario gestisca le varianti di una parola definendo esplicitamente l'ortografia diversa 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 di glossario in un nel bucket Cloud Storage, né devi creare un bucket Cloud Storage. Utilizza invece il file di glossario disponibile pubblicamente creato per questo tutorial per evitare costi di Cloud Storage. Invia l'URI di un glossario in Cloud Storage all'API Cloud Translation per creare un risorsa del 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 di glossario
Per utilizzare un glossario, devi creare una risorsa con l'API Cloud Translation. Per creare una risorsa di glossario, invia l'URI di un file di 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 prossimo passaggio di questo tutorial.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python riportate nella guida rapida di Cloud Translation che utilizza le librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Translation Python.
Per autenticarti su Cloud Translation, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni per la configurazione di Node.js nel Guida rapida di Cloud Translation con librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Translation Node.js.
Per autenticarti su Cloud Translation, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Traduzione con i glossari
Dopo aver creato una risorsa glossario, puoi utilizzarla per personalizzare le traduzioni del testo inviato all'API Cloud Translation.
La seguente funzione utilizza il glossario creato in precedenza per personalizzare la traduzione del testo.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python riportate nella guida rapida di Cloud Translation che utilizza le librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Translation Python.
Per autenticarti a Cloud Translation, configura le credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni per la configurazione di Node.js nel Guida rapida di Cloud Translation con librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Translation Node.js.
Per autenticarti a Cloud Translation, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Utilizzo di Text-to-Speech con linguaggio di markup di sintesi vocale
Ora che hai personalizzato una traduzione di testo rilevato da un'immagine, sei pronto usare l'API Text-to-Speech. L'API Text-to-Speech può creare audio sintetico del testo tradotto.
L'API Text-to-Speech genera audio sintetico da una stringa di testo normale o da una stringa di testo con markup in 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 di audio di sintesi vocale.
La seguente funzione converte una stringa di SSML in un file MP3 di parlato sintetico.
Python
Prima di provare questo esempio, segui le istruzioni per la configurazione di Python nel Guida rapida di Cloud Translation con librerie client. Per ulteriori informazioni, consulta API Cloud Translation Python documentazione di riferimento.
Per autenticarti a Cloud Translation, configura le credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js riportate nella guida rapida di Cloud Translation che utilizza le librerie client. Per ulteriori informazioni, consulta API Cloud Translation Node.js documentazione di riferimento.
Per autenticarti a Cloud Translation, configura le credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Riepilogo
Nei passaggi precedenti, hai definito funzioni in hybrid_glossaries.py
che utilizzano Vision,
Translation e Text-to-Speech. Ora puoi
utilizzare queste funzioni per generare audio di sintesi vocale del testo tradotto dalla
foto seguente.
Il codice seguente chiama le funzioni definite in hybrid_glossaries.py
per:
crea una risorsa di glossario dell'API Cloud Translation
usa l'API Vision per rilevare il testo nell'immagine qui sopra
eseguire una traduzione del testo rilevato nel glossario dell'API Cloud Translation
Generare sintesi vocale del testo tradotto
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python riportate nella guida rapida di Cloud Translation che utilizza le librerie client. Per ulteriori informazioni, consulta API Cloud Translation Python documentazione di riferimento.
Per autenticarti a Cloud Translation, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js riportate nella guida rapida di Cloud Translation che utilizza le librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Translation Node.js.
Per autenticarti su Cloud Translation, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Eseguire il codice
Per eseguire il codice, inserisci il seguente comando nel terminale nella directory in cui si trova il codice:
Python
python hybrid_tutorial.py
Node.js
node hybridGlossaries.js
Viene visualizzato il seguente output:
Created glossary bistro-glossary. Audio content written to file resources/example.mp3
Dopo aver eseguito il codice, accedi alla resources
dalla directory hybrid_glossaries.
Controlla se nella directory delle risorse è presente un file example.mp3
.
Ascolta il seguente clip audio per verificare che il file example.mp3
lo stesso suono.
Risoluzione dei problemi relativi ai messaggi di errore
403 IAM permission 'cloudtranslate.glossaries.create' denied.
L'utilizzo di una chiave dell'account di servizio senza le autorizzazioni "Editor API Cloud Translation" genera questa eccezione.
KeyError: 'GCLOUD_PROJECT'
Se non imposti la variabile GCLOUD_PROJECT, viene generato questo errore.
400 Invalid resource name project id
Utilizzare un nome di glossario contenente caratteri diversi da lettere minuscole, cifre, punti, due punti o trattini oppure utilizzare Una chiave dell'account di servizio senza "Editor API Cloud Translation" autorizzazioni comporta questa eccezione.
File filename was not found.
L'impostazione della variabile GOOGLE_APPLICATION_CREDENTIALS su un percorso 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 sollevata 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 attivare le relative API genera questo avviso.
AttributeError: 'module' object has no attribute 'escape'
Python 2.7.10 o versioni precedenti non è compatibile con
HTML
. Per correggere 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 correggere questo errore: utilizza un ambiente virtuale Python. L'ambiente virtuale utilizzerà la versione più recente di Python.
Pulizia
Utilizza la console Google Cloud per eliminare il progetto se non ti serve. Eliminazione del progetto evita che al tuo account di fatturazione Cloud vengano addebitati costi aggiuntivi per utilizzate in questo tutorial.
Eliminazione del progetto
- Nella console Google Cloud, vai alla pagina Progetti.
- Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare e fai clic su Elimina.
- Nella finestra di dialogo, digita l'ID progetto e fai clic su Chiudi per 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 questo glossario. In seguito, hai utilizzato Text-to-Speech per generare audio sintetico del testo tradotto.
Per ampliare le tue conoscenze di visione artificiale, traduzione e Text-to-Speech:
- Crea il tuo glossario. Scopri come creare un bucket Cloud Storage e caricare il file CSV del glossario nel bucket.
- Prova 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 l'API Vision
Campo
imageContext
per trasmettere contesto aggiuntivo su una foto quando utilizzi Vision OCR. - Consulta i tutorial della community.