на Raspberry Pi я пытаюсь записать звук с помощью gstreamer в виде файла .flac или .wav.
Я хочу, чтобы аудиофайл был отправлен на неофициальный сервер API речи Google
Но мой вывод конвейера gstreamer как wav
gst-launch-0.10 -e alsasrc device=hw:1 ! audioconvert ! audioresample ! audio/x-raw-int, depth=16, rate=16000, channels=1 ! wavenc ! filesink location= o.wav
или как flac
gst-launch-0.10 -e alsasrc device=hw:1 ! audioconvert ! audioresample ! audio/x-raw-int, depth=16, rate=16000, channels=1 ! flacenc ! filesink location= o.flac
быть всегда отвергнутым.
Ошибка: (неправильный формат файла или неправильная частота дискретизации)
{"status":5,"id":"11e0fa5e371b2f0a1a87def81f8383bc-1","hypotheses":[]}
Нормальная запись с помощью sox и кодирование с помощью ffmpeg или flac работает, поэтому я предполагаю, что выходной файл из gstreamer каким-то образом поврежден или что мне что-то не хватает
РЕДАКТИРОВАТЬ: конвейер, работающий с -v http://hastebin.com/vovefeyewe.vbs добавил очередь после alsasrc, но все та же проблема
РЕШЕНО
Дополнительные параметры решили проблему
gst-launch-0.10 -e -v alsasrc device=hw:1 ! audioconvert ! audioresample ! "audio/x-raw-int, rate=(int)16000, channels=(int)1, endianness=(int)1234, width=(int)16, depth=(int)16, signed=(boolean)true, channles=(int)1" ! wavenc ! filesink location=g.wav
и если нет голоса или есть только случайный шум, Google отклонит файл с (ошибкой неправильного формата)