私はmp4ビデオクリップをFLACオーディオファイルに変換しようとしています。特定の言葉が言われました。Google Speech API「要求のサンプルレートがFLACヘッダーと一致しません」
私はすべてが私はスピーチのAPIからエラーを取得していますことを除いて取り組んでいます
{
"error": {
"code": 400,
"message": "Sample rate in request does not match FLAC header.",
"status": "INVALID_ARGUMENT"
}
}
私はFLACファイルにMP4に変換するためにFFMPEGを使用しています。私はFLACファイルがコマンドの16ビットであることを指定していますが、FLACファイルを右クリックすると、Windowsは302kbpsであることを伝えています。ここで
は私のPHPコードです:
私のFFMPEGコマンドに非常に特異的であることによってそれを修正// convert mp4 video to 16 bit flac audio file
$cmd = 'C:/wamp/www/ffmpeg/bin/ffmpeg.exe -i C:/wamp/www/test.mp4 -c:a flac -sample_fmt s16 C:/wamp/www/test.flac';
exec($cmd, $output);
// convert flac to text so we can detect if certain words were said
$data = array(
"config" => array(
"encoding" => "FLAC",
"sampleRate" => 16000,
"languageCode" => "en-US"
),
"audio" => array(
"content" => base64_encode(file_get_contents("test.flac")),
)
);
$json_data = json_encode($data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://speech.googleapis.com/v1beta1/speech:syncrecognize?key=MY_API_KEY');
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($ch);
サンプルフォーマット(符号付き16に設定したもの)とサンプルレートには違いがあります。 – fakedad
ありがとう、私はそれを理解し、答えを提供しました。 Google Speech APIは、ビット、サンプル、およびチャンネルが非常に欲しいと思われます。 – kjdion84