Микрофон аудио от JS в Python - PullRequest
0 голосов
/ 09 декабря 2018

Я записываю вход микрофона на веб-сайте и отправляю это аудио бэкэнду:

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?

...