Неверная полезная нагрузка json для запроса syncrecognize curl

Я подписался на https://cloud.google.com/speech/docs/getting-started и успешно запустился

curl -s -k -H "Content-Type: application/json" \
-H "Authorization: Bearer access_token" \
https://speech.googleapis.com/v1beta1/speech:syncrecognize \
-d @sync-request.json

чтобы получить ожидаемый результат. Однако теперь я пытаюсь сделать по сути то же самое, но для локального файла flac, поэтому вместо этого я запускаю:

curl -s -k -H "Content-Type: audio/x-flac" -H "Authorization: Bearer [my access key]" 
https://speech.googleapis.com/v1beta1/speech:syncrecognize --data-binary @file.flac

и я получаю ответ от

{
  "error": {
    "code": 400,
    "message": "Invalid JSON payload received. Unexpected     token.\nfLaC\u0000\u0000\u0000\"\u0004\n^",
    "status": "INVALID_ARGUMENT"
  }
}

Консоль разработчика Google API показывает входящее сообщение, но не дает мне никакой дополнительной информации, которая могла бы мне помочь. я тоже пробовал

wget --post-file file.flac --header="Content-Type: audio/x-flac; rate=16000" -O - "https://speech.googleapis.com/v1beta1/speech:syncrecognize?key=[my api key]"

и я также получаю ошибку 400 Bad Request.

Кто-нибудь успешно достиг того, ради чего я стреляю? Все примеры, которые я могу найти, предназначены либо для использования API для загруженного файла, либо для использования некоторых библиотек, в отличие от минималистического запроса curl или wget.


person raph    schedule 15.10.2016    source источник
comment
Глупый я. Я получил эту ошибку, потому что мне не хватало @ перед именем файла.   -  person BSalita    schedule 26.01.2017


Ответы (1)


Вы должны попробовать процитировать двоичный файл данных следующим образом:

curl -s -k -H "Content-Type: audio/x-flac" -H "Authorization: Bearer [my access key]" 
https://speech.googleapis.com/v1beta1/speech:syncrecognize --data-binary @'file.flac'

У меня была такая же проблема, и это решило ее для меня.

person Serge Hendrickx    schedule 17.10.2016
comment
Я попробую позже и дам вам знать, как это работает. Спасибо - person raph; 18.10.2016
comment
Поэтому я попытался добавить одинарные кавычки вокруг имени файла и все равно получил ту же ошибку. Любые другие предложения? - person raph; 06.11.2016