Cloud Speech API错误:未设置RecognitionAudio

时间:2017-09-11 13:06:35

标签: google-cloud-speech

尝试按照云计算速度API的[快速启动](https://cloud.google.com/speech/docs/getting-started)时,在命令提示符中执行“curl”命令后,错误发生如下:

{
  "error": {
  "code": 400,
  "message": "RecognitionAudio not set.",
  "status": "INVALID_ARGUMENT"
  }
}

为什么在API本身中没有设置RecognitionAudio?使用的sync-request.json与快速入门中的相同:

{
  "config": {
      "encoding":"FLAC",
      "sampleRateHertz": 16000,
      "languageCode": "en-US",
      "enableWordTimeOffsets": false
  },
  "audio": {
      "uri":"gs://cloud-samples-tests/speech/brooklyn.flac"
  }
}

4 个答案:

答案 0 :(得分:1)

我不确定你到底做错了什么,但我能够毫无问题地使用文档中的请求。

您是否获得了启用了语音API的Google Cloud项目的访问令牌?以下命令生成可用作承载的访问令牌:

gcloud auth application-default print-access-token

使用将以下内容放入脚本文件(req.sh)

是很有帮助的
curl -s -H "Content-Type: application/json" \
    -H "Authorization: Bearer <output>" \
    https://speech.googleapis.com/v1/speech:recognize \
    -d @sync-request.json

然后我使用了print-access-token的输出和脚本。

答案 1 :(得分:1)

我有完全相同的问题,我解决了在-d值中添加引号,如下所示:

curl -s -H "Content-Type: application/json" \
    -H "Authorization: Bearer <your-access-token>" \
    https://speech.googleapis.com/v1/speech:recognize \
    -d "@sync-request.json"

答案 2 :(得分:0)

我有同样的问题,当我从curl命令中省略@ sync-时,它对我有用。这个命令对我有用:

curl -s -H "Content-Type: application/json" \
-H "Authorization: Bearer " \
https://speech.googleapis.com/v1/speech:recognize \
-d @request.json

不确定@sync的确切功能是什么?

答案 3 :(得分:0)

我收到此错误是因为我没有在cli中运行与sync-request.json文件相同的目录中的命令。

一旦我更改了目录,我就使用文档中的命令和我的访问令牌,它运行正常。