谷歌语音API无效识别

问题描述:

我试图按照对谷歌语音API的例子在这里谷歌语音API无效识别

https://cloud.google.com/speech/docs/getting-started

1)找到我创建的后续JSON请求文件

{ '配置':{ '编码': 'FLAC', '采样率':16000, '语言代码': 'EN-US' }, '声音':{ 'URI':“GS://云样品检验/speech/*lyn.fl AC” }}

2)验证我的服务帐户

gcloud AUTH激活服务账户--key文件=服务帐户密钥文件

3)获得我的授权令牌成功 gcloud AUTH打印访问令牌 的access_token

4)然后使用下面的curl命令 卷曲-s -k -H “内容类型:应用程序/ JSON” \ -H“授权:是arer ACCESS_TOKEN” \ https://speech.googleapis.com/v1beta1/speech:syncrecognize \ -d @同步request.json

但我不断收到以下响应

{ “错误”:{ “代码”:400, “消息”: “无效的识别‘配置’:坏编码..”, “状态”:“INVALID_ARGUMENT” }}

我需要为URI GS访问权限://云样本的测试/语音/布鲁克林.FLAC?那是什么问题?

在此先感谢..

+0

我刚刚尝试第一次测试时遇到同样的问题。我在Windows 10上使用了CURL的cygwin64版本。听起来像它不能解释json文件。我试着将它保存为Unicode,但这给了我认为是更糟糕的错误。 – NealWalters

+0

你也可以尝试将“Silent”的-s取下。如果像我一样,你会看到更多可能是暗示的错误。我仍然试图弄清楚。 – NealWalters

在我看来,这是一种文件格式的问题。

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

[FLAC和MP3格式,不支持< =>需要一个文件转换在服务器端(占成本)

转换您音频文件转换为WAV(使用ffmpegavconv),然后重试。

您还可以看看here(见工作示例)

+2

这是Google自己的示例中提供的.FLAC文件;希望他们提供有用的东西。 – NealWalters

+1

对不起,我可以请你添加/更新你的功能代码(例如) –

+0

我们都是按照Google示例网站的样子完全运行示例,请参阅按原始问题发布的网址。我在Google Group中发布的帖子表明,CURL将文件的内容解释为CURL命令,因此不是真正用于Web服务调用的JSON。 – NealWalters

对我来说,解决办法是消除之间的空间“-d @”, 所以更改“-d @同步请求。 json“改为”[email protected]“。

我在这里得到了帮助:https://groups.google.com/forum/#!topic/cloud-speech-discuss/bL_N5aJDG5A。显然该文件正在被读取和处理,但是parms正在转到“curl.exe”而不是被传递到URL。

+0

试图在-d和@之间没有空格的情况下应用解决方案,但没有成功:看起来没有任何区别。 – George

+0

我使用CYGWIN的CURL:https://www.cygwin.com/。 我找不到任何有关空间为什么重要的文档,但是我得到了与您完全相同的错误,并且该更改允许它正常工作。也许在不同的CURL实现中有变化? – NealWalters

+0

也可能有一种方法可以在CURL命令行上传递JSON,我没有尝试过。 – NealWalters