Spracherkennung – Grundlagen

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Übersicht

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.

Jetzt testen

Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie einfach ein Konto, um die Leistungsfähigkeit von Speech-to-Text in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.

Speech-to-Text kostenlos testen

Erkennungssysteme

Erkennungsfunktionen sind die grundlegende Ressource für die Erkennung in V2. Sie definieren eine konfigurierbare, wiederverwendbare Erkennungskonfiguration. Erkennungsfunktionen enthalten das für die Erkennung verwendete Modell und eine Liste der Sprachcodes, die für die Erkennung verwendet werden. Diese Werte können nicht überschrieben werden, wenn Erkennungsanfragen mit dem Erkennungsmodul gesendet werden. Erkennungsfunktionen haben auch eine standardmäßige RecognitionConfig, die bei jeder Erkennungsanfrage überschrieben werden kann.

RecognitionConfig enthält die folgenden untergeordneten Felder:

  • decoding_config: Wählen Sie entweder auto_decoding_config aus, um die automatische Erkennung von Audiometadaten zu aktivieren, oder explicit_decoding_config, um bestimmte Audiometadaten für die Erkennung anzugeben. Für PCM-Audio ohne Header müssen Sie explicit_decoding_config festlegen.
  • features: Für die Erkennung festzulegende RecognitionFeatures.
  • adaptation: Der SpeechAdaptation für die Erkennung. Weitere Informationen finden Sie auf der Seite Konzepte zur Sprachanpassung.

Bevor Sie Erkennungsanfragen stellen, müssen Sie zuerst einen Recognizer, also das Erkennungsmodul, erstellen, indem Sie die CreateRecognizer-Methode aufrufen.

Wenn Sie eine Erkennungsanfrage stellen, können Sie in der Anfrage den Namen des Erkennungsmoduls angeben, der das folgende Format haben sollte.

projects/PROJECT_ID/locations/LOCATION/recognizers/RECOGNIZER_ID

Ersetzen Sie PROJECT_ID durch Ihre Google Cloud-Projekt-ID, LOCATION durch den gewünschten Standort (us, global usw.) und RECOGNIZER_ID durch eine ID für Ihren Recognizer.

Sprachanfragen

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 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. In den folgenden Abschnitten wird ausführlicher auf diese Arten von Erkennungsanfragen, die von ihnen generierten Antworten und die Verarbeitung dieser Antworten eingegangen.

Erkennung mit der Speech-to-Text API

Die einfachste Methode zur Spracherkennung aus Audiodaten besteht darin, eine Anfrage zur synchronen Erkennung an die Speech-to-Text API zu stellen. Speech-to-Text kann bis zu 1 Minute Audiosprachdaten verarbeiten, die in einer synchronen Anfrage gesendet wurden. Nachdem Speech-to-Text alle Audiodaten verarbeitet und erkannt hat, wird eine Antwort zurückgegeben.

Eine synchrone Anfrage blockiert. Das bedeutet, dass Speech-to-Text vor der Verarbeitung der nächsten Anfrage eine Antwort zurückgeben muss. Speech-to-Text verarbeitet Audiodaten in der Regel schneller als in Echtzeit. Audiodaten von 30 Sekunden Dauer werden im Durchschnitt in 15 Sekunden verarbeitet. Bei schlechter Audioqualität kann die Erkennungsanfrage allerdings deutlich länger dauern.

Speech-to-Text bietet sowohl REST- als auch gRPC-Methoden fürs Aufrufen von synchronen Speech-to-Text API-Anfragen. In diesem Artikel wird zu Demonstrationszwecken die REST API verwendet, da die grundlegende Verwendung der API so einfacher darstellbar und erklärbar ist. Der grundlegende Aufbau einer REST-Anfrage ist jedoch mit dem Aufbau einer gRPC-Anfrage vergleichbar. Anfragen für eine Streamingerkennung werden jedoch nur von gRPC unterstützt.

Synchrone Spracherkennungsanfragen

Eine synchrone Speech-to-Text API-Anfrage besteht aus einer Spracherkennungskonfiguration und Audiodaten. Im Folgenden finden Sie eine Beispielanfrage:

