Ziele
Von der Cloud Vision API erkannten Text an die Cloud Translation API übergeben
Cloud Translation-Glossare erstellen und verwenden, um Cloud Translation API-Übersetzungen zu personalisieren
Mit der Text-to-Speech API eine Audiodarstellung für übersetzten Text erstellen
Kosten
Für jede Google Cloud API gilt eine eigene Preisstruktur.Preisdetails finden Sie im Preisleitfaden zu Cloud Vision, im Preisleitfaden zu Cloud Translation und im Preisleitfaden zu Text-to-Speech.
Vorbereitung
Folgende Voraussetzungen müssen erfüllt sein:- Sie haben ein Projekt in der Google Cloud Console mit der Vision API, der Cloud Translation API und der Text-to-Speech API aktiviert.
- Sie haben Grundkenntnisse in der Programmierung mit Python.
Codebeispiele herunterladen
In dieser Anleitung wird Code im Verzeichnis samples/snippets/hybrid_glossaries
der Cloud-Clientbibliotheken für Python verwendet.
Führen Sie die folgenden Befehle über das Terminal aus, um den Code für diese Anleitung herunterzuladen und zu öffnen.
git clone https://github.com/googleapis/python-translate.git cd samples/snippets/hybrid_glossaries/
Clientbibliotheken einrichten
In dieser Anleitung werden Vision-, Translation- und Text-to-Speech-Clientbibliotheken verwendet.
Führen Sie die folgenden Befehle über das Terminal aus, um die relevanten Clientbibliotheken zu installieren.
pip install --upgrade google-cloud-vision pip install --upgrade google-cloud-translate pip install --upgrade google-cloud-texttospeech
Berechtigungen für die Glossarerstellung einrichten
Zum Erstellen von Translation-Glossaren ist ein Dienstkontoschlüssel mit den Cloud Translation API-Bearbeiter-Berechtigungen erforderlich.
So richten Sie einen Dienstkontoschlüssel mit den Cloud Translation API-Bearbeiterberechtigungen ein:
Erstellen Sie ein Dienstkonto:
Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf.
Wählen Sie Ihr Projekt aus.
Klicken Sie auf
Dienstkonto erstellen.Geben Sie im Feld Dienstkontoname einen Namen ein. Die Google Cloud Console füllt das Feld Dienstkonto-ID anhand dieses Namens aus.
Optional: Im Feld Beschreibung des Dienstkontos können Sie eine entsprechende Beschreibung eingeben.
Klicken Sie auf Erstellen und fortfahren.
Klicken Sie auf das Feld Rolle auswählen und wählen Sie Cloud Translation > Cloud Translation API-Bearbeiter aus.
Klicken Sie auf Fertig, um das Erstellen des Dienstkontos abzuschließen.
Schließen Sie das Browserfenster nicht. Sie verwenden es in der nächsten Aufgabe.
Laden Sie einen JSON-Schlüssel für das gerade erstellte Dienstkonto herunter:
- Klicken Sie in der Google Cloud Console auf die E-Mail-Adresse des von Ihnen erstellten Dienstkontos.
- Klicken Sie auf Schlüssel.
- Klicken Sie auf Schlüssel hinzufügen > Neuen Schlüssel erstellen.
Klicken Sie auf Erstellen. Daraufhin wird eine JSON-Schlüsseldatei auf Ihren Computer heruntergeladen.
Bewahren Sie die Schlüsseldatei sicher auf, da sie zur Authentifizierung als Ihr Dienstkonto verwendet werden kann. Sie können diese Datei beliebig verschieben und umbenennen.
Klicken Sie auf Schließen.
Legen Sie im Ordner
hybrid_glossaries
des Terminals die VariableGOOGLE_APPLICATION_CREDENTIALS
mit dem folgenden Befehl fest. Ersetzen Siepath_to_key
durch den Pfad zur heruntergeladenen JSON-Datei, die den neuen Dienstkontoschlüssel enthält.Linux oder macOS
export GOOGLE_APPLICATION_CREDENTIALS=path_to_key
Windows
set GOOGLE_APPLICATION_CREDENTIALS=path_to_key
Bibliotheken importieren
In dieser Anleitung werden die folgenden Systeme und Clientbibliotheken importiert.
Projekt-ID festlegen
Sie müssen ein Google Cloud-Projekt für jede Anfrage mit einer Google Cloud API verknüpfen. Legen Sie im Terminal die Umgebungsvariable GOOGLE_CLOUD_PROJECT
fest, um Ihr Google Cloud-Projekt zu bestimmen.
Ersetzen Sie im folgenden Befehl PROJECT_NUMBER_OR_ID durch Ihre Google Cloud-Projektnummer oder -ID. Führen Sie den folgenden Befehl über das Terminal aus.
Linux oder macOS
export GOOGLE_CLOUD_PROJECT=PROJECT_NUMBER_OR_ID
Windows
set GOOGLE_CLOUD_PROJECT=PROJECT_NUMBER_OR_ID
In dieser Anleitung wird die folgende globale Projekt-ID-Variable verwendet.
Vision zum Erkennen von Text in einem Bild verwenden
Verwenden Sie die Vision API, um Text in einem Bild zu erkennen und daraus zu extrahieren.
Die Vision API verwendet Optische Zeichenerkennung (Optical Character Recognition, OCR) zur Unterstützung von zwei Features zur Texterkennung: Erkennung von dichtem Text oder DOCUMENT_TEXT_DETECTION
und Erkennung von dünn besetztem Text oder TEXT_DETECTION
.
Der folgende Code zeigt die Verwendung des Vision API-Features DOCUMENT_TEXT_DETECTION
zur Erkennung von Text mit hoher Dichte in einem Foto.
Translation mit Glossaren verwenden
Nachdem Sie Text aus einem Bild extrahiert haben, verwenden Sie Translation-Glossare, um die Übersetzung des extrahierten Textes zu personalisieren. Glossare enthalten vordefinierte Übersetzungen, die die Übersetzungen der festgelegten Begriffe in der Cloud Translation API überschreiben.
Anwendungsfälle für Glossare:
Produktnamen: "Google Home" muss beispielsweise mit "Google Home" übersetzt werden.
Mehrdeutige Wörter: Das Wort "Schnecke" kann beispielsweise eine Backware oder ein Tier sein. Wenn Sie wissen, dass Sie Wörter zum Thema Gebäck übersetzen, können Sie ein Glossar in der Cloud Translation API verwenden, damit die richtige Übersetzung für Backwaren und nicht die für das Tier verwendet wird.
Entlehnte Wörter: Beispielsweise wird das französische Wort "Bouillabaisse" im Deutschen mit "Bouillabaisse" übersetzt; es wurde aus dem Französischen entlehnt. Ein Deutscher, dem der kulturelle Kontext Frankreichs fehlt, weiß vielleicht nicht, dass Bouillabaisse ein Fischeintopf ist. Glossare können Übersetzungen überschreiben, sodass das französische Wort "Bouillabaisse" im Deutschen mit "Fischeintopf" übersetzt wird.
Glossardatei erstellen
Die Cloud Translation API akzeptiert Glossardateien der Formate TSV, CSV und TMX. In dieser Anleitung wird eine CSV-Datei verwendet, die in Cloud Storage hochgeladen wurde, um Sätze äquivalenter Begriffe zu definieren.
So erstellen Sie eine Glossardatei im CSV-Format:
Legen Sie die Sprache einer Spalte fest. Verwenden Sie dafür in der ersten Zeile der CSV-Datei den Sprachcode gemäß ISO-639 oder BCP-47.
fr,en,
Geben Sie Paare äquivalenter Begriffe in jeder Zeile der CSV-Datei an. Trennen Sie Begriffe durch Kommas. Im folgenden Beispiel wird die englische Übersetzung für mehrere kulinarische französische Wörter definiert.
fr,en, chèvre,goat cheese, crème brulée,crème brulée, bouillabaisse,fish stew, steak frites,steak with french fries,
Definieren Sie Varianten eines Worts. Bei der Cloud Translation API wird zwischen Groß- und Kleinschreibung unterschieden. Sonderzeichen wie akzentuierte Wörter werden berücksichtigt. Achten Sie darauf, dass Ihr Glossar Varianten eines Worts berücksichtigt. Dazu können Sie verschiedene Schreibweisen des Worts explizit definieren.
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,
Laden Sie das Glossar in einen Cloud Storage-Bucket hoch. Für die Zwecke dieser Anleitung ist es nicht erforderlich, eine Glossardatei in einen Cloud Storage-Bucket hochzuladen oder einen Cloud Storage-Bucket zu erstellen. Verwenden Sie stattdessen die öffentlich verfügbare Glossardatei, die für diese Anleitung erstellt wurde, um Cloud Storage-Kosten zu vermeiden. Senden Sie den URI einer Glossardatei in Cloud Storage an die Cloud Translation API, um eine Glossarressource zu erstellen. Der URI der öffentlich verfügbaren Glossardatei für diese Anleitung ist gs://cloud-samples-data/translation/bistro_glossary.csv. Klicken Sie zum Herunterladen des Glossars auf den obigen URI-Link, aber öffnen Sie ihn nicht in einem neuen Tab.
Glossarressource erstellen
Wenn Sie ein Glossar verwenden möchten, müssen Sie mit der Cloud Translation API eine Glossarressource erstellen. Wenn Sie eine Glossarressource erstellen möchten, senden Sie den URI einer Glossardatei in Cloud Storage an die Cloud Translation API.
Achten Sie darauf, einen Dienstkontoschlüssel mit den Cloud Translation API-Bearbeiter-Berechtigungen zu verwenden und Ihre Projekt-ID über das Terminal festzulegen.
Mit dem folgenden Feature wird eine Glossarressource erstellt. Mit dieser Glossarressource können Sie die Übersetzungsanfrage im nächsten Schritt dieser Anleitung personalisieren.
Mit Glossaren übersetzen
Nachdem Sie eine Glossarressource erstellt haben, können Sie diese Glossarressource verwenden, um Übersetzungen von Text zu personalisieren, den Sie an die Cloud Translation API senden.
Das folgende Feature verwendet die zuvor erstellte Glossarressource, um die Übersetzung von Text zu personalisieren.
Text-to-Speech mit Speech Synthesis Markup Language (SSML) verwenden
Nachdem Sie nun eine Übersetzung von in einem Bild erkannten Text personalisiert haben, können Sie die Text-to-Speech API verwenden. Sie kann synthetische Audiodaten des übersetzten Textes erstellen.
Die Text-to-Speech API generiert synthetisches Audio entweder aus einem String aus Nur-Text-Dateien oder aus einem String mit Speech Synthesis Markup Language (SSML). SSML ist eine Auszeichnungssprache, die das Annotieren von Text mit SSML-Tags unterstützt. Mit SSML-Tags können Sie beeinflussen, wie die Text-to-Speech API synthetische Spracherstellung formatiert.
Mit dem folgenden Feature wird ein SSML-String in eine MP3-Datei mit synthetischer Sprache umgewandelt.
Zusammenfassung
In den vorherigen Schritten haben Sie Features in hybrid_glossaries.py
definiert, die Vision, Translation und Text-to-Speech verwenden. Nun können Sie sie verwenden, um synthetische Sprache des übersetzten Textes aus dem folgenden Foto zu generieren.
Mit dem folgenden Code werden die in hybrid_glossaries.py
definierten Features aufgerufen, um folgende Aufgaben auszuführen:
Eine Glossarressource für die Cloud Translation API erstellen
Die Vision API verwenden, um Text im obigen Bild zu erkennen
Eine Übersetzung des erkannten Textes über das Cloud Translation API-Glossar ausführen
Synthetische Text-to-Speech-Sprache des übersetzten Textes erzeugen
Code ausführen
Geben Sie den folgenden Befehl im geklonten Verzeichnis "hybrid_glossaries" im Terminal an, um den Code auszuführen:
python hybrid_tutorial.py
Die Ausgabe sieht so aus:
Created glossary bistro-glossary. Audio content written to file resources/example.mp3
Wechseln Sie nach der Ausführung von hybrid_glossaries.py
aus dem Verzeichnis hybrid_glossaries zum Verzeichnis resources.
Suchen Sie im Verzeichnis "resources" nach der Datei example.mp3
.
Hören Sie sich den folgenden Audioclip an, um zu überprüfen, ob die Datei example.mp3
gleich klingt.
Fehlermeldungen beheben
403 IAM permission 'cloudtranslate.glossaries.create' denied.
Mit einem Dienstkontoschlüssel ohne die "Cloud Translation API-Bearbeiter"-Berechtigungen wird diese Ausnahme ausgelöst.
KeyError: 'GOOGLE_CLOUD_PROJECT'
Wenn Sie die Variable GOOGLE_CLOUD_PROJECT nicht festlegen, wird dieser Fehler generiert.
400 Invalid resource name project id
Verwenden Sie entweder einen Glossarnamen, der andere Zeichen als Kleinbuchstaben, Ziffern, Punkte, Doppelpunkte oder Bindestriche enthält, oder verwenden Sie einen Dienstkontoschlüssel ohne die "Cloud Translation API-Bearbeiter"-Berechtigungen.
File filename was not found.
Wenn Sie die Variable GOOGLE_APPLICATION_CREDENTIALS auf einen ungültigen Dateipfad festlegen, wird diese Ausnahme ausgelöst.
Could not automatically determine credentials. Please set GOOGLE_APPLICATION_CREDENTIALS or explicitly create credentials and re-run the application
Wenn Sie die Variable GOOGLE_APPLICATION_CREDENTIALS nicht festlegen, wird diese Ausnahme ausgelöst.
Forbidden: 403 POST API has not been used or is disabled
Beim Aufrufen der Cloud Translation API, der Cloud Vision API oder der Text-to-Speech API ohne Aktivierung der zugehörigen APIs wird diese Warnung generiert.
AttributeError: 'module' object has no attribute 'escape'
Python 2.7.10 oder früher ist nicht mit
HTML
kompatibel. Verwenden Sie eine virtuelle Python-Umgebung, um diesen Fehler zu beheben. Für die virtuelle Umgebung wird die neueste Version von Python verwendet.UnicodeEncodeError
Python 2.7.10 oder früher ist nicht mit
HTML
kompatibel. Verwenden Sie eine virtuelle Python-Umgebung, um diesen Fehler zu beheben. Für die virtuelle Umgebung wird die neueste Version von Python verwendet.
Bereinigen
Löschen Sie das Projekt mit der Google Cloud Console, wenn Sie es nicht benötigen. Dadurch werden zusätzliche Kosten für die in dieser Anleitung verwendeten Ressourcen für Ihr Cloud-Rechnungskonto vermieden.
Projekt löschen
- Öffnen Sie in der Google Cloud Console die Seite "Projekte".
- Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie auf Löschen.
- Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Herunterfahren, um das Projekt zu löschen.
Nächste Schritte
Glückwunsch! Sie haben gerade Vision OCR verwendet, um Text in einem Bild zu erkennen. Dann haben Sie ein Translation-Glossar erstellt und eine Übersetzung mit diesem Glossar durchgeführt. Anschließend haben Sie Text-to-Speech verwendet, um synthetisches Audio des übersetzten Textes zu generieren.
So erweitern Sie Ihr Wissen über Vision, Cloud Translation und Text-to-Speech:
- Erstellen Sie Ihr eigenes Glossar. Erstellen Sie einen Cloud Storage-Bucket und laden Sie die CSV-Datei des Glossars in den Bucket hoch.
- Testen Sie andere Möglichkeiten zur Verwendung von Translation-Glossaren.
- Erlernen Sie die Verwendung von Cloud Storage mit Cloud Vision OCR.
- Erlernen Sie die Verwendung von SSML mit Text-to-Speech.
- Erlernen Sie die Verwendung des Feldes
imageContext
der Vision API, um zusätzlichen Kontext zu einem Foto weiterzugeben, wenn Sie Vision OCR verwenden. - Lesen Sie die Community-Anleitungen.