Cloud Speech-to-Text ist eine API, mit der Sie die Spracherkennungstechnologien von Google in Ihre Entwickleranwendungen einbinden können. In diesem Dokument wird die Verwendung von Cloud Speech-to-Text beschrieben, einschließlich der Arten von Anfragen, die Sie an Cloud STT senden können, wie Sie diese Anfragen erstellen und wie Sie die Antworten darauf verarbeiten. Lesen Sie diesen Leitfaden und eines der zugehörigen Tutorials, bevor Sie die API verwenden.
Spracherkennungsanfragen an Cloud Speech-to-Text
Cloud Speech-to-Text (STT) bietet drei Hauptmethoden für die Spracherkennung:
Bei der synchronen Erkennung (REST und gRPC) werden Audiodaten an die Cloud Speech-to-Text API gesendet. Für die Daten wird eine Spracherkennung durchgeführt und die Ergebnisse werden zurückgegeben, nachdem alle Audiodaten verarbeitet wurden. Mit der synchronen Erkennung können Audiodaten mit einer maximalen Dauer von 1 Minute verarbeitet werden.
Bei der asynchronen Erkennung (REST und gRPC) werden Audiodaten an die Cloud Speech-to-Text API gesendet. Dann wird ein Vorgang mit langer Ausführungszeit gestartet. Während dieses Vorgangs können Sie regelmäßig Erkennungsergebnisse abfragen. Verwenden Sie asynchrone Anfragen für Audiodaten mit einer Dauer von bis zu 480 Minuten.
Bei der Streamingerkennung (nur gRPC) wird die Spracherkennung für Audiodaten durchgeführt, die als bidirektionaler gRPC-Stream vorliegen. Bei Streaminganfragen erfolgt die Erkennung in Echtzeit, zum Beispiel bei der Aufnahme von Live-Audio mit einem Mikrofon. Die Streamingerkennung liefert während der Aufnahme der Audiodaten Zwischenergebnisse. So können Ergebnisse zum Beispiel bereits angezeigt werden, während ein Nutzer noch spricht.
Anfragen enthalten sowohl Konfigurationsparameter als auch Audiodaten. Erkennungsanfragen können optional ein Erkennungssystem enthalten, eine gespeicherte und wiederverwendbare Erkennungskonfiguration.
Audiometadaten
Bei den meisten Audiodateien kann die Cloud Speech-to-Text API die Audiometadaten automatisch ableiten. Cloud STT parst den Header der Datei und decodiert ihn anhand dieser Informationen. Informationen zu den unterstützten Dateitypen finden Sie auf der Seite zur Audiocodierung.
Bei Audiodateien ohne Header können Sie die Audiometadaten explizit in der Erkennungskonfiguration für die Cloud Speech-to-Text API angeben. Weitere Informationen finden Sie auf der Seite zur Audiocodierung.
Wenn Sie bei der Codierung des Quellenmaterials eine Wahl haben, erfassen Sie Audio mit einer Abtastrate von 16.000 Hz. Niedrigere Werte können die Accuracy der Spracherkennung beeinträchtigen, höhere Werte haben keine nennenswerte Auswirkung auf die Spracherkennungsqualität.
Wenn Ihre Audiodaten jedoch bereits mit einer anderen Abtastrate als 16.000 Hz aufgezeichnet wurden, sollten Sie sie nicht mit einer Abtastrate von 16.000 Hz resampeln. Die meisten Legacy-Audiocodecs für Telefonie nutzen beispielsweise Abtastraten von 8.000 Hz, die weniger exakte Ergebnisse liefern. Wenn Sie solche Audiodaten verwenden müssen, stellen Sie sie der Cloud Speech-to-Text API mit ihrer ursprünglichen Abtastrate bereit.
Sprachen
Die Erkennungs-Engine von Cloud STT unterstützt viele verschiedene Sprachen und Dialekte. Die Sprache sowie der nationale oder regionale Dialekt Ihrer Audiodaten werden im Feld languageCode der Anfragekonfiguration als BCP-47-Kennung angegeben.
Eine vollständige Liste der unterstützten Sprachen für die einzelnen Funktionen finden Sie unter Von Speech-to-Text unterstützte Sprachen.
Erkennungsfunktionen
Die Cloud Speech-to-Text API bietet zusätzliche Erkennungsfunktionen wie automatische Zeichensetzung und Konfidenz auf Wortebene. Diese Funktionen können in der Erkennungskonfiguration in Anfragen aktiviert werden. Beispielcode finden Sie unter den bereitgestellten Links; Informationen zur Verfügbarkeit der Funktionen finden Sie unter Von Speech-to-Text unterstützte Sprachen.
Modellauswahl
Cloud STT kann eines von mehreren Modellen für maschinelles Lernen verwenden, um Ihre Audiodatei zu transkribieren. Google hat diese Spracherkennungsmodelle für spezifische Audiotypen und -quellen trainiert. Unter Transkriptionsmodell auswählen finden Sie weitere Informationen zu den verfügbaren Modellen und wie Sie eines in Ihren Anfragen auswählen.
Eingebettete Audioinhalte
Wenn Sie eingebettete Audioinhalte in eine Spracherkennungsanfrage einfügen möchten, verwenden Sie im Feld audio_source den Parameter content. In einer gRPC-Anfrage als Inhalte bereitgestellte eingebettete Audiodaten müssen mit der Proto3-Serialisierung kompatibel sein und als Binärdaten bereitgestellt werden. In einer REST-Anfrage als Inhalte bereitgestellte eingebettete Audiodaten müssen mit der JSON-Serialisierung kompatibel und base64-codiert sein. Weitere Informationen finden Sie unter Base64-Codierung von Audioinhalten.
Wenn Sie eine Anfrage mit einer Google Cloud-Clientbibliothek erstellen, schreiben Sie diese Binärdaten bzw. base64-codierten Daten für gewöhnlich direkt in das Feld content.
Audioverweis durch URI übergeben
In den meisten Fällen verweisen Sie in der Cloud Speech-to-Text API-Anfrage im Feld audio_source mit dem Parameter uri auf eine Audiodatei (im Binärformat, nicht im Base64-Format), die sich in Cloud Storage befindet. Der Verweis muss folgendes Format haben:
gs://bucket-name/path/to/audio/file
Speech-to-Text verwendet ein Dienstkonto, um auf Ihre Dateien in Cloud Storage zuzugreifen. Standardmäßig hat das Dienstkonto Zugriff auf Cloud Storage-Dateien im selben Projekt.
Die E-Mail-Adresse des Dienstkontos lautet:
service-PROJECT_NUMBER@gcp-sa-speech.iam.gserviceaccount.com
Wenn Sie Cloud Storage-Dateien aus einem anderen Projekt transkribieren möchten, können Sie diesem Dienstkonto im anderen Projekt die Rolle [Speech-to-Text Service Agent][speech-service-agent] zuweisen:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-speech.iam.gserviceaccount.com \
--role=roles/speech.serviceAgentWeitere Informationen zur IAM-Richtlinie eines Projekts finden Sie unter [Zugriff auf Projekte, Ordner und Organisationen verwalten][manage-access].
Sie können dem Dienstkonto auch detaillierteren Zugriff gewähren, indem Sie ihm eine Berechtigung für einen bestimmten Cloud Storage-Bucket erteilen:
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
--member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-speech.iam.gserviceaccount.com \
--role=roles/storage.adminWeitere Informationen zur Verwaltung des Zugriffs auf Cloud Storage finden Sie in der Cloud Storage-Dokumentation unter [ACLs (Access Control Lists) erstellen und verwalten][buckets-manage-acl].
Antworten der Cloud Speech-to-Text API
Nachdem die Cloud Speech-to-Text API Audiodaten verarbeitet hat, gibt sie die Transkriptionsergebnisse bei synchronen und Batchanfragen in SpeechRecognitionResult-Nachrichten und bei Streaminganfragen in StreamingRecognitionResult-Nachrichten zurück. Bei synchronen und Batchanfragen enthält die RPC-Antwort eine Liste der Ergebnisse. Die Liste der erkannten Audiosegmente wird in zusammenhängender Reihenfolge angezeigt. Bei Streamingantworten werden alle Ergebnisse, die mit is_final gekennzeichnet sind, in zusammenhängender Reihenfolge angezeigt.
Alternativen auswählen
Jedes Ergebnis in einer erfolgreichen Antwort der synchronen Spracherkennung kann eine oder mehrere alternatives enthalten, wenn der Wert max_alternatives größer als 1 ist. Wenn Cloud STT den Konfidenzwert einer Alternative als hoch genug einstuft, wird die Alternative in die Antwort aufgenommen. Die erste Alternative in einer Antwort ist immer die beste, d. h. wahrscheinlichste Alternative.
Wenn für max_alternatives ein höherer Wert als 1 eingestellt wurde, bedeutet dies nicht automatisch, dass mehrere Alternativen zurückgegeben werden. Im Allgemeinen ist das Anfordern mehrerer Alternativen besonders bei der Bereitstellung von Echtzeitoptionen für Nutzer sinnvoll, die Ergebnisse über eine Streamingerkennungsanfrage erhalten möchten.
Transkriptionen behandeln
Jede Alternative in der Antwort enthält ein transcript mit dem erkannten Text. Wenn Sie aufeinanderfolgende Alternativen erhalten, sollten Sie diese Transkriptionen verketten.
Konfidenzwerte interpretieren
Der confidence-Wert ist eine Schätzung zwischen 0,0 und 1,0. Zu seiner Berechnung werden die Wahrscheinlichkeitswerte aggregiert, die jedem Wort im Audioinhalt zugewiesen werden. Je höher der Wert ist, desto höher ist die geschätzte Wahrscheinlichkeit, dass die einzelnen Wörter korrekt erkannt wurden. Dieses Feld wird meist nur für die oberste Hypothese und nur für die Ergebnisse bereitgestellt, für die is_final=true gilt. Sie können beispielsweise anhand des confidence-Werts entscheiden, ob alternative Ergebnisse angezeigt werden sollen oder ob Ihre Bestätigung angefordert werden soll.
Beachten Sie jedoch, dass das Modell mehr Signale als nur den confidence-Wert verwendet (z. B. der Satzkontext), um das „beste“, an erster Stelle stehende Ergebnis zu bestimmen.
Aus diesem Grund gibt es gelegentlich Fälle, in denen das an erster Stelle stehende Ergebnis nicht den höchsten Konfidenzwert hat. Wenn Sie nicht mehrere alternative Ergebnisse angefordert haben, kann das zurückgegebene „beste“ Einzelergebnis einen niedrigeren Konfidenzwert haben als erwartet.
Dies kann beispielsweise der Fall sein, wenn seltene Wörter verwendet werden. Auch wenn das System ein selten verwendetes Wort richtig erkennt, kann ihm ein niedriger Wahrscheinlichkeitswert zugewiesen werden. Wenn das Modell anhand des Kontexts feststellt, dass das seltene Wort die wahrscheinlichste Option ist, wird dieses Ergebnis an erster Stelle zurückgegeben, auch wenn der confidence-Wert des Ergebnisses niedriger als bei alternativen Optionen ist.
Weitere Informationen
- Clientbibliotheken verwenden, um Audio mit Ihrer bevorzugten Programmiersprache zu transkribieren
- Kurze Audiodateien transkribieren
- Audiostreams transkribieren
- Lange Audiodateien transkribieren