Невозможно загрузить аудиофайл, записанный с использованием webRT C in django - PullRequest
0 голосов
/ 26 января 2020

В настоящее время я работаю над проектом django, в котором мне нужно записать аудио пользователя и отправить его на сервер для обработки. Я успешно записал аудио с помощью webRT C и передал его на просмотр с помощью запроса ajax. Но когда я пытаюсь загрузить аудиофайл, используя librosa для обработки, он выдает ошибку для неизвестного формата файла.

в моей консоли я ясно вижу, что файл wav получен, но он не может загрузить файл для обработки

чтобы проверить, что, если я ошибаюсь с форматами файлов во время записи, пробовал разные форматы файлов, которые поддерживаются librosa и webRT C оба

  1. audio / wav ; codec = MS_PCM
  2. audio / wav; codec = MS_GSM610

чтобы проверить, не возникла ли у меня проблема с получением файла на сервере, я загрузил файл на сервер и я обнаружил, что файл загружается на сервер и может быть воспроизведен непосредственно на проигрывателе.

код, который я использовал для загрузки файла и извлечения его (примечание: я непосредственно указал путь к файлу для любого записанного файла просто для проверки)

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')

Теперь, чтобы проверить, что librosa не может прочитать файл или у него возникла проблема, на этот раз я скачал образец аудиофайла из inte rnet, затем создал новый файл audio.py, в котором я попытался загрузить оба файла (загруженный и загруженный)

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)

здесь я обнаружил, что загруженный файл был загружен успешно, но файл Я записал все еще не загружен (я все еще получаю ошибку, что файл в неизвестном формате)

Я все еще не могу понять, как мне решить эту проблему. Должен ли я заменить использование webRT C на что-то другое, или я должен изменить аудиокод c, или необходимо использовать другие библиотеки (примечание: я уже использовал librosa, которая также косвенно использует звуковой файл, а также пробовал звуковой файл напрямую, и я я не могу использовать pyAudioAnalysis, потому что я использую python 3.6 и pyAudioAnalysis несовместим с этой версией)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...