1

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

1 ответ1

1

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .