Объедините аудио файлы в Python - PullRequest
2 голосов
/ 29 апреля 2020


Как объединить несколько аудиофайлов (wav) в один файл в Python? Я нашел это:

import wave

infiles = ["sound_1.wav", "sound_2.wav"]
outfile = "sounds.wav"

data= []
for infile in infiles:
    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()

, но это добавляет один аудиофайл к другому. То, что я хотел бы иметь, это код, который "укладывает" аудио файлы (с регулировкой громкости, пожалуйста). Это возможно даже в Python?

1 Ответ

3 голосов
/ 29 апреля 2020

Вы можете использовать модуль pydub. Это один из самых простых способов вырезать, редактировать, объединять аудиофайлы, используя Python.

Вот пример того, как использовать его для объединения аудиофайлов с регулятором громкости:

from pydub import AudioSegment
sound1 = AudioSegment.from_file("/path/to/sound.wav", format="wav")
sound2 = AudioSegment.from_file("/path/to/another_sound.wav", format="wav")

# sound1 6 dB louder
louder = sound1 + 6


# sound1, with sound2 appended (use louder instead of sound1 to append the louder version)
combined = sound1 + sound2

# simple export
file_handle = combined.export("/path/to/output.mp3", format="mp3")

Чтобы наложить звуки, попробуйте следующее:

from pydub import AudioSegment
sound1 = AudioSegment.from_file("1.wav", format="wav")
sound2 = AudioSegment.from_file("2.wav", format="wav")

# sound1 6 dB louder
louder = sound1 + 6

# Overlay sound2 over sound1 at position 0  (use louder instead of sound1 to use the louder version)
overlay = sound1.overlay(sound2, position=0)


# simple export
file_handle = overlay.export("output.mp3", format="mp3")

Полная документация здесь Документация Pydub API

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