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 trânsito e em repouso permanecerão dentro dos limites continentais da Europa ou dos EUA. Especificar um endpoint é importante se o local dos dados precisar ser controlado para cumprir os requisitos regulamentares locais. Não há alteração funcional no comportamento da API.

Ao usar um endpoint regional, inclua o local us ou eu correspondente na string parent. Consulte a documentação RecognitionConfig para mais informações sobre 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 Modificaçã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 application-default 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'
        }
    }"

Neste exemplo, é usado o token de acesso de uma conta de serviço configurada para o projeto que usa o Google Cloud CLI. Para instruções sobre como instalar a gcloud CLI, configurar um projeto com uma conta de serviço e receber um token de acesso, consulte o guia de início rápido.

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

gcloud

Os comandos a seguir definem um endpoint regional:

Multirregional Modificaçã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 de definir o endpoint regional, todos os dados serão limitados à região especificada quando você enviar recognize requests subsequente. 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


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

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