我需要将 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 文件,并在需要时填充最后一个文件?
拆分文件,检查生成的文件 ( for i in *wav
), if (length < 10 seconds)
,填充它们。
获取波形文件长度: sox --info -D file.wav
填充波形文件:https : //superuser.com/questions/579008/add-1-second-of-silence-to-audio-through-ffmpeg
也许做一些计算:-)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句