AIFFファイルの前後の無音部分をトリミングしてMP3に変換したい
AIFFファイルの前後の無音部分をトリミングしてMP3に変換したい
ffmpeg
を使う場合
# aiffのまま for i in *.aiff do ffmpeg -i "$i" -af "silenceremove=start_periods=1:start_duration=1:start_threshold=-60dB:detection=peak,aformat=dblp,areverse,silenceremove=start_periods=1:start_duration=1:start_threshold=-60dB:detection=peak,aformat=dblp,areverse" "$(basename -s .aiff "$i")_trimmed.aiff" done # mp3に変換 for i in *.aiff do ffmpeg -i "$i" -af "silenceremove=start_periods=1:start_duration=1:start_threshold=-60dB:detection=peak,aformat=dblp,areverse,silenceremove=start_periods=1:start_duration=1:start_threshold=-60dB:detection=peak,aformat=dblp,areverse" "$(basename -s .aiff "$i")_trimmed.mp3" done
sox
を使う場合
両サイドの無音部分を削除するコマンド例。
sox in.wav out.wav silence 1 0.1 1% reverse silence 1 0.1 1% reverse
silence
で無音部分を削除。
上記コマンド例の silence
オプションのパラメーターは下記の通り。
フィルターを使うかどうか | 無音が続く時間 | 無音とみなす閾値 |
---|---|---|
1 | 0.1 | 1% |
reverse
は前後を反転。
例:カレントディレクトリのaiffファイルを全部処理するコマンド例。前後の完全無音のみ削除。
# aiffのまま for i in *.aiff do sox "$i" "$(basename -s .aiff "$i")_trimmed.aiff" silence 1 0.1 0% reverse silence 1 0.1 0% reverse done # mp3に変換 for i in *.aiff do sox "$i" "$(basename -s .aiff "$i")_trimmed.mp3" silence 1 0.1 0% reverse silence 1 0.1 0% reverse done
参考ページ:
bash - batch convert mp3 files to wav using sox - Unix & Linux Stack Exchange
ubuntu - How to include input file name in output file name in ffmpeg - Unix & Linux Stack Exchange
audio - How to trim silence only from beginning and end of mp3 files using FFMpeg? - Super User
[ffmpeg][sox] ffmpeg と sox でドラマから音声を無音部分を除いて抜き出す答えを知りたい | 答えを知りたい