{
    "recognizer": "projects/PROJECT_ID/locations/LOCATION/recognizers/RECOGNIZER_ID",
    "config": {
        "explicitDecodingConfig": {
            "encoding": "LINEAR16",
            "sampleRateHertz": 16000,
        }
    },
    "uri": "gs://bucket-name/path_to_audio_file"
}

Audiodaten werden mit dem Parameter audio_source vom Typ RecognitionAudio an Speech-to-Text übergeben. Das Feld audio_source enthält eines der folgenden untergeordneten Felder:

  • content enthält die auszuwertenden Audiodaten, eingebettet in die Anfrage. Weitere Informationen finden Sie unten im Abschnitt Audioinhalte einbetten.
  • uri enthält einen URI, der auf den Audioinhalt verweist. Die Datei darf nicht komprimiert sein (z. B. mit gzip). Derzeit muss dieses Feld einen Google Cloud Storage-URI im Format gs://bucket-name/path_to_audio_file enthalten. Weitere Informationen finden Sie unten im Abschnitt Audioverweis durch URI übergeben.

Audiodaten für die synchrone Erkennung sind auf 60 Sekunden und 10 MB begrenzt.

Weitere Informationen zu diesen Anfrage- und Antwortparametern finden Sie in den folgenden Abschnitten.

Audio-Metadaten

Innerhalb von RecognitionConfig können Sie entweder eine ExplicitDecodingConfig oder eine AutoDetectDecodingConfig angeben.

Mit AutoDetectDecodingConfig erkennt der Dienst die Audiometadaten automatisch.

Sie können ExplicitDecodingConfig nur für Header ohne PCM verwenden. Legen Sie die Abtastrate für Ihre Audiodaten im Feld sampleRateHertz fest, um ExplicitDecodingConfig festzulegen. Sie muss der Abtastrate des bereitgestellten Audioinhalts oder Streams entsprechen. Speech-to-Text unterstützt Abtastraten zwischen 8.000 und 48.000 Hz. Sie müssen außerdem das Feld encoding auf einen beliebigen AudioEncoding-Wert setzen.

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

Zeitversätze (Zeitstempel)

Speech-to-Text kann Zeitverschiebungswerte (Zeitstempel) für den Beginn und das Ende eines jeden gesprochenen Wortes zurückgeben, das in den bereitgestellten Audiodaten erkannt wird. Ein Zeitverschiebungswert gibt die Zeit in Schritten von 100 ms an, die seit Beginn des Audiosignals vergangen ist.

Zeitverschiebungen sind besonders nützlich für die Analyse von längeren Audiodateien, in denen Sie eventuell nach einem bestimmten Wort im erkannten Text suchen und dieses in den Originalaudioinhalten finden möchten. Zeitverschiebungen werden in allen unseren Spracherkennungsmethoden unterstützt: recognize, streamingrecognize und .

Zeitverschiebungswerte werden nur für die erste Alternative der Erkennungsantwort eingefügt.

Sie können den Ergebnissen Ihrer Anfragen Zeitverschiebungen hinzufügen, wenn Sie den Parameter enableWordTimeOffsets in Ihren RecognitionFeatures auf "true" setzen. Beispiele für die Verwendung der REST API oder der Clientbibliotheken finden Sie unter Zeitverschiebungen (Zeitstempel) verwenden. Sie können beispielsweise den Parameter enableWordTimeOffsets in die Anfrage aufnehmen, wie hier gezeigt:

{
    "recognizer": "projects/PROJECT_ID/locations/LOCATION/recognizers/RECOGNIZER_ID",
    "config": {
      "features": {
        "enableWordTimeOffsets": true
      }
    },
    "uri":"gs://gcs-test-data/gettysburg.flac"
}

Das Ergebnis, das von der Speech-to-Text API zurückgegeben wird, enthält Zeitverschiebungswerte für jedes erkannte Wort, wie im Folgenden gezeigt:

