将音频从浏览器保存到后端(Django)

时间:2017-04-15 15:31:14

标签: javascript django audio blob mediarecorder

我经历了很多已经给出但不明白的答案。

任务:我必须从用户那里获取不到一分钟的音频,然后将其保存在后端并发送到Google的语音识别API以获取文本。

我尝试使用MediaRecorder API在浏览器中使用此演示https://mido22.github.io/MediaRecorder-sample/进行录制。

我希望将录制的音频保存在我的Django后端,以便我们可以对其进行一些后期处理。

EDIT1: Github code for media recorder api

2 个答案:

答案 0 :(得分:2)

POST生成的Blob at makeLink函数服务器作为FormData对象的属性

function makeLink() {
  let blob = new Blob(chunks, {type: media.type });
  let fd = new FormData;
  fd.append("audioRecording", blob);
  let request = new XMLHttpRequest();
  request.open("POST", "/path/to/server", true);
  request.onload = function() {
    // do stuff
  }
  request.onerror = function() {
   // handle error
  }
  request.send(fd);
}

function makeLink() {
  let blob = new Blob(chunks, {type: media.type });
  let fd = new FormData;
  fd.append("audioRecording", blob);
  fetch("/path/to/server", {method:"POST", body:fd})
  .then(response => response.ok)
  .then(res => console.log(res))
  .catch(err => console.error(err));
}

答案 1 :(得分:-1)

我在这里创建了一个简单的项目: https://github.com/Keramatfar/django_sound_file

对于后端,我使用以下函数:

  import { DeviceDetectorService } from 'ngx-device-detector';