Как с помощью Sox сократить аудиофайл на 5 секунд, обрезая его с конца?
Например, вот как обрезать файл с самого начала:
sox input output trim 5000
Вот как добавить в конец 5 секунд тишины:
sox input output pad 0 5000
Как с помощью Sox сократить аудиофайл на 5 секунд, обрезая его с конца?
Например, вот как обрезать файл с самого начала:
sox input output trim 5000
Вот как добавить в конец 5 секунд тишины:
sox input output pad 0 5000
Синтаксис sox input output trim <start> <duration>
например sox input.wav output.wav trim 0 00:35
выведет первые 35 секунд в output.wav
.
(вы можете узнать, какая длина используется sox input -n stat
)
Из документации SoX по команде trim
:
Вырезает части из звука. Может быть задано любое количество позиций; звук не отправляется на выход, пока не будет достигнута первая позиция. Затем эффект чередуется между копированием и отбрасыванием звука в каждой позиции. Использование значения 0 для первого параметра position позволяет копировать звук с начала.
Например,
sox infile outfile trim 0 10
скопирует первые десять секунд, а
play infile trim 12:34 =15:00 -2:00
и
play infile trim 12:34 2:26 -2:00
оба будут воспроизводить звук с 12 минут 34 секунд до 15 минут (то есть длительностью 2 минуты 26 секунд), а затем возобновят воспроизведение за две минуты до окончания звука.
Согласно комментарию dpwe, < значения em> position интерпретируются как относящиеся к предыдущему положению, если только они не начинаются с =
(в этом случае они относятся к началу файла) или -
(в этом случае они относятся к концу файла).
Таким образом, обрезка пяти секунд до конца будет sox input output trim 0 -5
sox input output trim <start> <duration>
или sox input output trim <start> =<end>
. Полный синтаксис trim
принимает любое количество пар <position>
аргументов, которые по умолчанию интерпретируются относительно предыдущей позиции или относительно начала файла, если им предшествует '=', или относительно конца файла (если известное), если ему предшествует '-'. Выводится только звук между каждой парой позиций.
- person dpwe; 17.05.2015
Вышеуказанная команда неверна, она даст вам только последние 5 секунд. На самом деле вам нужно использовать:
sox input output reverse trim 5 reverse
что отрежет 5 секунд от конца файла.
sox input output trim 0 -5
- person get8p; 15.02.2013
Я новичок в SoX, но заметил, что эта страница часто появляется в результатах поиска для обрезки звука, и ее увидят многие, пытающиеся делать аналогичные вещи.
Таким образом, я хотел предложить то, что лично я считаю лучшим решением.
Я испытал тот же «щелчок» в конце файла, который Джон Смит Необязательно. Это говорит о том, что кратковременное затухание может удалить любые артефакты сбоев, когда звук закончится, и, конечно же, он работает. Ключевым моментом является принятие отрицательного значения для параметра позиции постепенного затухания, чтобы указать время до окончания звука.
Поэтому я не вижу лучшего способа достичь цели ОП, чем это:
sox full_length.wav trimmed.wav fade 0 -5 0.01
Параметр 1 равен «0», поэтому нарастание сигнала отсутствует. Параметр 2 удаляет последние 5 секунд, параметр 3 использует затухание 10 мс.
fade
у меня не работает на SoX v14.4.1.
- person joelostblom; 19.05.2017