Spracherkennung – Grundlagen

Im vorliegenden Dokument wird die grundlegende Verwendung der Spracherkennung beschrieben. Sie erfahren, welche Arten von Anfragen Sie an Speech-to-Text senden können, wie Sie diese Anfragen erstellen und wie Sie die Antworten verarbeiten. Wir empfehlen allen Nutzern von Speech-to-Text, diesen Leitfaden zu lesen und eine der zugehörigen Anleitungen durchzugehen, bevor sie sich näher mit der API an sich befassen.

Anfragen zur Speech-to-Text-Erkennung

Speech-to-Text verwendet zur Spracherkennung die folgenden drei Hauptmethoden:

  • Bei der synchronen Erkennung (REST und gRPC) werden Audiodaten an die 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. Anfragen für eine synchrone Erkennung sind auf Audiodaten mit einer maximalen Dauer von einer Minute beschränkt.

  • Bei der asynchronen Erkennung (REST und gRPC) werden Audiodaten an die Speech-to-Text API gesendet und ein Vorgang mit langer Ausführungszeit wird initiiert. Während dieses Vorgangs können Sie regelmäßig Erkennungsergebnisse abfragen. Verwenden Sie asynchrone Anfragen für Audiodaten von einer beliebigen Dauer bis zu maximal 480 Minuten.

  • Bei der Streamingerkennung (nur gRPC) wird die Spracherkennung für Audiodaten innerhalb eines bidirektionalen gRPC-Streams durchgeführt. 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, sodass das Ergebnis zum Beispiel bereits angezeigt wird, während ein Nutzer noch spricht.

Anfragen enthalten sowohl Konfigurationsparameter als auch Audiodaten. Erkennungs-Anfragen können optional eine Erkennung enthalten, eine gespeicherte und wiederverwendbare Erkennungskonfiguration.

Audio-Metadaten

Bei den meisten Audiodateien kann die Speech-to-Text API die Audiometadaten automatisch ableiten. Speech-to-Text parst den Header der Datei und decodiert ihn anhand dieser Informationen. Informationen zu den unterstützten Dateitypen findest du auf der Codierungsseite.

Bei Audiodateien ohne Header können mit der Speech-to-Text API die Audiometadaten angegeben werden und zwar explizit in der Erkennungskonfiguration. Weitere Informationen finden Sie auf der Seite Codierung.

Wenn Sie bei der Codierung des Quellmaterials eine Wahl haben, erfassen Sie Audio mit einer Abtastrate von 16.000 Hz. Niedrigere Werte können die Spracherkennungsgenauigkeit 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 Ihre Audiodaten nicht mit einer Abtastrate von 16.000 Hz resampeln. Die meisten veralteten Audiocodecs für Telefonie nutzen beispielsweise Abtastraten von 8.000 Hz, die weniger genaue Ergebnisse liefern. Wenn Sie solche Audiodaten verwenden müssen, stellen Sie sie der Speech-to-Text API mit ihrer nativen Abtastrate bereit.

Sprachen

Die Erkennungs-Engine von Speech-to-Text unterstützt eine Vielzahl von Sprachen und Dialekten. Die Sprache sowie der nationale oder regionale Dialekt Ihrer Audiodaten werden im Feld languageCode der Anfragekonfiguration angegeben. Dazu verwenden Sie eine BCP 47-Kennung.

Eine vollständige Liste der unterstützten Sprachen für die einzelnen Features finden Sie auf der Seite Sprachunterstützung.

Erkennungsfunktionen

Die Speech-to-Text API bietet zusätzliche Erkennungsfunktionen wie automatische Satzzeichen und Konfidenz auf Wortebene. Diese sind in der Erkennungskonfiguration in Anfragen aktiviert. Sehen Sie den Beispielcode unter den obigen Links und auf der Seite Sprachen findest du weitere Informationen zur Verfügbarkeit dieser Funktionen.

Modellauswahl

