Transkriptionsergebnisse durch Modellanpassung verbessern

Übersicht

Mit dem Feature Modellanpassung kann Speech-to-Text bestimmte Wörter oder Wortgruppen häufiger erkennen als andere Optionen, die sonst möglicherweise vorgeschlagen werden. Angenommen, Ihre Audiodaten enthalten häufig das Wort "weather" (Wetter). Wenn Speech-to-Text auf das Wort "weather" stößt, soll das Wort häufiger mit "weather" (Wetter) als mit "whether" (ob) transkribiert werden. In diesem Fall können Sie die Modellanpassung einsetzen, um Speech-to-Text auf das Erkennen des Begriffs "weather" auszurichten.

Die Modellanpassung ist in den folgenden Anwendungsfällen besonders hilfreich:

  • Verbesserung der Erkennung von Wörtern und Wortgruppen, die in den Audiodaten häufig vorkommen. Beispielsweise können Sie das Erkennungsmodell auf Sprachbefehle hinweisen, die normalerweise von Ihren Nutzern gesprochen werden.

  • Erweiterung des Vokabulars von Wörtern, die von Speech-to-Text erkannt werden. Speech-to-Text enthält bereits ein sehr umfangreiches Vokabular. Wenn Ihre Audiodaten jedoch häufig Wörter enthalten, die im allgemeinen Sprachgebrauch eher selten sind (z. B. Eigennamen oder themenspezifische Begriffe), können Sie diese mithilfe der Modellanpassung hinzufügen.

  • Verbesserung der Treffsicherheit der Sprachtranskription, wenn der Audioinhalt Rauschen enthält oder nicht klar ist.

Optional können Sie die Gewichtung des Erkennungsmodells mit dem Feature zur Optimierung der Modellanpassung optimieren.

Erkennung von Wörtern und Wortgruppen verbessern

Um die Wahrscheinlichkeit zu erhöhen, dass Speech-to-Text beim Transkribieren Ihrer Audiodaten das Wort "weather" erkennt, können Sie das einzelne Wort "weather" im PhraseSet-Objekt in einer SpeechAdaptation-Ressource übergeben.

Wenn Sie eine Wortgruppe mit mehreren Wörtern bereitstellen, erhöht das die Wahrscheinlichkeit, dass Speech-to-Text diese Wortgruppe korrekt erkennt. Bei Angabe einer Wortgruppe erhöht sich ebenfalls die Wahrscheinlichkeit, dass Teile der Wortgruppe, einschließlich einzelner Wörter, erkannt werden. Unter Limits für Inhalte finden Sie Limits für die Anzahl und Länge dieser Wortgruppen.

Erkennung mithilfe von Klassen verbessern

Klassen stehen für gängige Konzepte, die in natürlicher Sprache vorkommen, z. B. Währungseinheiten und Kalenderdaten. Mit einer Klasse können Sie die Transkriptionsgenauigkeit für große Wortgruppen, die zu einem gemeinsamen Konzept gehören, aber nicht immer identische Wörter oder Wortgruppen enthalten, verbessern.

Angenommen, Ihre Audiodaten enthalten Aufnahmen von Personen, die ihre Adresse nennen. In einer Audioaufnahme sagt jemand vielleicht: "Mein Haus befindet sich in der Hauptstraße 123. Es ist das vierte Haus auf der linken Seite." In diesem Fall soll Speech-to-Text die erste Ziffernfolge ("123") als Adresse und nicht als Ordinalzahl erkennen ("einhundertdreiundzwanzigste"). Allerdings wohnen nicht alle Menschen in der "Hauptstraße 123". Es ist unpraktisch, jede mögliche Adresse in einer PhraseSet-Ressource anzugeben. Stattdessen können Sie mithilfe einer Klasse dafür sorgen, dass eine Hausnummer unabhängig von der tatsächlichen Zahl erkannt wird. In diesem Beispiel könnte Speech-to-Text Wortgruppen wie "Hauptstraße 123" und "Königsallee 987" genauer transkribieren, da die beiden Zahlen als Hausnummern erkannt werden.

Klassentokens

