リージョンのエンドポイントを指定する

Speech-to-Text により、米国と EU のリージョンの API エンドポイントが提供されます。リージョン エンドポイントを使用する場合、保存データと使用中のデータは、ヨーロッパまたは米国の大陸境界内にとどまります。現地の規制要件に合わせてデータのロケーションを制御する必要がある場合は、エンドポイントの指定が重要となります。API の動作に対する機能面の変更はありません。

リージョン エンドポイントを使用する場合は、一致する us または eu のロケーションを parent 文字列に含める必要があります。認識リクエストの本文の構成については、RecognitionConfig のドキュメントをご覧ください。

プロトコル

リージョンのエンドポイントを使用して音声認識を行うには、次の表にあるコマンドを実行して、正しいエンドポイントを構成します。

マルチリージョン エンドポイントのオーバーライド
EU $ export CLOUD_SPEECH_ENDPOINT=https://eu-speech.googleapis.com
US $ export CLOUD_SPEECH_ENDPOINT=https://us-speech.googleapis.com

次のコードサンプルは、すべてのデータを特定のリージョンに制限する recognize request を送信する方法を示しています。CLOUD_SPEECH_ENDPOINT 変数は、EU または 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'
        }
    }"

この例では、Google Cloud CLI を使用して、ユーザー アカウントの認証情報を生成します。gcloud CLI をインストールして初期化する方法については、クイックスタートをご覧ください。

リクエスト本文に含まれる音声コンテンツは、Base64 でエンコードされています。音声を Base64 でエンコードする方法については、Base64 エンコード音声コンテンツをご覧ください。content フィールドの詳細については、RecognitionAudio をご覧ください。

gcloud

次のコマンドは、リージョン エンドポイントを設定します。

マルチリージョン エンドポイントのオーバーライド
EU 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/

リージョン エンドポイントを設定すると、それ以降の recognize requests の送信時に、すべてのデータが指定したリージョンに限定されます。次の例は、認識リクエストを示しています。

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

Python

Speech-to-Text 用のクライアント ライブラリをインストールして使用する方法については、Speech-to-Text クライアント ライブラリをご覧ください。詳細については、Speech-to-Text の Python API リファレンス ドキュメントをご覧ください。

Speech-to-Text に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。


# 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