Spécifier un point de terminaison régional

Speech-to-Text propose des points de terminaison d'API régionaux aux États-Unis et dans l'UE. Si vous utilisez un point de terminaison régional, vos données au repos et en cours d'utilisation resteront dans les limites géographiques de l'Europe ou des États-Unis. La spécification d'un point de terminaison est importante si l'emplacement de vos données doit être contrôlé afin de respecter les exigences réglementaires locales. Il n'y a aucune modification fonctionnelle du comportement de l'API.

Lorsque vous utilisez un point de terminaison régional, assurez-vous d'inclure l'emplacement us ou eu correspondant dans la chaîne parent. Pour en savoir plus sur la configuration du corps de la requête de reconnaissance, consultez la documentation sur RecognitionConfig.

Protocole

Pour effectuer une reconnaissance vocale à l'aide d'un point de terminaison régional, exécutez la commande applicable décrite dans le tableau ci-dessous afin de configurer le point de terminaison approprié :

Multirégional Remplacement de point de terminaison
UE $ export CLOUD_SPEECH_ENDPOINT=https://eu-speech.googleapis.com
États-Unis $ export CLOUD_SPEECH_ENDPOINT=https://us-speech.googleapis.com

L'exemple de code suivant montre comment envoyer une requête de reconnaissance recognize request qui conserve toutes les données confinées dans une région spécifiée. Vous pouvez remplacer le point de terminaison régional EU ou US par la variable 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'
        }
    }"

Cet exemple utilise Google Cloud CLI afin de générer des identifiants pour votre compte utilisateur. Pour savoir comment installer et initialiser gcloud CLI, consultez le guide de démarrage rapide.

Le contenu audio fourni dans le corps de la requête est encodé en base64. Pour obtenir plus d'informations sur l'encodage de contenus audio en base64, consultez la page Encoder du contenu audio en base64. Pour en savoir plus sur le champ content, consultez la documentation sur RecognitionAudio.

gcloud

Les commandes suivantes définissent un point de terminaison régional :

Multirégional Remplacement de point de terminaison
UE gcloud config set api_endpoint_overrides/speech https://eu-speech.googleapis.com/
États-Unis gcloud config set api_endpoint_overrides/speech https://us-speech.googleapis.com/

Une fois que vous avez défini le point de terminaison régional, toutes les données sont limitées à la région spécifiée lorsque vous envoyez des requêtes recognize requests. L'exemple suivant illustre une requête de reconnaissance.

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

Python

Pour savoir comment installer et utiliser la bibliothèque cliente pour Speech-to-Text, consultez la page Bibliothèques clientes Speech-to-Text. Pour en savoir plus, consultez la documentation de référence de l'API Speech-to-Text en langage Python.

Pour vous authentifier auprès de Speech-to-Text, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement 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