将 wav 文件分割为相同持续时间的部分,如果需要则用静音填充

将 wav 文件分割为相同持续时间的部分,如果需要则用静音填充

我需要将 wav 文件分割成多个 10 秒长的 wav 文件,但是每个生成的 wav 文件必须长度正好是 10 秒,如果需要添加静音 - 因此,如果 wav 文件的持续时间(以秒为单位)不是 10 的倍数,则最后一个 wav 文件应该用静音填充。

我看过一些答案(1,2,3)其中展示了如何使用 sox 和 ffmpeg 将文件分割成相等长度的块:

$ ffmpeg -i file.wav -f segment -segment_time 10 -c copy out%03d.wav
$ sox file.wav output-.wav trim 0 10 : newfile : restart            

但这些命令生成的最后一个文件通常长度不到 10 秒。有没有办法在同一个命令中分割 wav 文件,并根据需要填充最后一个文件?

答案1

拆分文件,检查生成的文件 ( for i in *wav)、if (length < 10 seconds)填充它们。

也许做一些计算:-)

相关内容