Как мне смешать аудио файлы с помощью Python? - PullRequest
9 голосов
/ 03 октября 2011

Я хотел бы сделать базовое микширование звука в python.

В качестве примера: я хотел бы взять два mp3-файла, сложить их вместе и вернуть один mp3-файл.Другой пример: я хотел бы взять первые десять секунд одного mp3-файла и добавить его в начало другого mp3-файла.

Как лучше всего выполнить эти задачи?Я хотел бы использовать встроенные функции Python, такие как audioop, но не могу найти ни одного хорошего учебника или примера кода для использования встроенных функций.как делать такие вещи.Я даже не уверен, что библиотеки Python похожи на mp3.Большинство вещей, на которые я смотрел, похоже, относятся к файлам WAV.Итак, если это так, я думаю, что последующим вопросом будет простой способ конвертировать mp3 в WAV для манипуляции и обратно?

Ответы [ 3 ]

18 голосов
/ 09 декабря 2012

Вы можете сделать это довольно легко используя pydub :

from pydub import AudioSegment

sound1 = AudioSegment.from_mp3("/path/to/file1.mp3")
sound2 = AudioSegment.from_mp3("/path/to/file1.mp3")

# mix sound2 with sound1, starting at 5000ms into sound1)
output = sound1.overlay(sound2, position=5000)

# save the result
output.export("mixed_sounds.mp3", format="mp3")
1 голос
/ 03 октября 2011

Вы можете проверить часть кода в проекте python audiotools . Это набор утилит командной строки, которые используют общий пакет Python. В audiotools включена утилита (trackcat), которая может содержать две или более звуковых дорожки; другой (tracksplit) может разбить звуковую дорожку (используя файл .cue). Эти, а также многочисленные другие включенные утилиты могут работать с аудиофайлами различной кодировки, включая mp3.

0 голосов
/ 03 октября 2011

То, как я делал это в прошлом, это просто использование подпроцесса . и позвоните sox .

например. subprocess.call(["sox", "in.1.mp3", "in.2.mp3", "out.mp3"])

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