将大量 wav 文件分割成小部分

将大量 wav 文件分割成小部分

我有大量的 wav 文件(超过 50 000 个),我需要将每个 wav 文件拆分为 10 秒长的部分。

几乎不可能一一做到这一点,所以我的问题是:我怎样才能在 ffmpeg (或在 sox )中做到这一点?

答案1

中提到了这一点man sox

将输入文件拆分为多个长度为 30 秒的文件。每个输出文件名的名称中都有唯一的编号,如输出文件部分中所述。

sox infile.wav output.wav trim 0 30 : newfile : restart

因此,假设您的 wav 文件位于目录下~/myfiles,并且您想要创建分割版本,~/split您可以这样做

mkdir ~/split
cd ~/myfiles
find . -name '*.wav' \
 -exec sh -c 'mkdir -p ~/split/$(dirname "{}")' \; \
 -exec sox {} ~/split/{}  trim 0 10 : newfile : restart \;

相关内容