audio перевод - Как вы обрезаете конец аудиофайла с помощью SoX?





vote you (4)


Синтаксис - это sox input output trim <start> <duration>

например sox input.wav output.wav trim 0 00:35 первые 35 секунд в output.wav .

(вы можете узнать, какая длина использует sox input -n stat )

Из документации SoX по команде trim :

Вырезает части из аудио. Может быть задано любое количество позиций ; аудио не отправляется на выход до достижения первой позиции . Затем эффект чередуется между копированием и отбрасыванием звука в каждой позиции . Использование значения 0 для параметра первой позиции позволяет копировать с начала звука.

Например,

sox infile outfile trim 0 10

будет копировать первые десять секунд, в то время как

play infile trim 12:34 =15:00 -2:00

а также

play infile trim 12:34 2:26 -2:00

будут воспроизводиться с 12 минут 34 секунды в аудио до 15 минут в аудио (т.е. 2 минуты и 26 секунд), а затем возобновить воспроизведение за две минуты до окончания звука.

По комментарию dpwe значения позиции интерпретируются как относящиеся к предыдущей позиции , если они не начинаются с = (в этом случае они относятся к началу файла) или - (в этом случае они относятся к концу файл).

Таким образом, обрезка в пять секунд от конца будет sox input output trim 0 -5

Используя Sox, как мне сократить аудиофайл на 5 секунд, обрезание с конца?

Например, это как обрезать файл с самого начала:

    sox input output trim 5000

Вот как добавить к концу 5 секунд молчания:

    sox input output pad 0 5000



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

sox input output reverse trim 5 reverse 

который вырезает 5 секунд с конца файла.




Я новичок в SoX, но заметил, что эта страница часто появляется в результатах поиска для обрезки аудио, и многие из них будут пытаться делать подобные вещи.

Поэтому я хотел предоставить то, что, как я нашел, было лучшим решением лично.

Я испытал тот же «щелчок» в конце файла, о котором упомянул Джон Смит . Это предполагает, что кратковременное исчезновение может удалить любые артефакты скрепления, поскольку звук заканчивается и, конечно же, он работает. Принимается отрицательное значение для параметра позиции затухания, указывающее время до окончания звука - это ключ.

Поэтому я не вижу лучшего способа достичь цели OP, чем это:

sox full_length.wav trimmed.wav fade 0 -5 0.01

Параметр 1 равен '0', поэтому нет затухания. Параметр 2 удаляет последние 5 секунд. Параметр 3 использует 10 мс затухания




Технически можно вводить звук в восходящую линию голосового вызова на некоторых платформах (например, MSM8960 и APQ8064 от Qualcomm). Поддержка существует на уровне оборудования и на уровне драйвера устройства. Но чтобы сделать эту функциональность доступной для обычных приложений, вам нужно создать пользовательский Android-ROM, в котором вы добавили все необходимые части пользовательского пространства как на уровне Java, так и на родные слои Android.

Итак, короткий ответ: нет, нет стандартного способа сделать это как разработчик приложения (неважно, используете ли вы SDK или NDK).
Если вы работаете с OEM-производителем или каким-либо другим способом, вы можете создавать и запускать свои собственные Android-диски, вы, вероятно, сможете получить необходимую информацию, спросив своего поставщика платформы.







audio trim sox