Я пытаюсь записать аудио из Интернета с помощью recording.js, а затем отправить данные BLOB-объекта в Python, чтобы сохранить их в виде файла WAV в моей директории сервера. Сейчас он создает файл WAV на моем сервере, но у него нет звука, который я записываю. Я не знаю, какая часть не так.
JavaScript-интерфейс
rec.exportWAV(upload);
function upload(blob) {
var xhr=new XMLHttpRequest();
xhr.onload=function(e) {
if(this.readyState === 4) {
console.log("Server returned: ",e.target.responseText);
}
};
var filename = new Date().toISOString();
var fd=new FormData();
fd.append("audio_data",blob, filename);
console.log(blob);
xhr.open("POST","/testFlask/saveAudio",true);
xhr.send(fd);
}
Python
@app.route("/saveAudio", methods=['GET','POST'])
def hello2():
if request.method =='POST':
#form = cgi.FieldStorage()
fname = request.files['audio_data'].filename
blob = request.files['audio_data']
#blob = open("/home/ubuntu/abc/testing.wav").read()
name = "output.wav"
#f = open("/home/ubuntu/pabc/audio/text.txt", 'wb')
#f.close()
audio = wave.open('/home/ubuntu/abc/audio/'+fname+'.wav', 'wb')
audio.setnchannels(1)
audio.setsampwidth(1)
audio.setframerate(8000)
audio.setnframes(1)
audio.writeframes(blob.read())
audio.close()
return blob.read()