背景: ビデオと同期したいビデオ クリップとオーディオ トラックがあります。
ビデオ クリップから、リファレンス オーディオ トラックを抽出します。また、参照トラックと同期させたいトラックがもう 1 つあります。非同期は、各カットシーンの間隔を変更した編集に起因します。
ターゲット トラックを操作して、トラックのように見えるようにする (この場合は音のように聞こえる) 必要がありref
ます。これは、正しい位置で無音を追加または削除することになります。これは手動で行うこともできますが、非常に面倒です。したがって、これらの場所をプログラムで特定できるようにしたいと考えています。
例:
0 1 2
012345678901234567890123
ref: --part1------part2------
syn: -----part1----part2-----
# (let `-` denote silence)
出力:
[(2,6), (5,9) # part1
(13, 17), (14, 18)] # part2
私の考えは、最初から始めます:
Fingerprint 2 large chunks* of audio and see if they match:
If yes: move on to the next chunk
If not:
Go down both tracks looking for the first non-silent portion of each
Offset the target to match the original
Go back to the beginning of the loop
# * chunk size determined by heuristics and modifiable
ここでの主な問題は、サウンド マッチングとフィンガープリンティングが曖昧であり、比較的コストのかかる操作であることです。
理想的には、できるだけ少ない回数にしたいです。アイデア?