2015-09-23 5 views
2

У меня есть 10 минут аудио, который я хочу, чтобы разбить на куски времени следующим образом: (формат мм: ss.frac)Создание ломти аудио файлов с помощью SOX, если время начала и окончания известны

1. 1.wav -> 00.000 - 20.271 
2. 2.wav -> 20.272 - 47.550 
3. 3.wav -> 47.551 - 01:20.562 

Я попытался с помощью команды trim как такой

sox infile outfile trim 0.000 20.271 Однако формат trim start [length]

Худший случай, мне придется рассчитать длительность отдельных кусков. Есть ли другой способ?

ответ

3

Я обнаружил, что самое простое решение, чтобы написать команду, как, например:

sox infile outfile start =end 

Звук не передается в выходной поток, пока место старта не будет достигнуто и с указанием конечного местоположения может быть сделано с помощью знак «=» с конечным временем.

Так что код теперь будет, например:

sox forth.wav 10.wav trim 303.463 =353.790 
  1. Ссылка на документыhttp://manpages.ubuntu.com/manpages/precise/man1/sox.1.html
  2. Соответствующий отрывок:

облицовку старт [ длина | = конец] Необязательный параметр длины дает длину аудиосигнала до выходного сигнала после стартового образца и, таким образом, используется для обрезки конца звука . Альтернативно, абсолютное конечное местоположение может быть дано, предшествуя ему знаком равенства. Использование значения 0 для параметра start позволит только обрезать конец.

+0

Где вы находите эту информацию? Отправьте ссылку на эти документы. Как я вижу в вашем случае это работает как ** trim start [duration] ** –

+1

@DimaMelnik Я обновил свой ответ, включив ссылку и соответствующую выдержку. – Ketcomp

0

Нет, вам нужно рассчитать длину, если вы хотите использовать sox. Вы также можете использовать ffmpeg, который имеет фильтр atrim, который поддерживает время начала и окончания.

+0

Я узнал, что добавление знака '=' в конечное время даст вам точное конечное время вместо того, чтобы принимать это значение как продолжительность. Пожалуйста, см. Мой ответ – Ketcomp

 Смежные вопросы

  • Нет связанных вопросов^_^