Especificar um endpoint regional

A Speech-to-Text oferece endpoints de API regionais dos EUA e da UE. Se você usar um endpoint regional, os dados em repouso e em uso vão permanecer dentro dos limites continentais da Europa ou dos EUA. Especificar um endpoint é importante quando o local dos dados precisa ser controlado para cumprir os requisitos regulamentares locais. Não há alteração funcional no comportamento da API.

Usar endpoints regionais

Ao usar um endpoint regional, inclua o local us ou eu correspondente na string parent. Consulte a documentação RecognitionConfig para saber como configurar o corpo da solicitação de reconhecimento.

Protocolo

Para realizar o reconhecimento de fala usando um endpoint regional, execute o comando aplicável na tabela abaixo para configurar o endpoint correto:

Multirregional Substituição do endpoint
UE $ export CLOUD_SPEECH_ENDPOINT=https://eu-speech.googleapis.com
EUA $ export CLOUD_SPEECH_ENDPOINT=https://us-speech.googleapis.com

O exemplo de código a seguir demonstra como enviar um recognize request que mantém todos os dados restritos a uma região específica. É possível substituir o endpoint regional EU ou US pela variável 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'
        }
    }"

Esse exemplo usa a CLI do Google Cloud para gerar credenciais para a conta de usuário. Para saber como instalar e inicializar a gcloud CLI, consulte o guia de início rápido.

O conteúdo de áudio fornecido no corpo da solicitação está codificado em Base64. Para saber como codificar áudios em Base64, consulte Como codificar conteúdos de áudio em Base64. Para saber mais sobre o campo content, consulte RecognitionAudio.

gcloud

Os comandos abaixo definem um endpoint regional:

Multirregional Substituição do endpoint
UE gcloud config set api_endpoint_overrides/speech https://eu-speech.googleapis.com/
EUA gcloud config set api_endpoint_overrides/speech https://us-speech.googleapis.com/

Depois que você definir o endpoint regional, todos os dados serão limitados à região especificada quando você enviar o recognize requests. O exemplo a seguir demonstra uma solicitação de reconhecimento.

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

Python

Para aprender a instalar e usar a biblioteca de cliente da Speech-to-Text, consulte Bibliotecas de cliente da Speech-to-Text. Para mais informações, consulte a documentação de referência da API Speech-to-Text Python.

Para se autenticar na Speech-to-Text, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.


# 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

Restringir o uso de endpoints de API globais

Para ajudar na aplicação do uso de endpoints regionais, utilize a restrição de política da organização constraints/gcp.restrictEndpointUsage para bloquear solicitações ao endpoint da API global. Para mais informações, consulte Restringir o uso de endpoints.