2015-05-27 7 views
1

Моя цель состоит в том, чтобы получить части аудиофайла, который содержит нешумные звуки, используя SoX. Я прочитал эффекты SoX и нашел noisered и silence, которые я считаю полезными. Проблема в том, что я не нашел команду, которая может обрезать аудиофайл на основе молчащих пауз в нем.Обрезать аудиофайл и получить часть между тишиной

ответ

4

Я считаю, что то, что вы ищете, может быть достигнуто командой sox silence. Это позволяет вам снять тишину с любой части звука с учетом порога, продолжительности над ним и т. Д.

Для получения подробного руководства обратитесь к sox webpage, раздел молчания очень хорошо написан.


Если вы хотите разделить на молчание, а не «выжимать» все вместе, то вы можете попробовать что-то вроде:

sox input.wav slice.wav silence 1 1.0 2% 1 3.0 2% : newfile : restart 

Параметры являются:

input.wav - аудиовход файл

slice.wav - имя выходного аудиофайла (номера будут добавляться к каждому фрагменту)

silence - эффект название

1 1.0 2% - above_periods, продолжительность, порог

1 3.0 2% - below_periods, длительность, порог

+0

но тишина обрезка большого аудиофайла в маленькие, я имею в виду, если у нас есть большой аудио файл который содержит «Я использую SoX», отключает этот звуковой файл в маленьких: «I»; «Использовать»; «SoX» – nstanchev

+0

По умолчанию он не разбивает аудиофайл, вы должны использовать немного * sox magic *. См. Мой обновленный ответ. – jojek

+0

Огромное спасибо, я не знаю, правильно ли спросить вас здесь, но вы свободны в течение нескольких минут, чтобы объяснить мне, как это работает. – nstanchev