Speech-to-Text kann eines von mehreren Modellen für maschinelles Lernen verwenden, um Audiodateien zu transkribieren. Google hat diese Spracherkennungsmodelle für spezifische Audiotypen und -quellen trainiert. In der Modellauswahl Dokumentation finden Sie weitere Informationen zu den verfügbaren Modelle und wie Sie eines in Ihren Anfragen auswählen.

Eingebettete Audioinhalte

Eingebettete Audioinhalte können mit dem Parameter content des Feldes audio_source in eine Spracherkennungsanfrage eingefügt werden. Es lassen sich nur Audiodaten als "content" in einer gRPC-Anfrage bereitstellen, die mit der Proto3-Serialisierung kompatibel sind. Ferner müssen die Audiodaten in Form von Binärdaten eingefügt werden. Eingebettete Audiodaten, die als "content" in einer REST-Anfrage bereitgestellt werden, müssen mit der JSON-Serialisierung kompatibel und base64-codiert sein. Weitere Informationen finden Sie unter [Base64-Codierung von Audioinhalten][base64-encoding].

Beim Erstellen einer Anfrage über eine Google Cloud-Clientbibliothek werden diese Binärdaten bzw. base64-codierten Daten normalerweise direkt in das Feld content geschrieben.

Audioverweis durch URI übergeben

In den meisten Fällen verweisen Sie wahrscheinlich mit dem Parameter uri des Feldes audio_source in der Speech-to-Text API-Anfrage (im Binärformat, nicht mit base64) auf eine Audiodatei, die sich in Cloud Storage befindet. Der Verweis wird im folgenden Format angegeben:

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 in einem anderen Projekt transkribieren möchten, können Sie diesem Dienstkonto die Rolle Speech-to-Text Service Agent im anderen Projekt zuweisen:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-speech.iam.gserviceaccount.com \
    --role=roles/speech.serviceAgent

Weitere Informationen zur IAM-Richtlinie für Projekte finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

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.admin

Weitere Informationen zur Verwaltung des Zugriffs auf Cloud Storage finden Sie unter Zugriffssteuerungslisten erstellen und verwalten in der Cloud Storage-Dokumentation.

Speech-to-Text API-Antworten

Sobald die Audiodaten verarbeitet wurden, gibt die Speech-to-Text API die Transkriptionsergebnisse in SpeechRecognitionResult-Nachrichten für synchrone und Batchanfragen und in StreamingRecognitionResult-Nachrichten für Streaming-Anfragen zurück. Bei synchronen und Batchanfragen enthält die RPC-Antwort eine Liste von Ergebnissen. 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 Speech-to-Text den Konfidenzwert einer Alternative als hoch genug einstuft, wird die Alternative in die Antwort eingeschlossen. 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 in einer Antwort gelieferte Alternative enthält ein transcript mit dem erkannten Text. Wenn aufeinanderfolgende Alternativen bereitgestellt werden, 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 sind. 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, in denen is_final=true gilt. Sie können beispielsweise anhand des confidence-Werts entscheiden, ob Sie dem Nutzer alternative Ergebnisse anzeigen oder ihn um eine Bestätigung bitten möchten.

Beachten Sie jedoch, dass das Modell das "beste", an erster Stelle stehende Ergebnis auf der Grundlage von mehr Signalen als nur des confidence-Werts (z. B. Satzkontext) bestimmt. Aus diesem Grund gibt es gelegentlich Fälle, in denen das beste 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. Einem Wort, das nur selten verwendet wird, kann ein niedriger "Wahrscheinlichkeitswert" zugewiesen werden, selbst wenn es richtig erkannt wird. Wenn das Modell anhand des Kontexts feststellt, dass das seltene Wort die wahrscheinlichste Option ist, wird dieses Ergebnis ganz oben zurückgegeben, auch wenn der confidence-Wert des Ergebnisses niedriger als bei alternativen Optionen ist.

Nächste Schritte