我也有谷歌语音API返回空的结果同样的问题。 我用FFmpgeg将我的音频文件转换为LINEAR16。为了安装这个工具我用自制:
brew install ffmpeg
对于我的音频文件转换为LINEAR16我用这个命令:
ffmpeg -i input.flac -f s16le -acodec pcm_s16le output.raw
后,我就装到我的谷歌stogage:https://console.cloud.google.com/storage/browser/
这里是我的JSON文件,用于制作请求的配置:
{
'config': {
'encoding':'LINEAR16',
'sampleRate': 16000,
'languageCode': 'en-US'
},
'audio': {
'uri':'gs://your-bucket-name/output.raw'
}
}
对于f iles超过1分钟你需要使用Asyncrecognize方法:
curl -s -k -H "Content-Type: application/json" \
-H "Authorization: Bearer [YOUR-KEY]" \
https://speech.googleapis.com/v1beta1/speech:asyncrecognize \
-d @sync-request.json
它会返回操作ID。您可以通过获取运算结果来检查它是否准备就绪:
curl -s -k -H "Content-Type: application/json" \
-H "Authorization: Bearer " [YOUR-KEY]\
https://speech.googleapis.com/v1beta1/operations/[OPERATION-ID]
相关http://stackoverflow.com/questions/38906527/google-speech-recognition-api-result-is-empty –