我通常使用带有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
答案 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时遇到任何问题。