2014-01-03 4 views
2

Я хочу объединить несколько аудиофайлов. Я использую команду linux sox.Слияние аудиофайлов

shell_exec('/usr/bin/sox 1.wav 2.wav combined.wav '); 

Он отлично работает и генерирует комбинированный аудиофайл.

Длина файла 1.wav и 2.wav составляет 90 секунд, соответственно 50 секунд. здесь эта команда sox генерирует comb.wav длиной 140 секунд.

Здесь в 2.wav первые 20 секунд аудио уже доступны в 1.wav последних 20 секунд аудио. Поэтому я хочу объединить такой, что мой объединенный.wav должен быть 120 секунд. Итак, я хочу удалить дублированный звук в файле объединенный.wav, который в последние несколько секунд находится в 1.wav и в начале несколько секунд в 2.wav.

Здесь я просто даю второй, как только для примеров. В моих действительных кодах секунды не фиксируются. У меня есть только аудиофайлы.

Есть ли способ сделать это с помощью команды Linux или классов PHP?

ответ

0

Вы должны использовать

-p для SOX используется для трубопроводов

-p для SOX используется для трубопроводов - в основном, это говорит Сокс использовать стандартный вывод в качестве выхода. Использование - поскольку вход во второй sox на самом деле говорит, что вход - это stdin (который, случается, является stdout предыдущего sox, поскольку мы соединяемся с |). pad 30 0 указывает на 20 секунд в начале и 0 секунд в конце.

Поскольку вы хотите площадку первых 30 секунд второго аудио

$ sox 1.wav | sox - -m 2.wav -p pad 30 0 combined.wav 
+1

Я. вы правы. Можете ли вы мне немного помочь. Здесь я просто даю второй пример только для примеров. В моих действительных кодах секунды не фиксируются. У меня есть только аудиофайлы. –

+1

@ Наше объяснение того, что вы делаете, вероятно, поможет больше, чем кормить ложкой. – duellsy

+0

- это количество задержек между файлами, неизвестно вам и случайным? –

0

@Naveen Кумар: -p варианта Сокса: Запуск в режиме предварительного просмотра и быстро бегать. Это несколько ускорит SoX, когда выходной формат имеет различное количество каналов и отличается от входного файла.

Смежные вопросы