当我在linux机器上运行simple命令时:
curl -X POST \
--data-binary @'1.wav' \
--header 'Content-Type: audio/l16; rate=16000;' \
'https://www.google.com/speech-api/v2/recognize?output=json&lang=he-IL&key=THE_KEY'
我收到错误:
Your client does not have permission to get URL /speech-api/v2/recognize?output=json&lang=he-IL&key=THE_KEY from this server. Invalid key.
That’s all we know.
我生成的密钥没有限制(并且语音api已启用) 我甚至添加了服务器IP地址,我也遇到了同样的错误。
到目前为止,我发现的结果与Chrome客户端有关...我在shell上。
由于
答案 0 :(得分:1)
使用以下文本创建JSON请求文件,并将其另存为sync-request.json纯文本文件:
{
'config': {
'encoding':'FLAC',
'sampleRate': 16000,
'languageCode': 'en-US'
},
'audio': {
'uri':'gs://your-gcloud-bucket/audio.wav'
}
}
此JSON代码段表示音频文件具有WAV编码格式,采样率为16000 Hz,并且音频文件以给定的URI存储在Google Cloud Storage上。音频文件可公开访问,因此您无需身份验证凭据即可访问该文件(尽管您需要身份验证凭据才能使用该API)。
向您的服务帐户进行身份验证,并传递service account key file的位置:
$ gcloud auth activate-service-account --key-file=service-account-key-file
使用您的服务帐户获取授权令牌:
$ gcloud auth print-access-token
access_token
使用curl发表演讲:syncrecognize请求,传递您打印的访问令牌,以及您在步骤1中设置的JSON请求的文件名:
$ curl -s -k -H "Content-Type: application/json" \
-H "Authorization: Bearer access_token" \
https://speech.googleapis.com/v1beta1/speech:syncrecognize \
-d @sync-request.json