音ズレが発生してしまっている動画を修正する時に音声部分の先頭を数秒削除したり、逆に数秒追加したい時があります。
そんな時に Audacity を使ってもいいのですが、せっかくなのでCUIで扱える sox を使った方法を記録しておきます。
音声の先頭を少し削除
音声が映像に対して遅れてしまっている時は音声の先頭をその分だけ切り取って再合成します。
どのくらいズレてるかを確認する時はVLCの[ツール]->[トラックの同期化] の中の [オーディオトラックの同期化]を使うと便利です。というか他には方法を知りません。
仮に1.2秒ずれてしまっているなら
$ sox audio.wav audio_fixed.wav trim 1.2
とすればなおります。
無音部分を音声に追加
逆に音声が映像よりも早くなってしまってる場合は少しだけめんどくさくなります。
仮に3秒ずれてたなら、まず3秒の無音の音声を作成して
$ sox -n -r 44100 -c 2 silence.wav trim 0.0 3.0
その無音音声を元の音声に連結します。
$ sox silence.wav audio.wav audio_fixed.wav
ちなみに「合成(merge)」だと二つの音声が同時に聞こえるように結合して、「連結(concatenate)」だと2つの音声を順番に結合しますが、2つの用語は頻繁にこんがらがって使われています。
日本語圏でも英語圏でも、どちらでも。
参考
Padding an audio file with silence using sox - ActiveArchives
http://activearchives.org/wiki/Padding_an_audio_file_with_silence_using_sox