protyposis / AudioAlign

Audio Synchronization and Analysis Tool
GNU Affero General Public License v3.0
137 stars 16 forks source link

[Request/Suggestion] Support unpredictable frame drops and unmatching speed/pitch (drift correction) #12

Closed alopatindev closed 7 months ago

alopatindev commented 7 months ago

If anyone considers implementing this feature in AudioAlign/Aurio and/or suggests possible ideas for implementation, please share them here. Thanks!

protyposis commented 7 months ago

What you are describing is generally referred to as drift correction. Drift is usually, but not necessarily always, related to pitch change.

unpredictable frame drops in both tracks

This can be interpreted as a case of non-linear drift (w/o pitch change).

unmatching overall average speed (often with higher pitch for faster audio)

This can be interpreted as linear drift, which is the simplest case (e.g., PAL speed-up).

AudioAlign already includes tools to handle drift semi-automatically, but I'll need to validate. Could you provide example files?

alopatindev commented 7 months ago

Could you provide example files?

Sure, here are some examples of problematic extracted audio tracks (password is SyncWithDriftCorrection, size is ≈11 GiB, sha256sum is dff403ac3d1958eff2636b3806af8a58cc21a37bb64e36dae2cef5e7813fbaf2).

Please note that some of these files may contain multiple audio tracks, sometimes with wrong language labels. Thanks!

protyposis commented 7 months ago

Thanks, here's an example video with the The_OC set. I'm not sure what dubbed vs. restored means, but I used the dubbed_1 and restored files as they seem to be two different languages with a different runtime. I transcoded them to .wav because direct FFmpeg decoding in AudioAlign isn't super stable yet. The aligned tracks are perfectly in sync:

https://github.com/protyposis/AudioAlign/assets/189372/e619fd13-3486-43f5-83dd-eb2de671e7e0

Looking at the alignment graph, we can immediately see that there's

image

alopatindev commented 7 months ago

Wow, thanks for checking it; that's really great that AudioAlign can handle such cases!

andonagio commented 4 weeks ago

This is awesome. Is it possible to achieve this via command line? I have a batch of files with frame rate/pitch issues that need to be synced up, and I'd rather not do each one manually.