Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无法加载在django中使用webRTC录制的音频文件_Python_Django_Webrtc_Audio Recording_Audio Processing - Fatal编程技术网

Python 无法加载在django中使用webRTC录制的音频文件

Python 无法加载在django中使用webRTC录制的音频文件,python,django,webrtc,audio-recording,audio-processing,Python,Django,Webrtc,Audio Recording,Audio Processing,我目前正在从事一个django项目,在该项目中,我需要录制用户的音频并将其发送到服务器进行处理。我已经使用webRTC成功地录制了音频,并使用ajax请求将其传递给视图。但是,当我尝试使用librosa加载音频文件进行处理时,会出现未知文件格式的错误 要检查录制时文件格式是否有误,请尝试librosa和webRTC都支持的不同文件格式 音频/wav;编解码器=MS\U PCM 音频/wav;编解码器=MS\U GSM610 为了检查在服务器上接收文件时是否有问题,我确实将文件上传到了服务器上,

我目前正在从事一个django项目,在该项目中,我需要录制用户的音频并将其发送到服务器进行处理。我已经使用webRTC成功地录制了音频,并使用ajax请求将其传递给视图。但是,当我尝试使用librosa加载音频文件进行处理时,会出现未知文件格式的错误

要检查录制时文件格式是否有误,请尝试librosa和webRTC都支持的不同文件格式

  • 音频/wav;编解码器=MS\U PCM
  • 音频/wav;编解码器=MS\U GSM610
  • 为了检查在服务器上接收文件时是否有问题,我确实将文件上传到了服务器上,我发现文件上传到了服务器上,可以直接在播放器上播放

    我用来上传文件并检索它的代码(注意:我直接将文件路径提供给任何记录的文件只是为了检查)

    现在,为了检查librosa无法读取该文件或该文件有问题,这次我从internet下载了一个示例音频文件,然后创建了一个新的audio.py文件,我尝试在其中加载两个文件(我上载的和我下载的)

    在这里,我发现下载的文件已成功加载,但我录制的文件仍未加载(我仍然收到文件格式未知的错误)


    我仍然无法理解该如何解决这个问题。我应该用其他东西替换使用webRTC,还是应该更改音频编解码器,或者需要使用不同的库(注意:我已经使用了librosa,它也间接使用了soundfile,也直接尝试了soundfile,我不能使用pyAudioAnalysis,因为我使用的是python 3.6,pyAudioAnalysis与此版本不兼容)?

    您是否使用MediaRecorder API进行录制?如果是这样,那么在构造函数中传递什么作为mimeType?另请参见“是”,我正在使用MediaRecorder API,并且我已经尝试了音频/webm;编解码器=作品,音频/wav;编解码器=MS_GSM610,音频/wav;编解码器=MS\U PCM@PhilippHancke在所有三种MIMEType中创建blob是因为在控制台中可以看到它您使用MediaRecorder API录制了吗?如果是这样,那么在构造函数中传递什么作为mimeType?另请参见“是”,我正在使用MediaRecorder API,并且我已经尝试了音频/webm;编解码器=作品,音频/wav;编解码器=MS_GSM610,音频/wav;编解码器=MS\U PCM@PhilippHancke在所有三种模拟类型中创建blob是因为它可以在控制台中看到
    def voice2(request):
        if request.method=='GET':
            return render(request,'record3.html')
        else:
            if request.method == 'POST' :
                print(request.FILES)
                audio=request.FILES.get("audioData")
                print(audio)
    
                file = request.FILES['audioData'] 
                path = default_storage.save('media/somename.wav', ContentFile(file.read()))
                (os.path.join(settings.MEDIA_ROOT, path))
    
                sig, samplerate = librosa.load(r'C:\Users\KRISHNA DAVE\project\tempproject\media\media\somename.wav')
    
                return render(request, 'record3.html')
    
    
    import librosa
    #downloaded from internet
    a,b=librosa.load(r"C:\Users\KRISHNA DAVE\Music\samplewav.wav")
    print(a,b)
    #recorded file
    y, sr = librosa.load(r"C:\Users\KRISHNA DAVE\project\tempproject\media\media\somename.wav")
    print(y,sr)