Wenn Sie bei der Modellanpassung eine Klasse verwenden möchten, fügen Sie im Feld phrases einer PhraseSet-Ressource ein Klassentoken ein. In der Liste der unterstützten Klassentokens sehen Sie, welche Tokens für Ihre Sprache verfügbar sind. Wenn Sie beispielsweise die Transkription von Hausnummern aus der Audioquelle verbessern möchten, geben Sie in einer PhraseSet. innerhalb einer Wortgruppe den Wert $ADDRESSNUM an.

Sie können Klassen entweder als eigenständige Elemente im phrases-Array verwenden oder ein oder mehrere Klassentokens in längere Wortgruppen mit mehreren Wörtern einbetten. Beispielsweise können Sie eine Hausnummer in einer größeren Wortgruppe angeben, indem Sie das Klassentoken in einen String einfügen: ["my address is $ADDRESSNUM"]. Diese Wortgruppe ist jedoch nicht hilfreich, wenn die Audiodaten eine zwar ähnliche, aber nicht identische Wortgruppe enthalten, z. B. "Ich bin in der Hauptstraße 123". Um die Erkennung ähnlicher Wortgruppen zu verbessern, ist es wichtig, zusätzlich das Klassentoken für sich allein anzugeben: ["my address is $ADDRESSNUM", "$ADDRESSNUM"]. Wenn Sie ein ungültiges oder falsch formatiertes Klassentoken verwenden, ignoriert Speech-to-Text das Token, ohne einen Fehler auszulösen. Der Rest der Wortgruppe wird aber für den Kontext verwendet.

Benutzerdefinierte Klassen

Sie können auch eine eigene CustomClass erstellen. Dabei handelt es sich um eine Klasse, die aus Ihrer eigenen benutzerdefinierten Liste verwandter Elemente oder Werte besteht. Sie möchten beispielsweise Audiodaten transkribieren, die wahrscheinlich den Namen eines von mehreren hundert regionalen Restaurants enthalten. Restaurantnamen sind in der allgemeinen Sprache relativ selten und werden daher vom Erkennungsmodell wahrscheinlich nicht als „richtige“ Antwort ausgewählt. Sie können das Erkennungsmodell so anpassen, dass diese Namen bei der Identifizierung in Ihren Audiodaten mithilfe einer benutzerdefinierten Klasse korrekt erkannt werden.

Wenn Sie eine benutzerdefinierte Klasse verwenden möchten, erstellen Sie eine CustomClass-Ressource, die jeden Restaurantnamen als ClassItem enthält. Benutzerdefinierte Klassen funktionieren genauso wie die vordefinierten Klassentokens. Eine phrase kann sowohl vordefinierte Klassentokens als auch benutzerdefinierte Klassen enthalten.

Feinabstimmung der Transkriptionsergebnisse mit der Optimierung

Standardmäßig hat die Modellanpassung einen relativ kleinen Effekt, insbesondere bei Wortgruppen mit nur einem Wort. Mit dem Optimierungs-Feature der Modellanpassung können Sie die Gewichtung bestimmter Wortgruppen durch das Erkennungsmodell anpassen. Wir empfehlen die Implementierung von Boost, wenn folgende Bedingungen erfüllt sind:

  1. Sie haben die Modellanpassung bereits implementiert.
  2. Sie möchten die Stärke des Effekts der Modellanpassung in Ihren Transkriptionsergebnissen noch weiter anpassen. Auf der Seite zur Sprachunterstützung können Sie sehen, ob das Optimierungsfeature für Ihre Sprache verfügbar ist.

Angenommen, es gibt viele Aufnahmen von Personen, die nach "fare to get into the county fair" (Fahrpreis für die Fahrt zum Jahrmarkt) fragen, wobei das Wort "fair" häufiger vorkommt als "fare". In diesem Fall können Sie die Modellanpassung verwenden, um die Wahrscheinlichkeit zu erhöhen, dass das Modell sowohl „fair“ als auch „fare“ erkennt. Fügen Sie sie dazu als phrases in eine PhraseSet-Ressource ein. Dadurch wird Speech-to-Text angewiesen, „fair“ und „fare“ häufiger zu erkennen als beispielsweise „hare“ oder „lair“.

