Как я могу использовать аудиофайл в pydub через django
Ну, у меня есть код, который создает и сохраняет звук, и мне нужно внедрить в этот код систему обрезания тишины
views.py
def audio(request):
if request.method == 'POST':
cu = request.user.customer.pk
users = get_object_or_404(Customer, pk=cu)
js = get_object_or_404(JsonMap, user_id=users.id)
audio = request.FILES['data']
name = audio.name
name = name.replace(':', '-')
song = Song.objects.create()
audio_cut_logic = SoundCutter()
song.js = js
song.name = name
song.audio_file = audio
song.save()
return render(request, 'action.html', {'file_url': js})
models.py
def remove_sil(self, file, format="wav"):
sound = AudioSegment.from_file(file, format=format)
non_sil_times = detect_nonsilent(sound, min_silence_len=50, silence_thresh=sound.dBFS * 1.5)
if len(non_sil_times) > 0:
non_sil_times_concat = [non_sil_times[0]]
if len(non_sil_times) > 1:
for t in non_sil_times[1:]:
if t[0] - non_sil_times_concat[-1][-1] < 200:
non_sil_times_concat[-1][-1] = t[1]
else:
non_sil_times_concat.append(t)
non_sil_times = [t for t in non_sil_times_concat if t[1] - t[0] > 350]
return sound[non_sil_times[0][0]: non_sil_times[-1][1]]
я пытался создать sound.audio_file через мою функцию
song.audio_file = audio_cut_logic.remove_sil(audio)
Тогда я подумал, что мне нужно сначала создать этот аудиофайл, а затем использовать мою функцию
song.audio_file = audio
song.audio_file = audio_cut_logic.remove_sil(song.audiofile)
но все что я получил это: AttributeError: 'AudioSegment' object has no attribute '_committed'