Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform google语音api无效识别_Google Cloud Platform_Google Speech Api - Fatal编程技术网

Google cloud platform google语音api无效识别

Google cloud platform google语音api无效识别,google-cloud-platform,google-speech-api,Google Cloud Platform,Google Speech Api,我正试图仿效谷歌语音api的例子 1) 我创建了以下json请求文件 { 'config': { 'encoding':'FLAC', 'sampleRate': 16000, 'languageCode': 'en-US' }, 'audio': { 'uri':'gs://cloud-samples-tests/speech/brooklyn.flac' } } 2) 对我的服务

我正试图仿效谷歌语音api的例子

1) 我创建了以下json请求文件

{
    'config': {
          'encoding':'FLAC',
          'sampleRate': 16000,
          'languageCode': 'en-US'
    },
    'audio': {
         'uri':'gs://cloud-samples-tests/speech/brooklyn.flac'
    }
}
2) 对我的服务帐户进行身份验证

gcloud auth activate-service-account --key-file=service-account-key-file
3) 成功获取我的授权令牌

gcloud auth print-access-token
access_token
4) 然后使用下面的curl命令

curl -s -k -H "Content-Type: application/json" \
    -H "Authorization: Bearer access_token" \
    https://speech.googleapis.com/v1beta1/speech:syncrecognize \
    -d @sync-request.json
但我一直得到以下回应

{
  "error": {
    "code": 400,
    "message": "Invalid recognition 'config': bad encoding..",
    "status": "INVALID_ARGUMENT"
  }
}
我是否需要uri
gs://cloud samples tests/speech/brooklyn.flac
的访问权限?这就是问题所在吗


提前感谢。

在我看来,这是一个文件格式问题

你必须发送WAV文件而不是FLAC

[不支持FLAC和MP3格式,需要在服务器端进行文件转换(表示成本)]

将音频文件转换为WAV(使用或),然后重试


你也可以看一看(看一个工作示例)

对我来说,解决方案是删除“-d@”之间的空格, 因此,将“-d@sync-request.json”更改为“-d@sync-request.json”


我在这里得到帮助:。显然,文件正在被读取和处理,但是parm将被传递到“curl.exe”,而不是传递到URL

我知道现在回答这个问题已经很晚了。然而,它可能会帮助其他人,所以把你的错误

您传递的配置实际上不正确。属性应类似于:

{
  "config": {
  "encoding": "LINEAR16",
  "sampleRateHertz": 16000,
  "languageCode": "en-US",
  "maxAlternatives": 1,
  "profanityFilter": true,
  "enableWordTimeOffsets": false
},
  "uri": {
    "content":"<your uri>"
  }
}
{
“配置”:{
“编码”:“LINEAR16”,
“赫兹”:16000,
“语言代码”:“en US”,
“最大备选方案”:1,
“亵渎过滤器”:正确,
“enableWordTimeOffsets”:false
},
“uri”:{
“内容”:”
}
}

我在第一次测试中遇到了完全相同的问题。我在Windows10上使用的是cygwin64版本的CURL。在我看来,它似乎无法解释json文件。我试着将它保存为Unicode,但我认为这是一个更糟糕的错误。你也可以试着去掉-s代表“Silent”。如果你像我一样,你会看到更多可能是提示的错误。我也在试图弄清楚,这是谷歌在他们自己的例子中提供的.FLAC文件;希望他们能提供一些有用的东西。很抱歉我的回答不好,请你添加/更新你的功能代码(例如)我们都在按照谷歌网站的示例运行演示,请参见原始问题发布的URL。我在Google Group中发表的帖子指出,CURL将文件内容解释为CURL命令,因此实际上不是web服务调用的JSON。试图在-d和@之间没有空格的情况下应用解决方案,但没有成功:这似乎没有任何区别。我使用的是CYGWIN中的CURL:。我找不到任何关于空间为什么重要的文档,但我得到了与您完全相同的错误,并且更改允许它工作。也许在不同的CURL实现中存在差异?可能还有一种方法可以在CURL命令行上传递JSON,我没有尝试过。