Gleichzeitig soll häufiger "fair" als "fare" erkannt werden, da dieses Wort in den Audiodaten öfter vorkommt. Möglicherweise haben Sie Ihre Audiodaten schon mit der Speech-to-Text API transkribiert und eine große Anzahl an Fehlern bei der Erkennung des richtigen Wortes ("fair") gefunden. In diesem Fall können Sie die Optimierungsfunktion verwenden, um "fair" einen höheren Optimierungswert zuzuweisen als "fare". Durch den höher gewichteten Wert, der dem Wort "fair" zugewiesen ist, wird die Speech-to-Text API so konfiguriert, dass sie "fair" häufiger auswählt als "fare". Ohne Optimierungswerte erkennt das Erkennungsmodell "fair" und "fare" mit gleicher Wahrscheinlichkeit.

Optimierungsgrundlagen

Wenn Sie die Optimierung verwenden, weisen Sie phrase-Elementen in einer PhraseSet-Ressource einen Gewichtungswert zu. Speech-to-Text berücksichtigt diesen Gewichtungswert, wenn es eine mögliche Transkription für Wörter in Audiodaten auswählt. Je höher der Wert, desto höher die Wahrscheinlichkeit, dass Speech-to-Text dieses Wort oder die Wortgruppe aus den möglichen Alternativen auswählt.

Wenn Sie einer Wortgruppe mit mehreren Wörtern einen Optimierungswert zuweisen, wird die Optimierung auf die gesamte Wortgruppe und nur auf die gesamte Wortgruppe angewendet. Sie können beispielsweise der Wortgruppe „Meine Lieblingsausstellung im American Museum of Natural History sind die Blauwale“ einen Optimierungswert zuweisen. Wenn Sie diese Wortgruppe einem phrase-Objekt hinzufügen und einen Optimierungswert zuweisen, erkennt das Erkennungsmodell diese Wortgruppe mit größerer Wahrscheinlichkeit in ihrer Gesamtheit.

Wenn Sie nicht die Ergebnisse erhalten, die Sie durch die Optimierung einer Wortgruppe mit mehreren Wörtern erwartet hatten, sollten Sie alle Bigramme (zwei Wörter in einer bestimmten Reihenfolge) aus denen die Wortgruppe besteht, als zusätzliche phrase-Elemente hinzufügen und jedem einen Optimierungswert zuweisen. Bezogen auf das vorherige Beispiel könnten Sie versuchen, zusätzliche Bigramme und Endgramme (mit mehr als zwei Wörtern) hinzuzufügen, z. B. „mein bevorzugtes“, „mein bevorzugtes Exponat“, „bevorzugtes Exponat“, „mein bevorzugtes Exponat im American Museum of Natural History“, „American Museum of Natural History“ und „Blauwal“. Das STT-Erkennungsmodell erkennt dann mit größerer Wahrscheinlichkeit ähnliche Wortgruppen in Ihrem Audio, die Teile der ursprünglichen optimierten Wortgruppe enthalten, aber dieser nicht Wort für Wort entsprechen.

Optimierungswerte festlegen

Optimierungswerte müssen einen Gleitkommawert größer als 0 haben. Die praktische Obergrenze für Optimierungswerte beträgt 20. Um optimale Ergebnisse zu erzielen, sollten Sie mit Ihren Transkriptionsergebnissen experimentieren, indem Sie die Optimierungswerte nach oben oder unten anpassen, bis Sie genauere Transkriptionsergebnisse erhalten.

Durch höhere Optimierungswerte lässt sich die Zahl der falsch-negativen Ergebnisse möglicherweise verringern. Solche Ergebnisse liegen vor, wenn ein Wort oder eine Wortgruppe in den Audiodaten vorkommt, aber von Speech-to-Text nicht richtig erkannt wird. Durch die Optimierung kann aber auch die Wahrscheinlichkeit von falsch-positiven Ergebnissen erhöht werden. Das sind Ergebnisse, bei denen das Wort oder die Wortgruppe in der Transkription vorkommt, obwohl es nicht in den Audiodaten enthalten ist.

Anwendungsfallbeispiel mit Modellanpassung

Im folgenden Beispiel erfahren Sie, wie Sie mithilfe der Modellanpassung einen Audiodatensatz transkribieren, in dem jemand sagt: „The word is fare“. In diesem Fall erkennt Speech-to-Text ohne Sprachanpassung das Wort „fair“. Durch die Sprachanpassung kann Speech-to-Text stattdessen das Wort „fare“ erkennen.