{
  "results": [
    {
      "alternatives": [
        {
          "transcript": "Four score and twenty...(etc)...",
          "confidence": 0.97186122,
          "words": [
            {
              "startTime": "1.300s",
              "endTime": "1.400s",
              "word": "Four"
            },
            {
              "startTime": "1.400s",
              "endTime": "1.600s",
              "word": "score"
            },
            {
              "startTime": "1.600s",
              "endTime": "1.600s",
              "word": "and"
            },
            {
              "startTime": "1.600s",
              "endTime": "1.900s",
              "word": "twenty"
            },
            ...
          ]
        }
      ]
    },
    {
      "alternatives": [
        {
          "transcript": "for score and plenty...(etc)...",
          "confidence": 0.9041967,
        }
      ]
    }
  ]
}

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.

Wenn Sie eine Anfrage zur Audiotranskription an Speech-to-Text senden, können Sie die Ergebnisse verbessern, wenn Sie die Quelle der ursprünglichen Audiodaten angeben. Diese Angabe ermöglicht der Speech-to-Text API, Ihre Audiodateien mithilfe eines Modells für maschinelles Lernen zu verarbeiten, das speziell dafür trainiert wurde, gesprochene Sprache aus dieser Art von Quelle zu erkennen.

Wenn Sie ein Modell für die Spracherkennung festlegen möchten, legen Sie das Feld model im Recognizer fest, wenn Sie ihn erstellen, und verweisen Sie dann auf dieses Erkennungsmodul, wenn Sie eine Erkennungsanfrage stellen.

Speech-to-Text kann die folgenden Arten von Modellen für maschinelles Lernen verwenden, um Audiodateien zu transkribieren.

Typ Enum-Konstante Beschreibung
Aktuelle Langversion latest_long

Verwenden Sie dieses Modell für alle Arten von langen Inhalten wie Medien oder spontane Sprache und Unterhaltungen. Verwenden Sie dieses Modell anstelle des Videomodells, insbesondere wenn das Videomodell nicht in Ihrer Zielsprache verfügbar ist. Sie können dies auch anstelle des Standardmodells verwenden.

Aktuelle Kurzversion latest_short

Verwenden Sie dieses Modell für kurze Äußerungen, die einige Sekunden lang sind. Diese Methode ist hilfreich, um Befehle oder andere Anwendungsfälle für die gezielte Sprachausgabe zu erfassen. Verwenden Sie dieses Modell anstelle des Befehls- und Suchmodells.

Telefonkonferenz telephony

Verwenden Sie dieses Modell zum Transkribieren der Audiodaten eines Telefonanrufs. In der Regel werden Smartphone-Audiodaten mit einer Abtastrate von 8.000 Hz aufgezeichnet.

Medizinisches Diktat medical_dictation

Verwenden Sie dieses Modell zum Transkribieren von Notizen, die von medizinischen Fachkräften diktiert wurden.

Medizinisches Gespräch medical_conversation

Verwenden Sie dieses Modell, um Unterhaltungen zwischen einem Arzt und einem Patienten zu transkribieren.

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.

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 Sprachanfrage (im Binärformat, nicht mit base64) auf eine Audiodatei, die sich in Google Cloud Storage befindet. Der Verweis wird im folgenden Format angegeben:

gs://bucket-name/path_to_audio_file

Beispielsweise verweist der folgende Teil einer Sprachanfrage auf die Beispieldatei, die in der Schnellstartanleitung verwendet wird:

...
"uri":"gs://cloud-samples-tests/speech/brooklyn.flac"
...

Sie müssen ein Dienstkonto für Speech-to-Text erstellen und diesem Konto Lesezugriff auf das entsprechende Speicherobjekt gewähren. Führen Sie in Cloud Shell den folgenden Befehl aus, um ein Dienstkonto zu erstellen und aufzurufen, falls es nicht vorhanden ist.

gcloud beta services identity create --service=speech.googleapis.com \
    --project=PROJECT_ID

Wenn Sie aufgefordert werden, die Komponente gcloud Beta Commands zu installieren, geben Sie Y ein. Nach der Installation wird der Befehl automatisch neu gestartet.

Die Dienstkonto-ID ist wie eine E-Mail-Adresse formatiert:

Service identity created: service-xxx@gcp-sa-speech.iam.gserviceaccount.com

Gewähren Sie diesem Konto Lesezugriff auf das relevante Speicherobjekt, auf dem Sie die Erkennung ausführen möchten.

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

Speech-to-Text API-Antworten

