我也有谷歌語音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 –