Erkennungsanfrage mit Modellanpassung senden

Mit der Modellanpassung können Sie die Genauigkeit der Transkriptionsergebnisse verbessern, die Sie von Speech-to-Text erhalten. Mit der Funktion zur Modellanpassung können Sie Wörter und/oder Wortgruppen angeben, die von Speech-to-Text in Ihren Audiodaten häufiger erkannt werden müssen als andere Alternativen. Die Modellanpassung ist in den folgenden Anwendungsfällen besonders nützlich, um die Transkriptionsgenauigkeit zu verbessern:

  1. Ihr Audio enthält Wörter oder Wortgruppen, die möglicherweise häufig auftreten.
  2. Ihre Audiodaten enthalten wahrscheinlich seltene Wörter (z. B. Eigennamen) oder Wörter, die nicht zum üblichen Sprachgebrauch gehören.
  3. Ihre Audiodateien enthalten Rauschen oder sind anderweitig undeutlich.

Weitere Informationen zur Verwendung dieser Funktion finden Sie unter Transkriptionsergebnisse mit Modellanpassung verbessern. Informationen zu Wortgruppen- und Zeichenlimits pro Modellanpassungsanfrage finden Sie unter Kontingente und Limits. Nicht alle Modelle unterstützen die Sprachanpassung. Unter Sprachunterstützung können Sie sehen, welche Modelle die Anpassung unterstützen.

Codebeispiel

Die Sprachanpassung ist eine optionale Speech-to-Text-Konfiguration, mit der Sie Ihre Transkriptionsergebnisse an Ihre Anforderungen anpassen können. Weitere Informationen zum Konfigurieren des Texts der Erkennungsanfrage finden Sie in der RecognitionConfig-Dokumentation.

Im folgenden Codebeispiel wird gezeigt, wie Sie die Transkriptionsgenauigkeit mit einer SpeechAdaptation-Ressource verbessern können: PhraseSet, CustomClass und optimierte Modellanpassung. Notieren Sie sich zur Verwendung von PhraseSet oder CustomClass in zukünftigen Anfragen die zugehörige Ressource name, die beim Erstellen der Ressource in der Antwort zurückgegeben wird.

Eine Liste der für Ihre Sprache verfügbaren vordefinierten Klassen finden Sie unter Unterstützte Klassentokens.

Python

Informationen zum Installieren und Verwenden der Clientbibliothek für Speech-to-Text finden Sie unter Speech-to-Text-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Speech-to-Text Python API.

Richten Sie zur Authentifizierung bei Speech-to-Text Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

import os

from google.cloud import speech_v1p1beta1 as speech

PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")


def transcribe_with_model_adaptation(
    audio_uri: str,
    custom_class_id: str,
    phrase_set_id: str,
) -> str:
    """Create `PhraseSet` and `CustomClasses` for custom item lists in input data.
    Args:
        audio_uri (str): The Cloud Storage URI of the input audio. e.g. gs://[BUCKET]/[FILE]
        custom_class_id (str): The unique ID of the custom class to create
        phrase_set_id (str): The unique ID of the PhraseSet to create.
    Returns:
        The transcript of the input audio.
    """
    # Specifies the location where the Speech API will be accessed.
    location = "global"

    # Audio object
    audio = speech.RecognitionAudio(uri=audio_uri)

    # Create the adaptation client
    adaptation_client = speech.AdaptationClient()

    # The parent resource where the custom class and phrase set will be created.
    parent = f"projects/{PROJECT_ID}/locations/{location}"

    # Create the custom class resource
    adaptation_client.create_custom_class(
        {
            "parent": parent,
            "custom_class_id": custom_class_id,
            "custom_class": {
                "items": [
                    {"value": "sushido"},
                    {"value": "altura"},
                    {"value": "taneda"},
                ]
            },
        }
    )
    custom_class_name = (
        f"projects/{PROJECT_ID}/locations/{location}/customClasses/{custom_class_id}"
    )
    # Create the phrase set resource
    phrase_set_response = adaptation_client.create_phrase_set(
        {
            "parent": parent,
            "phrase_set_id": phrase_set_id,
            "phrase_set": {
                "boost": 10,
                "phrases": [
                    {"value": f"Visit restaurants like ${{{custom_class_name}}}"}
                ],
            },
        }
    )
    phrase_set_name = phrase_set_response.name
    # The next section shows how to use the newly created custom
    # class and phrase set to send a transcription request with speech adaptation

    # Speech adaptation configuration
    speech_adaptation = speech.SpeechAdaptation(phrase_set_references=[phrase_set_name])

    # speech configuration object
    config = speech.RecognitionConfig(
        encoding=speech.RecognitionConfig.AudioEncoding.LINEAR16,
        sample_rate_hertz=24000,
        language_code="en-US",
        adaptation=speech_adaptation,
    )

    # Create the speech client
    speech_client = speech.SpeechClient()

    response = speech_client.recognize(config=config, audio=audio)

    for result in response.results:
        print(f"Transcript: {result.alternatives[0].transcript}")