Wie bereits erwähnt, kann es einige Zeit dauern, bis durch eine synchrone Speech-to-Text API-Antwort Ergebnisse zurückgegeben werden. Die Dauer hängt von der Länge der bereitgestellten Audiodaten ab. Nach der Verarbeitung gibt die API eine Antwort wie diese zurück:

{
  "results": [
    {
      "alternatives": [
        {
          "confidence": 0.98267895,
          "transcript": "how old is the Brooklyn Bridge"
        }
      ],
     "resultEndOffset": "0.780s",
     "languageCode": "en-US"
    }
  ]
}

Diese Felder werden im Folgenden beschrieben:

  • results: Enthält die Liste der Ergebnisse vom Typ SpeechRecognitionResult, wobei jedes Ergebnis einem Segment der Audiodaten entspricht. Audiosegmente sind durch Pausen voneinander getrennt. Jedes Ergebnis besteht aus einem oder mehreren der folgenden Felder:
    • alternatives enthält eine Liste möglicher Transkriptionen vom Typ SpeechRecognitionAlternative. Ob mehrere Alternativen angezeigt werden, hängt davon ab, ob Sie mehrere Alternativen durch Festlegen von maxAlternatives in RecognitionFeatures auf einen Wert größer als 1 angefordert haben. Es hängt auch davon ab, ob die Qualität der von Speech-to-Text erzeugten Alternativen hoch genug ist. Jede Alternative besteht aus den folgenden Feldern:
      • transcript: Enthält den transkribierten Text. Weitere Informationen finden Sie unten im Abschnitt Transkriptionen behandeln.
      • confidence: Enthält einen Wert zwischen 0 und 1, der angibt, wie hoch Speech-to-Text die Zuverlässigkeit der vorliegenden Transkription einstuft. Weitere Informationen finden Sie nachstehend unter Konfidenzwerte interpretieren.
    • channelTag: Das Kanal-Tag, das dem erkannten Ergebnis für die Audiodaten aus diesem Kanal entspricht. Dies gilt nur für Audio mit mehreren Kanälen.
    • resultEndOffset: Zeitverschiebung des Endes dieses Ergebnisses relativ zum Beginn des Audios.
    • languageCode: Entspricht dem Sprachcode, der in diesem Ergebnis für die Erkennung verwendet wird. Wenn mehrere Sprachcodes für die Erkennung angegeben wurden, entspricht dieser Wert der Sprache, die am wahrscheinlichsten in den Audiodaten gesprochen wird.

Wenn im bereitgestellten Audio keine Sprache erkannt werden konnte, enthält die zurückgegebene results-Liste keine Einträge. Nicht erkannte Sprache ist sehr häufig das Ergebnis von schlechter Audioqualität oder von Sprachcodierungen bzw. Abtastraten, die nicht der bereitgestellten Audiodatei entsprechen.

Die Komponenten dieser Antwort werden in den folgenden Abschnitten erläutert.

Bei jeder synchronen Speech-to-Text API-Antwort wird eine Ergebnisliste statt eines einzelnen Ergebnisses mit allen erkannten Audiodaten zurückgegeben. Die Liste der erkannten Audiosegmente (in den transcript-Elementen) wird 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 maxAlternatives in RecognitionFeatures 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 maxAlternatives 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.

Der folgende Python-Code durchläuft die Ergebnisliste und verkettet die Transkriptionen miteinander. Beachten Sie, dass wir in allen Fällen die erste Alternative (die nullte) verwenden.

response = service_request.execute()
recognized_text = 'Transcribed Text: \n'
for i in range(len(response['results'])):
    recognized_text += response['results'][i]['alternatives'][0]['transcript']

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.

Speech-to-Text API-Anfragen zur Streamingerkennung

Ein Speech-to-Text API-Streamingerkennungsaufruf ist für eine Echtzeiterfassung und -erkennung von Audiodaten in einem bidirektionalen Stream entwickelt worden. Ihre Anwendung kann Audiodaten im Anfragestream senden und vorläufige sowie endgültige Erkennungsergebnisse im Antwortstream in Echtzeit empfangen. Die Zwischenergebnisse geben das aktuelle Erkennungsergebnis für einen Audiobereich wieder, während die endgültigen Erkennungsergebnisse den letzten besten Versuch für diesen Audiobereich darstellen.

