2
我一直在努力与谷歌语音API一段时间,并会爱一些建议。谷歌语音API - 识别base64编码音频
这里就是我想要做的事:
- 录制音频的浏览器
- 转换的记录为Base64发送到我的服务器
- 在服务器上,调用谷歌语音API的syncRecognize功能,传入我的基地64编码音频
我总是收到一个空的结果对象。
当我按照这个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};
});;
}
}
我从来没有尝试过在浏览器中这样做,所以我不确定。有什么方法可以将音频内容数据保存到文件中,以确保它可以播放(并且它是LINEAR16 16kHz)?如果你给它一个URI,相同的代码是否工作?如果是这样,似乎问题与音频“内容”。 – blambert