Invia una richiesta di riconoscimento con adattamento del modello

Puoi migliorare l'accuratezza dei risultati della trascrizione ottenuti da Speech-to-Text utilizzando l'adattamento del modello. La funzionalità di adattamento del modello consente di specificare parole e/o frasi che Speech-to-Text deve riconoscere più frequentemente nei tuoi dati audio rispetto ad altre alternative che potrebbero essere suggerite in altro modo. 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 probabilmente ricorrono spesso.
  2. È probabile che l'audio contenga parole rare (ad esempio nomi propri) o parole che non esistono in genere.
  3. L'audio contiene rumore o non è molto chiaro.

Per ulteriori informazioni sull'uso di questa funzionalità, consulta Migliorare i 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 vocale. Consulta la pagina Supporto delle lingue per vedere 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 relativa a RecognitionConfig.

Il seguente esempio di codice mostra come migliorare l'accuratezza della trascrizione utilizzando una risorsa SpeechAdaptation: PhraseSet, CustomClass e incremento di adattamento del modello. Per utilizzare PhraseSet o CustomClass nelle richieste future, prendi nota della relativa risorsa name, che viene restituita nella risposta al momento della creazione della 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 pagina relativa alle librerie client di Speech-to-Text. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Speech-to-Text Python.

Per eseguire l'autenticazione a Speech-to-Text, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.


from google.cloud import speech_v1p1beta1 as speech

def transcribe_with_model_adaptation(
    project_id: str,
    location: str,
    storage_uri: str,
    custom_class_id: str,
    phrase_set_id: str,
) -> str:
    """Create`PhraseSet` and `CustomClasses` to create custom lists of similar
    items that are likely to occur in your input data.

    Args:
        project_id: The GCP project ID.
        location: The GCS location of the input audio.
        storage_uri: The Cloud Storage URI of the input audio.
        custom_class_id: The ID of the custom class to create

    Returns:
        The transcript of the input audio.
    """

    # 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,
    )

    # 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(f"Transcript: {result.alternatives[0].transcript}")