我想用JavaScript在浏览器中录制客户端的麦克风,并实时将其发送到Python中处理音频流。在Django中能否实现实时处理?
谢谢!
谢谢!
你可以使用允许你使用javascript的麦克风,以*.wav,*.webm
等格式的blob数据的形式录制音频,并通过ajax在django端发送响应。我提供一个链接,允许你录制音频或视频等。
首先你需要查看提到的链接,然后再看另一个例子。
如果你使用p5 js,那么这是可能的。
let mic, fft;
let recorder, soundFile;
let can1
function setup() {
can1=createCanvas(400, 400);
noFill();
can1.parent('canvas-area');
mic = new p5.AudioIn();
mic.start();
fft = new p5.FFT();
fft.setInput(mic);
}
function draw() {
background(255,255,255);
let spectrum = fft.analyze();
beginShape();
for (i = 0; i < spectrum.length; i++) {
ellipse(200,200,100+spectrum[i],100+spectrum[i]);
}
endShape();
}
function mediaplay(){
getAudioContext().resume();
recorder = new p5.SoundRecorder();
recorder.setInput(mic);
soundFile = new p5.SoundFile();
recorder.record(soundFile);
}
function mediastop(){
recorder.stop();
AjaxRequest()
// saveSound(soundFile,'test.wav')
}
//do logic for send 1 half minute chunks or minute chucks
function AjaxRequest() {
var form = new FormData();
form.append("wavfile", soundFile.getBlob(), "file");
$.ajax({
url: "You url",
method: "POST",
data: form, //here passing the wav file
dataType: "json",
processData: false,
contentType:false,
success:function(data){
console.log(data.success)
},
});
}
@django view.py
import FileSystemStoragefrom django.http
import JsonResponse,HttpResponsefrom django.views.decorators.csrf
import csrf_exemptimport osos.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
from django.core.files.storage import default_storageclass GetFile(View):
def get(self,request):
return JsonResponse(status=200,data={},safe=False)
# @csrf_exempt
def post(self,request):
wavfile=request.FILES['wavfile']
#logic of your wav file what you want to do
return JsonResponse(status=200,data={'success':'success'},safe=False)
这里提供一些链接
如果您对我的回答感到满意,请告诉我。
audiolab
和scipy
将这些wav文件合并成一个。 - l.b.vasoya