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 では認証にアプリケーションのデフォルト認証情報(ADC)を使用します。
ADC の認証情報は、Speech-to-Text API を呼び出すコンテキスト内で使用可能でなければなりません。たとえば、ターミナルで ADC を設定し、IDE のデバッガでコードを実行すると、コードの実行コンテキストが認証情報にアクセスできないことがあります。その場合、Speech-to-Text へのリクエストが失敗する可能性があります。
ADC に認証情報を指定する方法については、アプリケーションのデフォルト認証情報を設定するをご覧ください。
"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.
- エラー メッセージで指定されたリンクにアクセスし、Speech-to-Text API を有効にします。数分待ってから、再試行します。
- 有効なサービス アカウント キー 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 コンソールを使用してリクエストできます。