尝试按照云计算速度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"
}
}
答案 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文件相同的目录中的命令。
一旦我更改了目录,我就使用文档中的命令和我的访问令牌,它运行正常。