エラー メッセージ

/speech-to-text/docs/reference/rest/ /speech-to-text/docs/reference/rpc/google.cloud.speech.

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.
    

音声データのサイズが大きすぎます。Speech-to-Text を使用する際の割り当てと制限を確認してください。

"Quota exceeded"

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

    RESOURCE_EXHAUSTED: Quota exceeded.
    

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

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