Specifica di un endpoint a livello di regione

Speech-to-Text offre endpoint API regionali per Stati Uniti e UE. Se utilizzi un endpoint regionale, i dati non attivi e in uso rimarranno entro i 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. Non sono state apportate modifiche funzionali al comportamento dell'API.

Utilizzare endpoint regionali

Quando utilizzi un endpoint regionale, 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 relativa a 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 Override 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 recognize request che mantiene tutti i dati confinati in 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 in base64 dei contenuti audio. Per ulteriori informazioni sul campo content, vedi RecognitionAudio.

gcloud

I seguenti comandi impostano un endpoint regionale:

Più regioni Override 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 verranno 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 la sezione Librerie client di Speech-to-Text. Per saperne di più, 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.


# 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

Limita l'utilizzo degli endpoint API globali

Per contribuire a imporre l'utilizzo di endpoint regionali, utilizza il vincolo del criterio dell'organizzazione constraints/gcp.restrictEndpointUsage per bloccare le richieste all'endpoint API globale. Per ulteriori informazioni, vedi Limitare l'utilizzo degli endpoint.