Inviare una richiesta di riconoscimento con adattamento del modello

Puoi migliorare l'accuratezza dei risultati della trascrizione che ottieni da Speech-to-Text utilizzando l'adattamento del modello. La funzionalità di adattamento del modello ti consente di specificare parole e/o frasi che Speech-to-Text deve riconoscere più frequentemente nei tuoi dati audio rispetto ad altre alternative che altrimenti potrebbero essere suggerite. L'adattamento del modello è particolarmente utile per migliorare l'accuratezza della trascrizione nei seguenti casi d'uso:

  1. L'audio contiene parole o frasi che si verificano probabilmente con frequenza.
  2. L'audio probabilmente contiene parole rare (come nomi propri) o parole che non esistono nell'uso comune.
  3. L'audio contiene rumore o non è molto chiaro.

Per ulteriori informazioni sull'utilizzo di questa funzionalità, consulta Miglioramento dei risultati della trascrizione con l'adattamento del modello. Per informazioni sui limiti di frasi e caratteri per richiesta di adattamento del modello, consulta Quote e limiti. Non tutti i modelli supportano l'adattamento del parlato. Consulta la sezione Lingue supportate per scoprire quali modelli supportano l'adattamento.

Esempio di codice

L'adattamento vocale è una configurazione facoltativa di Speech-to-Text che puoi utilizzare per personalizzare i risultati della trascrizione in base alle tue esigenze. Per ulteriori informazioni sulla configurazione del corpo della richiesta di riconoscimento, consulta la documentazione RecognitionConfig.

Il seguente esempio di codice mostra come migliorare l'accuratezza della trascrizione utilizzando una risorsa SpeechAdaptation: PhraseSet, CustomClass, e miglioramento dell'adattamento del modello. Per utilizzare un PhraseSet o un CustomClass nelle richieste future, prendi nota della relativa risorsa name, restituita nella risposta quando crei la risorsa.

Per un elenco delle classi predefinite disponibili per la tua lingua, consulta Token di classe supportati.

Python

Per scoprire come installare e utilizzare la libreria client per Speech-to-Text, consulta la sezione Librerie client di Speech-to-Text. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Speech-to-Text per Python.

Per autenticarti in Speech-to-Text, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

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}")