Как выполнять пакетные аудиофайлы везде, где есть тишина?

Я использую следующую команду в SoX для разделения множества больших аудиофайлов в каждом месте, где есть тишина дольше 0,3 секунды:

sox -V3 input.wav output.wav silence 1 0.50 0.1% 1 0.3 0.1% : newfile : restart

Однако это иногда приводит к созданию файлов, которые полностью молчат и обрезают аудио до каждого разрыва.

Я нашел лучшие результаты с Audacity, но мне нужно разбить сотни WAV файлов, и Audacity не может даже открыть 10 файлов одновременно без замораживания.

Как я могу использовать SoX или подобное программное обеспечение для разделения файлов в конце периодов молчания на 0,3 секунды, так что тихая часть все еще прикреплена к концу речи, но не раньше, и нет клипов, которые полностью молчат, если они не начинаются с начала input.wav?

Ответы

Ответ 1

если вы измените значение от 0,5 до 3,0, он отлично работает:

sox -V3 input.wav output.wav silence 1 3.0 0.1% 1 0.3 0.1% : newfile : restart

Ответ 2

Вы не указали какой-либо язык программирования, поэтому я предполагаю, что вы не особенно ищете способ самостоятельно его программировать (что делает его немного не по теме). Между прочим, сделать это будет непросто.

В любом случае, возможно, это делает трюк для вас:

http://www.nch.com.au/splitter/

Вы можете установить порог в дБ для разделения. Я предполагаю, что когда вы установите его на 0 дБ, вы получите весь звук, который вам нужен на каждый фрагмент.

Ответ 3

sox -V3 orig.wav p.wav silence -l  0   1 0.5 0.1% : newfile : restart

это работает для меня. Я нашел несколько полезных объяснений по команде здесь и здесь.

Ответ 4

Mmmm нет никаких параметров для установки пакетного процесса везде, где во многих аудиофайлах в wavepad есть тишина, это одна из немногих вещей, которые такой удивительный редактор по-прежнему отсутствует.