Audio
將 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 文件,如果需要,填充最後一個文件?
拆分文件,檢查生成的文件 (
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
也許做一些計算:-)