Объединить несколько аудио файлов с проскальзыванием между каждым аудио файлом в sox
У меня есть около 20 аудио файлов (.wav) в папке, вот как я объединяю эти волновые файлы
sox *.wav output.wav
Я хочу добавить задержку или тишину между каждой волной.
я пытался pad
, но это просто поставить молчание только в начале и в конце output.wav
,
2 ответа
Решение
Вам нужно вставить тихую дорожку между каждой дорожкой, как вы их указали, чтобы вы получили что-то вроде:
sox track1.wav silence.wav track2.wav silence.wav ... output.wav
Вы можете сделать это вручную (как указано выше), или мы можем зациклить текущий каталог с помощью встроенного цикла for. Примерно так должно работать:
sox -n -r 44100 -c 2 /tmp/silence.wav trim 0.0 2
sox $(for f in *.wav; do echo -n "$f /tmp/silence.wav "; done) output.wav
Генератор тишины украден отсюда.
Создать 2 секунды (стерео) тишины
sox -n -r 44100 -c 2 silence.wav trim 0.0 3.0
Объединение файлов
sox silence.wav filetopad.mp3 silence.wav output.wav
источник http://activearchives.org/wiki/Padding_an_audio_file_with_silence_using_sox
Другое возможное решение
цитата из https://stackoverflow.com/questions/5587135/sox-merge-two-audio-files-with-a-pad
sox starts-last.mp3 -p pad 2 0 | sox - -m starts-second.mp3 -p pad 2 0 | sox - -m starts-first.mp3 combined.mp3