Regionalen Endpunkt angeben

Speech-to-Text bietet regionale API-Endpunkte für die USA und EU. Wenn Sie einen regionalen Endpunkt verwenden, bleiben Ihre inaktiven und verwendeten Daten innerhalb der kontinentalen Grenzen von Europa oder den USA. Die Angabe eines Endpunkts ist wichtig, wenn der Standort Ihrer Daten lokalen gesetzlichen Anforderungen genügen muss. Das Verhalten der API bleibt unverändert.

Wenn Sie einen regionalen Endpunkt verwenden, müssen Sie den entsprechenden us- oder eu-Standort in den parent-String aufnehmen. Weitere Informationen zum Konfigurieren des Texts der Erkennungsanfrage finden Sie in der RecognitionConfig-Dokumentation.

Protokoll

Wenn Sie eine Spracherkennung mit einem regionalen Endpunkt ausführen möchten, führen Sie den entsprechenden Befehl in der folgenden Tabelle aus, um den richtigen Endpunkt zu konfigurieren:

Mehrere Regionen Endpunktüberschreibung
EU $ export CLOUD_SPEECH_ENDPOINT=https://eu-speech.googleapis.com
USA $ export CLOUD_SPEECH_ENDPOINT=https://us-speech.googleapis.com

Im folgenden Codebeispiel wird gezeigt, wie Sie ein recognize request senden, das alle Daten auf eine bestimmte Region beschränkt. Sie können den regionalen EU- oder US-Endpunkt durch die CLOUD_SPEECH_ENDPOINT-Variable ersetzen.


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

In diesem Beispiel werden die Google Cloud CLI verwendet, um Anmeldedaten für Ihr Nutzerkonto zu generieren. Informationen zum Installieren und Initialisieren der gcloud CLI finden Sie in der Kurzanleitung.

Der im Anfragetext bereitgestellte Audioinhalt ist base64-codiert. Weitere Informationen zur base64-Codierung erhalten Sie unter base64-Codierung von Audioinhalten. Weitere Informationen zum Feld content finden Sie unter RecognitionAudio.

gcloud

Mit folgenden Befehlen wird ein regionaler Endpunkt festgelegt:

Mehrere Regionen Endpunktüberschreibung
EU gcloud config set api_endpoint_overrides/speech https://eu-speech.googleapis.com/
USA gcloud config set api_endpoint_overrides/speech https://us-speech.googleapis.com/

Nachdem Sie den regionalen Endpunkt festgelegt haben, werden alle Daten auf die angegebene Region beschränkt, wenn Sie nachfolgende recognize requests senden. Das folgende Beispiel zeigt eine Erkennungsanfrage.

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

Python

Informationen zum Installieren und Verwenden der Clientbibliothek für Speech-to-Text finden Sie unter Speech-to-Text-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Speech-to-Text Python API.

Richten Sie zur Authentifizierung bei Speech-to-Text Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.


# 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