Ошибка в полезной нагрузке JSON при попытке доступа к API Google Cloud Speech

{
  "config": {
      "encoding":"FLAC",  
      "sample_rate": 16000,  
      "language_code": "en-US"
  },
  "audio": {
      "uri":"gs://speechtotextapi/audio_file.flac"
  }
}

curl -s -X POST -H "Content-Type: application / json" --data-binary @ request.json \ "https://speech.googleapis.com/v1/speech:recognize?key= $ {API_KEY}"

Сначала я преобразовал файл mp4 в формат FLAC, а затем загрузил его в корзину. Это ответ API.

{"error": {"code": 400, "message": "Получены недопустимые данные JSON. Неизвестное имя \" sample_rate \ "в 'config': поле не найдено.», «status»: «INVALID_ARGUMENT», «подробности ": [{" @type ":" type.googleapis.com/google.rpc.BadRequest "," fieldViolations ": [{" field ":" config "," description ":" Получена недопустимая полезная нагрузка JSON. Неизвестное имя \ "sample_rate \" в 'config': поле не найдено. " }]


person Rajul    schedule 05.09.2017    source источник
comment
Проблема решена.   -  person Rajul    schedule 07.09.2017


Ответы (1)


Вам нужно создать правильно отформатированный ввод в виде массива, а затем json закодировать его. Например, чтобы отправить файл, base64 закодирует его как «контент» и отправит в API, как показано:

$ upload = base64_encode (file_get_contents (NAME_OF_YOUR_AUDIO_FILE));

"audio" => array ("Content" => $ upload,)

person user223321    schedule 05.09.2017
comment
Это ответ, который я получаю после изменения запроса curl -s -X POST -H Content-Type: application / json -d @ request.json \ speech.googleapis.com/v1/speech:longrunningrecognize?key=$ {API_KEY} {name: 283477145540444562}. Я не вижу на выходе никакого текста / строки. Есть идеи относительно того, что происходит? - person Rajul; 05.09.2017
comment
Только что выяснилось, что я получу фактический текст с помощью запроса GET speech.googleapis. ru / v1 / operations / - person Rajul; 05.09.2017