Shell-Script

從音頻文件中刪除靜音,同時留下空白

  • July 4, 2016

目前我們在一個 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%

我從這篇名為The Sox of Silence 的非常有用的部落格文章的範例 6 中複製了這個命令

引用自:https://unix.stackexchange.com/questions/293376