объединить фоновый аудиофайл

У меня есть 2 аудиофайла для основной и фоновой музыки, которые я хочу объединить (не конкатенировать). Окончательный аудиофайл должен быть до тех пор, пока основной файл, и если фоновая музыка короче, то он должен повториться.

Если для этого можно использовать команду Linux или библиотеку Python? Sox поддерживает слияние, но, похоже, не позволяет повторять фоновый звук.

Как возможное решение, почему бы не обнаружить, если длина фонового файла <длина файла переднего плана, а затем, если необходимо, построить фоновый файл, который является циклом? Тогда вы можете передать это в sox.

Вы должны иметь возможность получить длину из sndhdr (посмотрите на количество кадров).

Что касается способа слияния потоков на python, audioop.add может делать то, что вам нужно, хотя, если вы объединяете два источника с полным объемом, вам может понадобиться уменьшить объем одного из них (попробуйте -12db в качестве стартового) если вы смешиваете музыку и нет.

Более аудио-библиотеки можно найти здесь .