【发布时间】:2017-02-26 12:30:54
【问题描述】:
我一直在为 Google Speech API 苦苦挣扎,希望得到一些建议。
这是我想要做的:
- 在浏览器中录制音频
- 将录音转换为base64并发送到我的服务器
- 在服务器上,调用 Google Speech API 的 syncRecognize 函数,传入我的 base 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,相同的代码是否有效?如果是这样,问题似乎出在音频“内容”上。
标签: audio-recording google-speech-api