Могу ли я использовать curl для создания речи: распознавать (Google Cloud Speech-to-text) запрос, используя .json из Google Cloud Storage? - PullRequest
0 голосов
/ 28 февраля 2019

Я хотел бы иметь возможность выступить с речью: распознавать запрос на моих собственных облачных ресурсах и с их помощью, чтобы я мог просто войти в консоль Google Cloud Platform, выполнить команду в облачной оболочке и увидетьРезультаты.Очень похоже на https://cloud.google.com/speech-to-text/docs/quickstart-protocol,, за исключением того, что не использует что-либо локально.

Не уверен, какая другая важная информация для обмена, но файлы .json и .flac в моем облаке имеют открытый доступ для чтения.

Как мне этого добиться?

мой запрос:

curl -H "Content-Type: application/json" https://speech.googleapis.com/v1/speech:recognize?key=[my-api-key] -d @https://storage.googleapis.com/[bucket]/[json-request-filename].json

ответ:

Warning: Couldn't read data from file
Warning: "https://storage.googleapis.com/[bucket]/[json-request-filename].json",
Warning: this makes an empty POST.
{
  "error": {
    "code": 400,
    "message": "RecognitionAudio not set.",
    "status": "INVALID_ARGUMENT"
  }
}

вот .json, размещенный в облачном хранилище Google:

{
  "config": {
      "encoding":"FLAC",
      "sampleRateHertz": 16000,
      "languageCode": "en-US",
      "enableWordTimeOffsets": false
  },
  "audio": {
      "uri":"gs://[bucket]/[audio-filename].flac"
  }
}

Нет новой информации, но вот как все это выглядит в оболочке Google Cloud Platform:

[my-account]@cloudshell:~ ([my-project])$ curl -H "Content-Type: application/json" https://speech.googleapis.com/v1/speech:recognize?key=[my-api-key] -d @https://storage.googleapis.com/[bucket]/[json-request-filename].json
Warning: Couldn't read data from file
Warning: "https://storage.googleapis.com/[bucket]/[json-request-filename].json",
Warning: this makes an empty POST.
{
  "error": {
    "code": 400,
    "message": "RecognitionAudio not set.",
    "status": "INVALID_ARGUMENT"
  }
}

1 Ответ

0 голосов
/ 01 марта 2019

Флаг -d в команде curl указывает curl читать данные из имени файла сразу после него и использовать эти данные в качестве тела запроса.curl не распознает веб-URL как допустимый файл.curl не может прочитать этот JSON-файл, поэтому он действует как пустой файл и создает запрос с пустым телом.Запрос, отправленный в API, не содержит никакой информации об этом файле JSON.

Речевой API получает запрос с пустым телом и не может ничего с ним сделать.API даже не знает, что вы указали объект Google Cloud в команде curl.

Метод речи: распознавать документирован как https://cloud.google.com/speech-to-text/docs/reference/rest/v1p1beta1/speech/recognize. У него нет никакого способа получить параметры, которые оннужно кроме как из тела запроса.Вы не можете сказать ему, чтобы он читал эти параметры откуда-то еще, например, URL или объект Google Cloud.Вы должны включить их в запрос, поэтому программа, создающая запрос, должна их знать.

...