Python, используя recording.js конвертировать BLOB в WAV файл - PullRequest
1 голос
/ 09 апреля 2019

Я пытаюсь записать аудио из Интернета с помощью 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()
...