Google语音API错误

时间:2016-12-07 19:52:15

标签: google-speech-api

当我在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上。

由于

1 个答案:

答案 0 :(得分:1)

  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)。

  2. 向您的服务帐户进行身份验证,并传递service account key file的位置:

    $ gcloud auth activate-service-account --key-file=service-account-key-file

  3. 使用您的服务帐户获取授权令牌:

    $ gcloud auth print-access-token access_token

  4. 使用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