Specifica di un endpoint a livello di regione

Speech-to-Text offre endpoint API regionali per gli Stati Uniti e l'UE. Se utilizzi un endpoint regionale, i tuoi dati non attivi e in uso rimarranno all'interno dei confini continentali dell'Europa o degli Stati Uniti. La specifica di un endpoint è importante se la posizione dei dati deve essere controllata per rispettare i requisiti normativi locali. Il comportamento dell'API non subirà modifiche.

Quando utilizzi un endpoint a livello di regione, assicurati di includere la località us o eu corrispondente nella stringa parent. Per ulteriori informazioni sulla configurazione del corpo della richiesta di riconoscimento, consulta la documentazione di RecognitionConfig.

Protocollo

Per eseguire il riconoscimento vocale utilizzando un endpoint regionale, esegui il comando applicabile nella tabella seguente per configurare l'endpoint corretto:

Più regioni Sostituzione dell'endpoint
UE $ export CLOUD_SPEECH_ENDPOINT=https://eu-speech.googleapis.com
US $ export CLOUD_SPEECH_ENDPOINT=https://us-speech.googleapis.com

Il seguente esempio di codice mostra come inviare un messaggio recognize request che limita tutti i dati a una regione specificata. Puoi sostituire l'endpoint regionale EU o US con la variabile CLOUD_SPEECH_ENDPOINT.

$ curl   -H "Content-Type: application/json"  \
         -H  "Authorization: Bearer "$(gcloud auth print-access-token)   \
          $CLOUD_SPEECH_ENDPOINT/v1/speech:recognize \
         --data "{
        'config': {
            'encoding': 'LINEAR16',
            'languageCode': 'en-US'
        },
        'audio': {
            'uri':'gs://speech-samples-00/commercial_mono.wav'
        }
    }"

Questo esempio utilizza Google Cloud CLI per generare le credenziali per il tuo account utente. Per scoprire come installare e inizializzare gcloud CLI, consulta la guida rapida.

I contenuti audio forniti nel corpo della richiesta sono codificati in base64. Per ulteriori informazioni su come codificare l'audio in base64, consulta Codifica dei contenuti audio in base64. Per ulteriori informazioni sul campo content, consulta RecognitionAudio.

gcloud

I seguenti comandi impostano un endpoint a livello di regione:

Più regioni Sostituzione dell'endpoint
UE gcloud config set api_endpoint_overrides/speech https://eu-speech.googleapis.com/
US gcloud config set api_endpoint_overrides/speech https://us-speech.googleapis.com/

Dopo aver impostato l'endpoint regionale, tutti i dati saranno limitati alla regione specificata quando invii recognize requests successivi. L'esempio seguente mostra una richiesta di riconoscimento.

$ gcloud ml speech recognize gs://cloud-samples-tests/speech/brooklyn.flac \
    --language-code=en-US --log-http

Python

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

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


# Imports the Google Cloud client library
from google.api_core import client_options
from google.cloud import speech


def sync_recognize_with_multi_region_gcs() -> speech.RecognizeResponse:
    """Recognizes speech synchronously in the GCS bucket."""

    # Instantiates a client

    # Pass an additional argument, ClientOptions, to specify the new endpoint.
    _client_options = client_options.ClientOptions(
        api_endpoint="eu-speech.googleapis.com"
    )

    client = speech.SpeechClient(client_options=_client_options)

    # The name of the audio file to transcribe
    gcs_uri = "gs://cloud-samples-data/speech/brooklyn_bridge.raw"

    audio = speech.RecognitionAudio(uri=gcs_uri)

    config = speech.RecognitionConfig(
        encoding=speech.RecognitionConfig.AudioEncoding.LINEAR16,
        sample_rate_hertz=16000,
        language_code="en-US",
    )

    # Detects speech in the audio file
    response = client.recognize(config=config, audio=audio)

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

    return response.results