我一直在努力使用Google Speech API,并希望得到一些建议。
这是我想要做的事情:
我总是收到一个空的结果对象。
当我遵循此getting started tutorial时,虽然一切正常。
我做错了什么?
非常感谢任何提示/想法。
const Speech = require('@google-cloud/speech');
const SpeechV1beta1 = require('@google-cloud/speech/src/v1beta1')
module.exports = {
syncRecognize: function(base64Encoding) {
const speech = Speech();
const speechV1beta1 = SpeechV1beta1();
const client = speechV1beta1.speechClient();
const body = {
"config": {
"encoding":"LINEAR16",
"sampleRate":16000,
"languageCode":"en-US"
},
"audio": {
"content": base64Encoding
}
}
return client.syncRecognize(body)
.then((results) => {
console.log('results', results)
return {transcription: results[0]};
}).catch(function(error) {
return {error: error};
});;
}
}
答案 0 :(得分:2)
顺便说一下,你从浏览器录制的内容并不是那些配置参数。
我遇到的另一个问题是,对于超过5秒的音频持续时间,超时启动,到目前为止,我无法有效地更改API截止日期。这可能也是你的情况。
要验证我的webapp中音频的元数据,我使用ffmpeg:我自动将文件保存到存储并在脚本中运行ffmpeg -i filename
以检索采样率,编码,通道数和持续时间。
请注意,同步语音识别请求有audio lenght limits。如果超过它们,我建议您使用异步方法(或在子文件中拆分音频文件)。在前一种情况下,您可能需要转换音频编码(幸运的是ffmpeg也可以为您做:))。在后一种情况下,您可以使用SoX在静音中分割音频并单独处理它们。