Как я могу использовать аудиофайл в 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'

Вернуться на верх