Shell-Script
從音頻文件中刪除靜音,同時留下空白
目前我們在一個 shell 腳本中使用這個命令來刪除音頻文件中的靜音:
ffmpeg -i $INFILE -af silenceremove=0:0:0:-1:1:${NOISE_TOLERANCE}dB -ac 1 $SILENCED_FILE -y
這工作正常,只是它消除了所有的靜音,導致剩餘的音頻被擠壓在一起。
如何在每段音頻之間留出兩到三秒的時間來做到這一點?
該解決方案需要非常高效,因為我們將處理大量音頻,並且應該使用可以相當容易地安裝在 Linux 和 OSX 上的工具,例如 ffmpeg 或 sox。
我見過的最好的方法是將
-l
標誌添加到靜默中,如下所示:sox in.wav out6.wav silence -l 1 0.1 1% -1 2.0 1%