Google cloud platform google语音api无效识别
我正试图仿效谷歌语音api的例子 1) 我创建了以下json请求文件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) 对我的服务
{
'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"
}
}
我是否需要urigs://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,我没有尝试过。