Объединить несколько аудио файлов с проскальзыванием между каждым аудио файлом в 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
Другие вопросы по тегам