Streaminganfragen

Im Gegensatz zum synchronen Verfahren, bei dem Sie sowohl die Konfiguration als auch die Audiodaten innerhalb einer einzigen Anfrage senden, erfordert die Streaminganfrage der Speech API das Senden mehrerer Anfragen. Die erste StreamingRecognizeRequest-Anfrage muss eine Konfiguration vom Typ StreamingRecognitionConfig ohne begleitende Audiodaten enthalten. Die nachfolgenden StreamingRecognizeRequest-Anfragen, die über denselben Stream gesendet werden, bestehen dann aus aufeinanderfolgenden Frames von Roh-Audiobytes.

Eine StreamingRecognitionConfig besteht aus folgenden Feldern:

  • config: Eine optionale Konfiguration vom Typ RecognitionConfig. Die Konfiguration ist die gleiche, die in synchronen Anfragen gezeigt wird.
  • config: Eine optionale Liste von Feldern, die die Werte in der Standard-RecognitionConfig im Recognizer überschreiben. Wenn keine Maske bereit gestellt wird, überschreiben alle nicht standardmäßigen Felder in config die Werte im Recognizer für diese Erkennungsanfrage. Wenn eine Maske bereit gestellt wird, überschreiben die in der Maske aufgeführten Felder die Konfiguration im Recognizer für diese Erkennungsanfrage. Wenn ein Platzhalter (*) angegeben wird, überschreibt config die Konfiguration im Recognizer für diese Erkennungsanfrage vollständig und ersetzt sie.
  • features: Optional. Spracherkennungsfunktionen, die für Anfragen zur Streaming-Audioerkennung aktiviert sind. Weitere Informationen finden Sie unter StreamingRecognitionFeatures.

Streamingantworten

Die Ergebnisse einer Streamingspracherkennung werden in einer Reihe von Antworten vom Typ StreamingRecognitionResponse zurückgegeben. Eine solche Antwort umfasst die folgenden Felder:

  • speechEventType: Enthält Ereignisse vom Typ SpeechEventType. Der Wert dieser Ereignisse weist darauf hin, wann eine einzelne gesprochene Eingabe abgeschlossen ist. Die Sprachereignisse dienen als Marker in der Streamingantwort.
  • results: Enthält die Liste der Ergebnisse, bei denen es sich entweder um Zwischenergebnisse oder endgültige Ergebnisse vom Typ StreamingRecognitionResult handelt. Die results-Liste enthält folgende untergeordnete Felder:
    • alternatives: Enthält eine Liste alternativer Transkriptionen.
    • isFinal: Gibt an, ob die Ergebnisse in diesem Listeneintrag vorläufige oder endgültige Ergebnisse sind. Google kann mehrere isFinal=true-Ergebnisse in einem einzigen Stream zurückgeben, aber das isFinal=true-Ergebnis ist nur garantiert, nachdem der Schreibstream geschlossen wurde (halbgeschlossen).
    • stability: Gibt die bisherige Volatilität der Ergebnisse an, wobei 0.0 auf vollständige Instabilität und 1.0 auf vollständige Stabilität hinweist. Beachten Sie, dass im Gegensatz zum Konfidenzwert, der die Zuverlässigkeit einer Transkription ermittelt, der stability-Wert eine Schätzung darstellt, ob sich das gegenwärtige Teilergebnis noch ändern wird. Wenn isFinal auf true eingestellt ist, wird stability nicht festgelegt.
    • result_end_offset: Zeitverschiebung des Endes dieses Ergebnisses relativ zum Beginn des Audios.
    • channel_tag: Die Kanalnummer, die dem erkannten Ergebnis für die Audiodaten aus diesem Kanal entspricht. Dies gilt nur für Audio mit mehreren Kanälen.
    • language_code: Das BCP-47-Sprachtag der Sprache in diesem Ergebnis.
  • speech_event_offset: Die Zeitverschiebung zwischen dem Beginn der Audio- und der Ereignisemission.
  • metadata: Enthält RecognitionResponseMetadata, das sich auf die Anzahl der in Rechnung gestellten Audiosekunden bezieht.