Войти

Показать полную графическую версию : SoX - Sound eXchange Files


semiono
04-02-2023, 22:14
for %%* in (c:\A\*.wav) do sox "%%~*" -t wavpcm "c:\@\%%~n*.wav" trim 0 2

Как-то примерно работает, но нельзя ли улучшить? Можно ли заменять файлы на самих себя, то есть не использовать две папки source/target? Или это от sox конкретно зависит?
Хотелось бы заменить жёсткое указание целевых папок, хотя бы одну убрать IN или OUT.
Я имею ввиду сделать "батник", положить его в папку windows и просто обращаться к нему из разных папок как к утилите. Как бы надстройка над sox.exe

Почему ".wav" надо приписывать? А если %%~f вместо %%~n

Или использовать относительные пути ..\..\

Вся проблема в перечислении файлов, если бы просто sox *.wav, но так не работает, может через dir | .. как-то? Хотя FOR тоже хорошо, но замысловато.

---

Вобще-то я сделал из папки r в папку w, вроде корректно

for %%* in (r\*.wav) do sox "%%~*" -t wavpcm "w\%%~n*.wav" pad 0 5

DJ Mogarych
04-02-2023, 23:47
Какое действие над wav тут производится?

Можно ли заменять файлы на самих себя, то есть не использовать две папки source/target? »Если только сделать механизм копирования/замены. Напрямую никак.

semiono
05-02-2023, 00:15
for %%* in (r\*.wav) do sox "%%~*" -t wavpcm "t\%%~n*.wav" pad 0 5
for %%* in (t\*.wav) do sox "%%~*" -t wavpcm "w\%%~n*.wav" trim 0 3
А я уже столкнулся с тем что иногда аж три папки надо. Сначала добавить длину, а потом обрезать.
Дело в том что короткие файлы сами не удлиняются, чтобы их привести к одинаковой длине.
Хотя может в документации это можно совместить, не знаю.

DJ Mogarych
05-02-2023, 10:07
Не понимаю смысла. Добавляется 5 секунд в конце, а потом берётся 3 секунды в начале?

Может быть, лучше перейти на ffmpeg как более универсальное, гибкое и постоянно обновляемое решение.

https://ffmpeg.org/ffmpeg-all.html#apad
https://ffmpeg.org/ffmpeg-all.html#atrim

Там можно комплексный фильтр прописать.

semiono
05-02-2023, 18:18
Вначале 0 (ничего не добавляется)
Добавляется 5 в конец, а потом обрезается до 3-х, чтобы всё получились одной длины.
Если файлы короче 3-х, то они игнорируются, к тому же ошибки об этом в консоль выводятся.
Но мне нужны все одной длины, заодно выровнить. pad по русски значит append :)

semiono
05-02-2023, 19:07
https://madskjeldgaard.dk/posts/sox-tutorial-split-by-silence/

sox threebursts.wav burst_num.wav silence 1 0.1 1% 1 0.1 1% : newfile : restart


Забавно, что это работает из cmd.exe напрямую, а из bat.cmd не работает правильно. Что за : newfile : restart ?

--
ffmpeg может разделить файл на несколько по.. тишине между.. звуком? ...как бы альбом на треки скажем?
Sox пока я не понял, оставляет куски тишины вроде бы при жёстких установках, хотя дело делает, режет.

DJ Mogarych
05-02-2023, 21:34
Может: https://stackoverflow.com/a/36077309




© OSzone.net 2001-2012