리전 엔드포인트 지정

Speech-to-Text는 미국 및 EU 리전 API 엔드포인트를 제공합니다. 리전 엔드포인트를 사용할 경우 저장 데이터 및 사용 중인 데이터는 유럽 또는 미국의 대륙 경계 내에 유지됩니다. 엔드포인트 지정은 현지 규제 요건을 준수하기 위해 데이터 위치를 제어해야 하는 경우에 중요합니다. API의 동작에 대한 기능 변경사항은 없습니다.

리전 엔드포인트를 사용하는 경우 parent 문자열에 일치하는 us 또는 eu 위치를 포함해야 합니다. 인식 요청 본문 구성에 대한 자세한 내용은 RecognitionConfig 문서를 참조하세요.

프로토콜

리전 엔드포인트를 사용하여 음성 인식을 수행하려면 아래 표에서 해당 명령어를 실행하여 올바른 엔드포인트를 구성합니다.

멀티 리전 엔드포인트 재정의
EU $ export CLOUD_SPEECH_ENDPOINT=https://eu-speech.googleapis.com
US $ export CLOUD_SPEECH_ENDPOINT=https://us-speech.googleapis.com

다음 코드 샘플은 모든 데이터를 지정된 리전으로 제한하는 recognize request를 전송하는 방법을 보여줍니다. EU 또는 US 리전 엔드포인트를 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'
        }
    }"

이 예시에서는 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