5

「概要チュートリアル」を管理しました: https://cloud.google.com/speech/docs/getting-started 次に、自分のオーディオ ファイルを使用しようとしました。サンプルレート 16000Hz の .flac ファイルをアップロードしました。

以下のファイルは、Google クラウド ストレージ ( )sync-request.jsonでホストされている自分のオーディオ ファイルに変更しただけです。gs://my-bucket/test4.flac

{
  "config": {
      "encoding":"flac",
      "sample_rate": 16000
  },
  "audio": {
      "uri":"gs://my-bucket/test4.flac"
  }
}

ファイルは十分に認識されていますが、リクエストは「INVALID_ARGUMENT」エラーを返します

{
  "error": {
    "code": 400,
    "message": "Unable to recognize speech, code=-73541, possible error in recognition config. Please correct the config and retry the request.",
    "status": "INVALID_ARGUMENT"
  }
}
4

2 に答える 2

9

この回答によると、すべてのエンコーディングは 1 チャネル (モノラル)オーディオのみをサポートします。

このコマンドでFLACファイルを作成していました:

ffmpeg -i test.mp3 test.flac

リクエストのサンプルレートが FLAC ヘッダーと一致しません

ただし、-ac 1(オーディオチャンネル数を1に設定)を追加すると、この問題が修正されました。

ffmpeg -i test.mp3 -ac 1 test.flac

ここに私の完全なNode.jsコードがあります

const Speech = require('@google-cloud/speech');
const projectId = 'EnterProjectIdGeneratedByGoogle';

const speechClient = Speech({
    projectId: projectId
});

// The name of the audio file to transcribe
var fileName = '/home/user/Documents/test/test.flac';


// The audio file's encoding and sample rate
const options = {
    encoding: 'FLAC',
    sampleRate: 44100
};

// Detects speech in the audio file
speechClient.recognize(fileName, options)
    .then((results) => {
        const transcription = results[0];
        console.log(`Transcription: ${transcription}`);
    }, function(err) {
        console.log(err);
    });

サンプルレートは 16000 または 44100 またはその他の有効なもので、エンコードは FLAC または LINEAR16 です。クラウド音声ドキュメント

于 2017-02-13T21:58:29.237 に答える
1

残念ながら、ドキュメント「https://cloud.google.com/speech/docs/basics」のように、.flac ファイルは16 ビット PCMでなければなりません

まとめ:

エンコーディング: FLAC
チャンネル: 1 @ 16 ビット
サンプルレート: 16000Hz

/!\ 別のエラーをスローするステレオ ファイル (2 チャネル) ファイルをエクスポートしないように注意してください (1 チャネルのみが受け入れられます) Google Speech API 内部サーバー エラー -83104

于 2016-09-21T16:44:00.213 に答える