Как обрезать и соединить несколько частей аудиофайла, используя перекрестные переходы?


1

Я хочу сохранить несколько частей аудиофайла, объединенных вместе, но без каких-либо разрывов («щелчков») в точках соединения. Есть команда SoX, которая делает это ( https://superuser.com/a/677351 ), но она не выполняет никакого перекрестного затухания, поэтому будут разрывы. Есть ли способ достичь этого, используя утилиту командной строки или библиотеку? (Помимо написания моего собственного кода - я бы обязательно сделал это, если бы мне пришлось)

Ответы:


1

Оказывается, это вполне возможно сделать с SoX, даже с помощью всего лишь одного вызова SoX, использования trimи spliceэффектов. Но числовые аргументы не так просто написать. Все области обрезки, кроме последней, должны включать дополнительное количество времени в конце, которое будет использоваться для кроссфейдинга, и аргументы для сращивания должны также указывать правильные длины 1-й области, включая это дополнительное время, 1 + 2 после первого сращивания, 1 + 2 + + 3-й и т. Д.

Я написал сценарий, который делает это (на языке Scala), и я выпущу его, рано или поздно.

У Sox есть один недостаток: кажется, что trimэффект не работает с форматом с плавающей запятой, поэтому в конце аудиоданные преобразуются в (максимум) 24-битный целочисленный формат, это может быть приемлемым или нет в зависимости от вашего варианта использования.


Я знаю, что это три года спустя, но мне бы очень хотелось увидеть пример сокс (я не знаю Scala), даже если он не совсем точно показывает время.
kr37

@ kr37 Я давно этим не пользовался, но, может быть, я найду его и уточню ответ с более подробной информацией, когда у меня будет немного свободного времени. Не стесняйтесь пинговать меня снова на выходных, если я еще этого не сделаю.
Сардж Борщ

Спасибо, в моем случае сроки не очень точные. Кажется, что простой sox test.wav out.wav trim 50:00 =51:00 52:00 =53:00 54:00 =55:00 splice -qработает просто отлично.
kr37
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.