我正在录制网站上的麦克风输入并将此音频发送到后端:
navigator.mediaDevices.getUserMedia({ audio: true })
.then(stream => {
const mediaRecorder = new MediaRecorder(stream);
mediaRecorder.start();
const audioChunks = [];
mediaRecorder.addEventListener("dataavailable", event => {
audioChunks.push(event.data);
});
mediaRecorder.addEventListener("stop", () => {
const audioBlob = new Blob(audioChunks);
const data = new FormData();
data.append('speech', audioBlob, 'command');
axios.post('/command', data)
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
});
});
在我的后端(在Flask上运行)上,我无法打开(或访问)它。当我使用wave
模块时:
audio = request.files['speech']
audio.save(audio.filename)
with wave.open(audio.filename, 'r') as speech:
# Do something ...
return jsonify({
'status': "OK",
})
我将收到错误消息wave.Error: file does not start with RIFF id
。如何解决呢?我应该将其转换为其他格式(音频似乎是WebM格式)吗?什么是正确的方法,如何使用Python处理来自网站的麦克风音频?