오류 메시지

Speech-to-Text에서 발생한 몇 가지 오류를 해결하는 방법을 알아봅니다. 이 페이지에서는 오류 메시지에 간단히 설명된 것 이상으로 추가 단계가 필요한 오류에 대해 설명합니다.

'애플리케이션 기본 사용자 인증 정보를 사용할 수 없습니다'

다음과 같은 메시지가 표시될 경우:

The Application Default Credentials are not available. They are
available if running in Google Compute Engine. Otherwise, the
environment variable GOOGLE_APPLICATION_CREDENTIALS must be defined
pointing to a file defining the credentials.
See https://developers.google.com/accounts/docs/application-default-credentials
for more information.

Speech-to-Text는 인증에 애플리케이션 기본 사용자 인증 정보 (ADC)를 사용합니다.

ADC의 사용자 인증 정보는 Speech-to-Text API를 호출하는 컨텍스트 내에서 사용할 수 있어야 합니다. 예를 들어 터미널에서 ADC를 설정했는데 IDE의 디버거에서 코드를 실행하면 코드의 실행 컨텍스트가 사용자 인증 정보에 액세스하지 못할 수 있습니다. 이 경우 Speech-to-Text 요청이 실패할 수 있습니다.

ADC에 사용자 인증 정보를 제공하는 방법은 애플리케이션 기본 사용자 인증 정보 설정을 참조하세요.

'... 파일(GOOGLE_APPLICATION_CREDENTIALS 환경 변수가 가리키는)이 없습니다'

다음과 같은 메시지가 표시될 경우:

ERROR: (gcloud.auth.application-default.print-access-token) File /path/to/key.json
(pointed by GOOGLE_APPLICATION_CREDENTIALS environment variable) does not exist!
{
  "error": {
    "code": 403,
    "message": "The request is missing a valid API key.",
    "status": "PERMISSION_DENIED"
  }
}

GOOGLE_APPLICATION_CREDENTIALS 환경 변수에 저장된 위치에 유효한 서비스 계정 키 JSON 파일이 있고 이 변수가 올바른 위치를 가리키고 있는지 확인합니다.

이 오류를 진단하려면 Speech-to-Text API를 호출하려는 폴더에서 서비스 계정 키 파일을 열어보세요.

cat $GOOGLE_APPLICATION_CREDENTIALS

금지됨: 403 POST API를 사용한 적이 없거나 사용 중지했습니다.

다음과 같은 메시지가 표시될 경우:

Forbidden: 403 POST Speech-to-Text API has not been used in
project # before or it is disabled.
Enable it by visitng [url] then retry.
If you enabled this API recently, wait a few minutes for the action to
propagate to our systems and retry.

  1. 오류 메시지에 지정된 링크로 이동하여 Speech-to-Text API를 사용 설정합니다. 몇 분 정도 기다린 후 다시 시도합니다.
  2. GOOGLE_APPLICATION_CREDENTIALS 환경 변수에 유효한 서비스 계정 키 JSON 파일이 저장되어 있는지 확인합니다. 이 오류를 진단하려면 Speech-to-Text API를 호출하려는 폴더에서 서비스 계정 키 파일을 열어보세요.
    cat $GOOGLE_APPLICATION_CREDENTIALS
    

'단일 채널(모노) 오디오를 사용해야 합니다'

다음과 같은 메시지가 표시될 경우:

Must use single channel (mono) audio, but WAV header indicates 2
channels.

오디오 파일에 둘 이상의 채널이 있습니다. 이 오디오 파일을 텍스트로 변환하려면 오디오에 여러 채널이 있음을 선언해야 합니다.

'LINEAR_PCM에 16비트 샘플을 사용해야 합니다'

다음과 같은 메시지가 표시될 경우:

INVALID_ARGUMENT: Must use 16 bit samples for LINEAR_PCM, but the WAV
header indicates 8 bits per sample

RecognitionConfig에 지정한 인코딩을 변경해야 할 수도 있습니다. Speech-to-Text에서 지원되는 인코딩에 대한 자세한 내용은 인코딩 가이드를 참조하세요.

'동기화 입력이 너무 깁니다'

다음과 같은 메시지가 표시될 경우:

Sync input too long. For audio longer than 1 min use
LongRunningRecognize with a 'uri' parameter.

Speech-to-Text의 동기식 인식 방법은 오디오 데이터의 텍스트 변환을 최대 1분 분량까지만 지원합니다. 이보다 긴 오디오 데이터에는 비동기식 인식을 대신 사용하세요.

'잘못된 인식 'config': 잘못된 인코딩'

다음과 같은 메시지가 표시될 경우:

Invalid recognition 'config': bad encoding.

오디오 데이터가 올바르게 인코딩되지 않았거나 RecognitionConfig에서 선언한 것과 다른 코덱으로 인코딩되었습니다. 오디오 입력을 확인하고 encoding 필드를 올바르게 설정했는지 확인합니다.

'요청 페이로드 크기가 한도를 초과합니다'

다음 메시지 중 하나가 수신된 경우:

Request payload size exceeds the limit.
Inline audio exceeds duration limit. Please use a GCS URI.

로컬 파일을 사용하여 API에 전송된 단일 요청에 대해 10MB 크기 제한을 초과했습니다. 10MB 제한을 방지하기 위해 오디오 파일을 Google Cloud Storage(GCS) 버킷으로 이동할 수 있습니다. 자세한 내용은 할당량 및 한도 페이지를 참조하세요.

'할당량 초과'

다음과 같은 메시지가 표시될 경우:

RESOURCE_EXHAUSTED: Quota exceeded.

분당 또는 일일 할당량 한도에 도달했습니다. Speech-to-Text 사용 할당량 및 한도를 살펴보세요.

Google Cloud Console에서 할당량 상향 조정을 요청할 수 있습니다.