В настоящее время я работаю над проектом django, в котором мне нужно записать аудио пользователя и отправить его на сервер для обработки. Я успешно записал аудио с помощью webRT C и передал его на просмотр с помощью запроса ajax. Но когда я пытаюсь загрузить аудиофайл, используя librosa для обработки, он выдает ошибку для неизвестного формата файла.
в моей консоли я ясно вижу, что файл wav получен, но он не может загрузить файл для обработки
чтобы проверить, что, если я ошибаюсь с форматами файлов во время записи, пробовал разные форматы файлов, которые поддерживаются librosa и webRT C оба
- audio / wav ; codec = MS_PCM
- 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 несовместим с этой версией)?