Especificar un endpoint regional

Speech-to-Text ofrece endpoints de API regionales de EE. UU. y la Unión Europea. Si usas un endpoint regional, tus datos en reposo y en uso permanecerán dentro de las fronteras continentales de Europa o de EE. UU. Es importante especificar un endpoint si la ubicación de tus datos debe controlarse para cumplir los requisitos normativos locales. No se ha producido ningún cambio funcional en el comportamiento de la API.

Usar endpoints regionales

Cuando uses un endpoint regional, asegúrate de incluir la ubicación us o eu correspondiente en la cadena parent. Consulta la documentación de RecognitionConfig para obtener más información sobre cómo configurar el cuerpo de la solicitud de reconocimiento.

Protocolo

Para realizar el reconocimiento de voz mediante un endpoint regional, ejecuta el comando correspondiente de la tabla que aparece a continuación para configurar el endpoint correcto:

Multirregional Sustitución de endpoint
Unión Europea $ export CLOUD_SPEECH_ENDPOINT=https://eu-speech.googleapis.com
US $ export CLOUD_SPEECH_ENDPOINT=https://us-speech.googleapis.com

En el siguiente ejemplo de código se muestra cómo enviar un recognize request que mantiene todos los datos confinados en una región específica. Puedes sustituir la variable CLOUD_SPEECH_ENDPOINT por el endpoint regional EU o US.

$ 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'
        }
    }"

En este ejemplo se usa la CLI de Google Cloud para generar credenciales para tu cuenta de usuario. Para obtener información sobre cómo instalar e inicializar gcloud CLI, consulta la guía de inicio rápido.

El contenido de audio proporcionado en el cuerpo de la solicitud está codificado en Base64. Para obtener más información sobre cómo codificar audio en Base64, consulta Codificar contenido de audio en Base64. Para obtener más información sobre el campo content, consulta RecognitionAudio.

gcloud

Los siguientes comandos definen un endpoint regional:

Multirregional Sustitución de endpoint
Unión Europea 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/

Una vez que haya definido el endpoint regional, todos los datos se limitarán a la región especificada cuando envíe recognize requests posteriores. En el siguiente ejemplo se muestra una solicitud de reconocimiento.

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

Python

Para saber cómo instalar y usar la biblioteca de cliente de Speech-to-Text, consulta el artículo Bibliotecas de cliente de Speech-to-Text. Para obtener más información, consulta la documentación de referencia de la API Python Speech-to-Text.

Para autenticarte en Speech-to-Text, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo 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 el uso de endpoints de API globales

Para ayudar a aplicar el uso de endpoints regionales, usa la restricción de política de organización constraints/gcp.restrictEndpointUsage para bloquear las solicitudes al endpoint de la API global. Para obtener más información, consulta Restringir el uso de endpoints.