Envoyer une requête de reconnaissance avec l'adaptation de modèle

Vous pouvez améliorer la précision des résultats de transcription obtenus avec Speech-to-Text grâce à l'adaptation de modèle. La fonctionnalité d'adaptation de modèle vous permet de spécifier des mots et/ou des expressions que STT doit reconnaître plus souvent dans vos données audio que d'autres alternatives qui pourraient être suggérées. L'adaptation de modèle est particulièrement utile pour améliorer la précision de la transcription dans les cas d'utilisation suivants:

  1. Vos données audio contiennent des mots ou des expressions qui sont susceptibles d'apparaître très fréquemment.
  2. Vos données audio contiennent probablement des mots rares (tels que des noms propres) ou des mots qui n'existent pas dans le langage courant.
  3. Vos données audio contiennent du bruit ou manquent de clarté.

Pour en savoir plus sur l'utilisation de cette fonctionnalité, consultez la page Concepts d'adaptation de modèle.

L'exemple de code suivant montre comment améliorer la précision de la transcription à l'aide d'une ressource SpeechAdaptation : PhraseSet, CustomClass et boost des adaptations de modèle. Consultez la page des jetons de classe pour obtenir la liste des classes prédéfinies disponibles pour votre langage.

Python


from google.cloud import speech_v1p1beta1 as speech

def transcribe_with_model_adaptation(
    project_id, location, storage_uri, custom_class_id, phrase_set_id
):

    """
    Create`PhraseSet` and `CustomClasses` to create custom lists of similar
    items that are likely to occur in your input data.
    """

    # 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
    custom_class_response = 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 = custom_class_response.name
    # 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,
    )

    # The name of the audio file to transcribe
    # storage_uri URI for audio file in Cloud Storage, e.g. gs://[BUCKET]/[FILE]

    audio = speech.RecognitionAudio(uri=storage_uri)

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

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

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