sox: Разделить звук на тишине, но молчать

У меня есть несколько аудиокниг, которые хранятся в больших mp3-файлах. И я пытаюсь разбить эти большие mp3-файлы на несколько небольших файлов.

Я нашел инструмент, который может обнаруживать тишину в аудиофайлах и разделять аудиофайлы на основе этого «разделителя».

Вот пример:

sox -V3 audiobook.mp3 audiobook_part_.mp3 \ silence 1 0.5 0.1% 1 0.5 0.1% : newfile : restart 

Это будет в основном разделять audiobook.mp3 на audiobook_part_001.mp3 , audiobook_part_002.mp3 , … где тишина> = 0,5 секунды.

Теперь проблема состоит в том, что эта команда не только разбивает файл, но и снимает тишину.

Поэтому, когда вы воспроизводите новые файлы в списке воспроизведения, звук треков / абзацев сжимается вместе.

Итак, как вы можете сообщать sox только разделить файл, но сохранить тишину (в конце каждого трека)?

One Solution collect form web for “sox: Разделить звук на тишине, но молчать”

Вы можете сохранить все паузы в разделенных частях с небольшими изменениями. Начиная с вашей исходной команды:

 silence 1 0.5 0.1% 1 0.5 0.1% 

Первый триплет значений означает удаление тишины, если таковая имеется, в начале до 0,5 секунд звука выше 0,1%. Второе триплетное средство останавливается, когда есть минимум 5 секунд молчания ниже .1%. Остальная часть вашей команды : newfile : restart , затем запускает новый выходной файл и снова начинает искать звук в начале. Таким образом, первый файл заканчивается, когда начинается тишина, и второй файл начинается, когда тишина заканчивается.

Простейшим вариантом для улучшения этого является silence -l . Он сохранит 5 секунд молчания, вызвавшего конец файла. К сожалению, любое молчание будет удалено, потому что это начало следующего файла. Легкий способ сохранить больший зазор – объединить -l с более длительным временем обнаружения, например, 2 секунды:

 silence -l 1 0.5 0.1% 1 2.0 0.1% 

Теперь вы будете расколоты, если будет хотя бы 2 секунды молчания, но вы сохраните первые 2 секунды пробела. Чтобы избежать потери тишины, просто удалите обнаружение молчания в начале. Вам нужно заменить триплет на один 0 :

 silence -l 0 1 2.0 0.1% 

Если вы хотите играть с простыми звуковыми файлами, чтобы увидеть, как справляется с ситуациями sox , вы можете легко создать 2 звуковых файла, один из которых состоит из 1 секунды тона, а один из которых состоит из 1 секунды молчания, а затем объедините их вместе, как вы пожелаете раньше представляя результат в качестве вклада в эффект silence . Например, создайте:

 sox -n gap.wav trim 0 1 sox -n tone.wav synth 1.001t sine C5 

затем присоедините тональный тон-тон-зазор и создайте out.wav используя свой эффект, и прислушайтесь к результату:

 sox gap.wav tone.wav gap.wav tone.wav out.wav silence 1 0.5 0.1% play out.wav 
  • SOX-скрипт для распознавания специального шаблона
  • как указать порт пересылки при использовании нескольких служб tsocks?
  • Как заставить VPN-клиентов использовать только прокси-сервер SOCKS5?
  • Какими процессами порты (в качестве конечных точек связи) относятся к пересылке портов SSH?
  • Как создать группу SOCKS?
  • Обратные носки5 с использованием SSH
  • Как прозрачный прокси-сервер SOCKS знает, какой IP-адрес назначения использовать?
  • Использовать прокси-сервер socks для команд в терминале
  • SSH-туннелирование терпит неудачу с «административно запрещено: open failed»
  • можно ли проверить, работает ли локальный прокси-сервер socks со сценарием оболочки?
  • Как настроить SOCKS4 или 5 прокси на CentOS 5.8?
  • Interesting Posts

    Почему эти файлы в фрагменте ext4 фрагментированы?

    Попытка получить конкретную информацию из массива

    Как рассказать xargs, какой аргумент выбрать?

    Чтобы настроить яркость-контрастность в плоскости с помощью Gimp / ImageMagick / …?

    В чем разница между флагами FreeBSD, неизменяемыми и неподходящими?

    Изменить текст на звездочки на вкладке

    Цитирование в $ (замена команды) в Bash

    wifi – достигнуто максимальное количество ожидающих ответов на соединение

    Как перекомпилировать и запустить предварительно собранный драйвер ядра Linux как пользовательский модуль?

    Как заблокировать событие, когда в локальной файловой системе был создан файл с определенным контентом (заданный, например, контрольной суммой)?

    Пользовательская подсветка для gtksourceview не работает

    Распространение приложения с .so-файлами?

    Не удается получить доступ к серверу ubuntu с других машин, кроме машины, на которой размещена виртуальная машина, которая является моим сервером ubuntu

    играя звук / уведомление в finch поверх ssh на моей локальной машине

    Записывает ли `ln -sf` существующие файлы, которые являются только символическими ссылками

    Linux и Unix - лучшая ОС в мире.