Как связать несколько аудио файлов как один файл в Python? - PullRequest
0 голосов
/ 24 марта 2019

В моей системе я должен перечислить все файлы WAV из одной папки, а затем я должен связать эти файлы как один файл. У меня есть код для привязки двух файлов, но у меня есть 8 или более звуковых файлов, я должен связать эти файлы. Кто-нибудь может мне помочь? Решение Stackoverflow объединяет только два аудиофайла. Я должен объединить много аудио файлов из папки. Я не знаю, сколько аудиофайлов попадет в эту папку.

этот код связывает два файла:

 print(glob.glob('upload/updated_audios/*.wav'))
    file_data = glob.glob('upload/convertedAudio/*.wav')
    outfile = "upload/output_files/output.wav"

    data = []
    for infile in file_data:
        w = wave.open(infile, 'rb')
        data.append([w.getparams(), w.readframes(w.getnframes())])
        w.close()

    output = wave.open(outfile, 'wb')
    output.setparams(data[0][0])
    output.writeframes(data[0][1])
    output.writeframes(data[1][1])
    output.close()

1 Ответ

1 голос
/ 24 марта 2019
file_data = glob.glob('upload/convertedAudio/*.wav')
outfile = "upload/output_files/output.wav"

    with wave.open(outfile, 'wb') as wav_out:
        for wav_path in file_data:
            with wave.open(wav_path, 'rb') as wav_in:
                if not wav_out.getnframes():
                    wav_out.setparams(wav_in.getparams())
                wav_out.writeframes(wav_in.readframes(wav_in.getnframes()))

этот код работает, но я не могу объединить в порядке.этот ответ уже в вопросе stackoverflow.но этот вопрос отличается, поэтому этот ответ наиболее подходит для этого вопроса.

примечание: порядок означает возрастание и убывание.

...