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 a livello di regione, i dati at-rest e in uso rimarranno in vigore entro i confini continentali dell'Europa o degli Stati Uniti. Specifica di un endpoint è importante se la posizione dei dati deve essere controllata per rispettare 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. Consulta le RecognitionConfig documentazione per ulteriori informazioni sulla configurazione della richiesta di riconoscimento del testo.

Protocollo

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

Più regioni Override 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 con gcloud CLI, consulta guida rapida.

I contenuti audio forniti nel corpo della richiesta sono codificati in base64. Per ulteriori informazioni su come codificare l'audio in base64, vedi Contenuti audio con codifica Base64. Per ulteriori informazioni sul campo content, consulta RecognitionAudio.

gcloud

I comandi seguenti impostano un endpoint a livello di regione:

Più regioni Override 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 a livello di regione, tutti i dati saranno limitati all'endpoint specificato regione quando invii recognize requests in un secondo momento. 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, vedi Librerie client di Speech-to-Text. Per ulteriori informazioni, consulta API Python Speech-to-Text documentazione di riferimento.

Per eseguire l'autenticazione a Speech-to-Text, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi 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