谷歌演讲api空结果JSON

时间:2017-02-10 10:14:05

标签: curl google-api speech-to-text google-speech-api

我通常使用带有mp3文件的格式正确的JSON请求进行API调用,我希望结果JSON数据包含带有“transcript”和“confidence”值的“alternative”对象的“results”对象。

相反,我得到的结果是“{}”(一个空的JSON对象)。

使用的操作系统是ubuntu15.04。

创建具有以下文本的JSON请求文件,并将其另存为sync-request.json纯文本文件:

{
  "config": {
    "encoding": "LINEAR16",
    "sampleRate": 16000,
"languageCode": "en-US"
  },
  "audio": {
    "uri": "gs://audiobucketceino/Learn English - Lesson 41- Hi How are you - Pronunciation-[AudioTrimmer.com].mp3"
  }
}

用于发表演讲的卷曲:syncrecognize请求是:

curl -s -k -H "Content-Type: application/json"     -H "Authorization: Bearer [access-token]"      https://speech.googleapis.com/v1beta1/speech:syncrecognize -d @sync-request.json 

测试文件附在:

https://drive.google.com/file/d/0B7cqXnHXm78bLWdyYWhpVEdkT0U/view?usp=sharing

1 个答案:

答案 0 :(得分:2)

谷歌语音API不直接支持mp3文件。它只支持the five listed in the documentation。最简单的方法是使用sox或类似工具(sudo apt-get install sox)将mp3文件转换为wav文件:

sox lesson41.mp3 lesson41.wav

wav文件应与您提供的LINEAR16编码兼容。您需要确保采样率为16k,样本为16位。为了安全起见,请尝试:

sox lesson41.mp3 -r 16000 -c 1 -b 16 lesson41.wav

如果您在sox获取lots of other tools that should be able to do the conversion too时遇到任何问题。