我使用麦克风从浏览器录制音频,对base64进行编码,然后发送到我的node.js应用程序,该应用程序会将base64数据发送到google speech to text api,然后给我发送一份抄本。我很困惑如何处理来自post响应的数据,然后将其发送到google。
这是我到目前为止在客户端ajax上发布的帖子:
var reader = new window.FileReader();
reader.readAsDataURL(blob);
reader.onloadend = function() {
var fd = new FormData();
base64data = reader.result;
fd.append('rawaudio', base64data);
console.log(base64data)
$.ajax({
type: 'POST',
url: 'http://localhost:3000/send',
data: fd,
cache: false,
processData: false,
contentType: false,
enctype: 'multipart/form-data'
}).done(function(err,data) {
console.log(data)
console.log(err)
})
}
express node.js
app.post('/send',(req,res)=>{
console.log(req.body.rawaudio)
})
我没有定义
console.log(req.body.rawaudio)
但我知道发送数据是因为
console.log(base64data)
是定义的
发布于 2018-11-23 21:26:42
将wav导出为blob,然后将其发送到NodeJS,并将其保存到DB以供进一步使用。(在我的例子中是Mongo)
function sendToBackEnd(blob){
var blob = blob;
var reader = new FileReader();
reader.readAsDataURL(blob);
reader.onloadend = function() {
blob = reader.result.toString();
console.log(blob)
var fd = new FormData();
fd.append('fname', 'test.wav');
fd.append('data', blob);
// fd.append('data', blob);
$.ajax({
url: '/recordings',
type: 'POST',
data: fd,
processData: false,
contentType: false
})
}
}
然后在NodeJs端:
app.post('/recordings',function(req,res){
var form = new multiparty.Form();
form.parse(req, function(err, file) {
if (err){
console.log(err)
}
var data=file.data;
newRecording={content:data}
Recording.create(newRecording,function(err,Recording){
if (err){
console.log(err)
}else{
console.log(Recording)
}
});
});
});
https://stackoverflow.com/questions/51623300
复制相似问题