Hinweise

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Speech-to-Text APIs.

    Enable the APIs

  5. Make sure that you have the following role or roles on the project: Cloud Speech Administrator

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role colunn to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      IAM aufrufen
    2. Wählen Sie das Projekt aus.
    3. Klicken Sie auf Zugriff erlauben.
    4. Geben Sie im Feld Neue Hauptkonten Ihre Nutzer-ID ein. Dies ist in der Regel die E-Mail-Adresse eines Google-Kontos.

    5. Wählen Sie in der Liste Rolle auswählen eine Rolle aus.
    6. Wenn Sie weitere Rollen hinzufügen möchten, klicken Sie auf Weitere Rolle hinzufügen und fügen Sie weitere Rollen hinzu.
    7. Klicken Sie auf Speichern.
    8. Install the Google Cloud CLI.
    9. To initialize the gcloud CLI, run the following command:

      gcloud init
    10. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

      Go to project selector

    11. Make sure that billing is enabled for your Google Cloud project.

    12. Enable the Speech-to-Text APIs.

      Enable the APIs

    13. Make sure that you have the following role or roles on the project: Cloud Speech Administrator

      Check for the roles

      1. In the Google Cloud console, go to the IAM page.

        Go to IAM
      2. Select the project.
      3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

      4. For all rows that specify or include you, check the Role colunn to see whether the list of roles includes the required roles.

      Grant the roles

      1. In the Google Cloud console, go to the IAM page.

        IAM aufrufen
      2. Wählen Sie das Projekt aus.
      3. Klicken Sie auf Zugriff erlauben.
      4. Geben Sie im Feld Neue Hauptkonten Ihre Nutzer-ID ein. Dies ist in der Regel die E-Mail-Adresse eines Google-Kontos.

      5. Wählen Sie in der Liste Rolle auswählen eine Rolle aus.
      6. Wenn Sie weitere Rollen hinzufügen möchten, klicken Sie auf Weitere Rolle hinzufügen und fügen Sie weitere Rollen hinzu.
      7. Klicken Sie auf Speichern.
      8. Install the Google Cloud CLI.
      9. To initialize the gcloud CLI, run the following command:

        gcloud init
      10. Clientbibliotheken können Standardanmeldedaten für Anwendungen verwenden, um sich einfach bei Google APIs zu authentifizieren und Anfragen an diese APIs zu senden. Mit den Standardanmeldedaten für Anwendungen können Sie Ihre Anwendung lokal testen und bereitstellen, ohne den zugrunde liegenden Code zu ändern. Weitere Informationen finden Sie unter Authentifizieren Sie sich für die Verwendung von Clientbibliotheken.

      11. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

      Prüfen Sie außerdem, ob Sie die Clientbibliothek installiert haben.

      Transkription mit einem PhraseSet verbessern

      1. Im folgenden Beispiel wird ein PhraseSet mit dem Ausdruck „fare“ erstellt und in einer Erkennungsanfrage als inline_phrase_set hinzugefügt:

      Python

      import os
      
      from google.cloud.speech_v2 import SpeechClient
      from google.cloud.speech_v2.types import cloud_speech
      
      PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")
      
      
      def adaptation_v2_inline_phrase_set(audio_file: str) -> cloud_speech.RecognizeResponse:
          """Enhances speech recognition accuracy using an inline phrase set.
          The inline custom phrase set helps the recognizer produce more accurate transcriptions for specific terms.
          Phrases are given a boost to increase their chances of being recognized correctly.
          Args:
              audio_file (str): Path to the local audio file to be transcribed.
          Returns:
              cloud_speech.RecognizeResponse: The full response object which includes the transcription results.
          """
      
          # Instantiates a client
          client = SpeechClient()
      
          # Reads a file as bytes
          with open(audio_file, "rb") as f:
              audio_content = f.read()
      
          # Build inline phrase set to produce a more accurate transcript
          phrase_set = cloud_speech.PhraseSet(
              phrases=[{"value": "fare", "boost": 10}, {"value": "word", "boost": 20}]
          )
          adaptation = cloud_speech.SpeechAdaptation(
              phrase_sets=[
                  cloud_speech.SpeechAdaptation.AdaptationPhraseSet(
                      inline_phrase_set=phrase_set
                  )
              ]
          )
          config = cloud_speech.RecognitionConfig(
              auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),
              adaptation=adaptation,
              language_codes=["en-US"],
              model="short",
          )
      
          # Prepare the request which includes specifying the recognizer, configuration, and the audio content
          request = cloud_speech.RecognizeRequest(
              recognizer=f"projects/{PROJECT_ID}/locations/global/recognizers/_",
              config=config,
              content=audio_content,
          )
      
          # Transcribes the audio into text
          response = client.recognize(request=request)
      
          for result in response.results:
              print(f"Transcript: {result.alternatives[0].transcript}")
      
          return response
      
      
      1. In diesem Beispiel wird eine PhraseSet-Ressource mit derselben Wortgruppe erstellt und dann wird in einer Erkennungsanfrage darauf verwiesen:

      Python

      import os
      
      from google.cloud.speech_v2 import SpeechClient
      from google.cloud.speech_v2.types import cloud_speech
      
      PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")
      
      
      def adaptation_v2_phrase_set_reference(
          audio_file: str,
          phrase_set_id: str,
      ) -> cloud_speech.RecognizeResponse:
          """Transcribe audio files using a PhraseSet.
          Args:
              audio_file (str): Path to the local audio file to be transcribed.
              phrase_set_id (str): The unique ID of the PhraseSet to use.
          Returns:
              cloud_speech.RecognizeResponse: The full response object which includes the transcription results.
          """
      
          # Instantiates a client
          client = SpeechClient()
      
          # Reads a file as bytes
          with open(audio_file, "rb") as f:
              audio_content = f.read()
      
          # Creating operation of creating the PhraseSet on the cloud.
          operation = client.create_phrase_set(
              parent=f"projects/{PROJECT_ID}/locations/global",
              phrase_set_id=phrase_set_id,
              phrase_set=cloud_speech.PhraseSet(phrases=[{"value": "fare", "boost": 10}]),
          )
          phrase_set = operation.result()
      
          # Add a reference of the PhraseSet into the recognition request
          adaptation = cloud_speech.SpeechAdaptation(
              phrase_sets=[
                  cloud_speech.SpeechAdaptation.AdaptationPhraseSet(
                      phrase_set=phrase_set.name
                  )
              ]
          )
      
          # Automatically detect audio encoding. Use "short" model for short utterances.
          config = cloud_speech.RecognitionConfig(
              auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),
              adaptation=adaptation,
              language_codes=["en-US"],
              model="short",
          )
          #  Prepare the request which includes specifying the recognizer, configuration, and the audio content
          request = cloud_speech.RecognizeRequest(
              recognizer=f"projects/{PROJECT_ID}/locations/global/recognizers/_",
              config=config,
              content=audio_content,
          )
          # Transcribes the audio into text
          response = client.recognize(request=request)
      
          for result in response.results:
              print(f"Transcript: {result.alternatives[0].transcript}")
      
          return response
      
      

      Transkriptionsergebnisse mit einer CustomClass verbessern

      1. Im folgenden Beispiel wird ein CustomClass mit einem Element „fare“ und dem Namen „fare“ erstellt. Anschließend wird auf die CustomClass innerhalb eines inline_phrase_set in einer Erkennungsanfrage verwiesen:

      Python

      import os
      
      from google.cloud.speech_v2 import SpeechClient
      from google.cloud.speech_v2.types import cloud_speech
      
      PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")
      
      
      def adaptation_v2_inline_custom_class(
          audio_file: str,
      ) -> cloud_speech.RecognizeResponse:
          """Transcribe audio file using inline custom class.
          The inline custom class helps the recognizer produce more accurate transcriptions for specific terms.
          Args:
              audio_file (str): Path to the local audio file to be transcribed.
          Returns:
              cloud_speech.RecognizeResponse: The response object which includes the transcription results.
          """
          # Instantiates a client
          client = SpeechClient()
      
          # Reads a file as bytes
          with open(audio_file, "rb") as f:
              audio_content = f.read()
      
          # Define an inline custom class to enhance recognition accuracy with specific items like "fare" etc.
          custom_class_name = "your-class-name"
          custom_class = cloud_speech.CustomClass(
              name=custom_class_name,
              items=[{"value": "fare"}],
          )
      
          # Build inline phrase set to produce a more accurate transcript
          phrase_set = cloud_speech.PhraseSet(
              phrases=[{"value": custom_class_name, "boost": 20}]
          )
          adaptation = cloud_speech.SpeechAdaptation(
              phrase_sets=[
                  cloud_speech.SpeechAdaptation.AdaptationPhraseSet(
                      inline_phrase_set=phrase_set
                  )
              ],
              custom_classes=[custom_class],
          )
          config = cloud_speech.RecognitionConfig(
              auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),
              adaptation=adaptation,
              language_codes=["en-US"],
              model="short",
          )
      
          # Prepare the request which includes specifying the recognizer, configuration, and the audio content
          request = cloud_speech.RecognizeRequest(
              recognizer=f"projects/{PROJECT_ID}/locations/global/recognizers/_",
              config=config,
              content=audio_content,
          )
      
          # Transcribes the audio into text
          response = client.recognize(request=request)
      
          for result in response.results:
              print(f"Transcript: {result.alternatives[0].transcript}")
      
          return response
      
      
      1. In diesem Beispiel wird eine CustomClass-Ressource mit demselben Element erstellt. Anschließend wird eine PhraseSet-Ressource mit einer Wortgruppe erstellt, die auf den CustomClass-Ressourcennamen verweist. Anschließend wird auf die PhraseSet-Ressource in einer Erkennungsanfrage verwiesen:

      Python

      import os
      
      from google.cloud.speech_v2 import SpeechClient
      from google.cloud.speech_v2.types import cloud_speech
      
      PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")
      
      
      def adaptation_v2_custom_class_reference(
          audio_file: str, phrase_set_id: str, custom_class_id: str
      ) -> cloud_speech.RecognizeResponse:
          """Transcribe audio file using a custom class.
          Args:
              audio_file (str): Path to the local audio file to be transcribed.
              phrase_set_id (str): The unique ID of the phrase set to use.
              custom_class_id (str): The unique ID of the custom class to use.
          Returns:
              cloud_speech.RecognizeResponse: The full response object which includes the transcription results.
          """
          # Instantiates a speech client
          client = SpeechClient()
      
          # Reads a file as bytes
          with open(audio_file, "rb") as f:
              audio_content = f.read()
      
          # Create a custom class to improve recognition accuracy for specific terms
          custom_class = cloud_speech.CustomClass(items=[{"value": "fare"}])
          operation = client.create_custom_class(
              parent=f"projects/{PROJECT_ID}/locations/global",
              custom_class_id=custom_class_id,
              custom_class=custom_class,
          )
          custom_class = operation.result()
      
          # Create a persistent PhraseSet to reference in a recognition request
          created_phrase_set = cloud_speech.PhraseSet(
              phrases=[
                  {
                      "value": f"${{{custom_class.name}}}",
                      "boost": 20,
                  },  # Using custom class reference
              ]
          )
          operation = client.create_phrase_set(
              parent=f"projects/{PROJECT_ID}/locations/global",
              phrase_set_id=phrase_set_id,
              phrase_set=created_phrase_set,
          )
          phrase_set = operation.result()
      
          # Add a reference of the PhraseSet into the recognition request
          adaptation = cloud_speech.SpeechAdaptation(
              phrase_sets=[
                  cloud_speech.SpeechAdaptation.AdaptationPhraseSet(
                      phrase_set=phrase_set.name
                  )
              ]
          )
          # Automatically detect the audio's encoding with short audio model
          config = cloud_speech.RecognitionConfig(
              auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),
              adaptation=adaptation,
              language_codes=["en-US"],
              model="short",
          )
      
          # Create a custom class to reference in a PhraseSet
          request = cloud_speech.RecognizeRequest(
              recognizer=f"projects/{PROJECT_ID}/locations/global/recognizers/_",
              config=config,
              content=audio_content,
          )
      
          # Transcribes the audio into text
          response = client.recognize(request=request)
      
          for result in response.results:
              print(f"Transcript: {result.alternatives[0].transcript}")
      
          return response
      
      

      Bereinigen

      Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen in Rechnung gestellt werden:

      1. Optional: Revoke the authentication credentials that you created, and delete the local credential file.

        gcloud auth application-default revoke
      2. Optional: Revoke credentials from the gcloud CLI.

        gcloud auth revoke

      Console

    14. In the Google Cloud console, go to the Manage resources page.

      Go to Manage resources

    15. In the project list, select the project that you want to delete, and then click Delete.
    16. In the dialog, type the project ID, and then click Shut down to delete the project.
    17. gcloud

      Delete a Google Cloud project:

      gcloud projects delete PROJECT_ID

      Nächste Schritte