エラー メッセージ

Speech-to-Text で発生するいくつかのエラーを解決する方法をご紹介します。このトピックでは、エラー メッセージによって解決方法が簡単にわかるエラーではなく、解決に際して、より多くの手順が必要となるエラーを取り上げます。

"The Application Default Credentials are not available"

このメッセージが表示された場合の対処方法を示します。

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 では認証にアプリケーションのデフォルト認証情報を使用します。

プロジェクトのサービス アカウントを用意し、そのサービス アカウントのキー(JSON ファイル)を開発環境にダウンロードし、その JSON ファイルの場所を GOOGLE_APPLICATION_CREDENTIALS という名前の環境変数に設定する必要があります。

さらに、GOOGLE_APPLICATION_CREDENTIALS 環境変数は、Speech-to-Text API を呼び出すコンテキスト内で使用可能でなければなりません。たとえば、ターミナル セッション内でこの変数を設定し、IDE のデバッガでコードを実行した場合、コードの実行コンテキストからその変数にアクセスできないことがあります。そのような状況では、適切な認証がないために Speech-to-Text へのリクエストが失敗する場合があります。

GOOGLE_APPLICATION_CREDENTIALS 環境変数の設定方法の詳細については、Speech-to-Text のクイックスタート、またはアプリケーションのデフォルト認証情報の使用に関するドキュメントをご覧ください。

"File ... (pointed by GOOGLE_APPLICATION_CREDENTIALS environment variable) does not exist!"

このメッセージが表示された場合の対処方法を示します。

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

Forbidden: 403 POST API has not been used or is disabled

このメッセージが表示された場合の対処方法を示します。

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. 有効なサービス アカウント キー JSON ファイルが GOOGLE_APPLICATION_CREDENTIALS 環境変数に格納されていることを確認します。このエラーを診断するには、Speech-to-Text API を呼び出そうとしているフォルダからサービス アカウント キー ファイルを開いてみてください。
    cat $GOOGLE_APPLICATION_CREDENTIALS
    

"Must use single channel (mono) audio"

このメッセージが表示された場合の対処方法を示します。

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

音声ファイルに複数のチャネルが含まれています。この音声ファイルを文字変換するには、音声に複数のチャネルがあることを宣言する必要があります。

"Must use 16 bit samples for LINEAR_PCM"

このメッセージが表示された場合の対処方法を示します。

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"

このメッセージが表示された場合の対処方法を示します。

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

Speech-to-Text の同期認識の手法では、最大 1 分までの音声データの文字変換のみがサポートされています。長い音声データの場合は、代わりに非同期認識を使用してください。

"Invalid recognition 'config': bad encoding"

このメッセージが表示された場合の対処方法を示します。

Invalid recognition 'config': bad encoding.

音声データが正しくエンコードされていないか、RecognitionConfig で宣言したものとは異なるコーデックでエンコードされている可能性があります。音声入力を確認し、encoding フィールドが正しく設定されていることを確認します。

"Request payload size exceeds the limit"

次のいずれかのメッセージが表示された場合は、以下のようにご対応ください。

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

ローカル ファイルを使用して API に送信される 1 つのリクエストあたりのサイズ上限(10 MB)を超えました。オーディオ ファイルを Google Cloud Storage(GCS)バケットに移動することで、10 MB の上限の適用を回避できます。詳細については、割り当てと上限のページをご覧ください。

"Quota exceeded"

このメッセージが表示された場合の対処方法を示します。

RESOURCE_EXHAUSTED: Quota exceeded.

1 分あたりまたは 1 日あたりの割り当ての制限に達しました。Speech-to-Text を使用する際の割り当てと制限を確認してください。

Google Cloud Console を使用して、割り当ての引き上げをリクエストできます。