#curl #wget #google-cloud-speech
# #curl #wget #google-облако-речь
Вопрос:
Я последовал 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.nfLaCu0000u0000u0000"u0004n^",
"status": "INVALID_ARGUMENT"
}
}
Консоль разработчика api Google показывает поступающее сообщение, но не дает мне никакой дополнительной информации, которая могла бы мне помочь. Я также пытался
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.
Комментарии:
1. Глупый я. Я получил эту ошибку, потому что мне не хватало @ перед именем файла.
Ответ №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'
У меня была такая же проблема, и это решило ее для меня.
Комментарии:
1. Я попробую позже и расскажу вам, как это работает. Спасибо
2. Итак, я попытался добавить одинарные кавычки вокруг имени файла и все равно получил ту же ошибку. Любые другие предложения?