У меня есть два коротких 2-3-минутных файла .wav, которые были записаны в течение 1 минуты. Они могут быть где угодно от 0 до 60 секунд. Я хотел бы синхронизировать их вместе. Существует сигнал синхронизации, который воспроизводится и присутствует в обоих аудиофайлах. В них очень мало звука, кроме громкого синхронизирующего тона, это очень очевидно, если смотреть в отвагу.
Я перепробовал все решения, перечисленные здесь Автоматически синхронизируйте две аудиозаписи в python , и ни одна из них не работает. Все они сталкиваются с одной и той же проблемой, когда добираются до этого метода:
def find_freq_pairs(freqs_dict_orig, freqs_dict_sample):
time_pairs = []
for key in freqs_dict_sample.keys(): # iterate through freqs in sample
if freqs_dict_orig.has_key(key): # if same sample occurs in base
for i in range(len(freqs_dict_sample[key])): # determine time offset
for j in range(len(freqs_dict_orig[key])):
time_pairs.append((freqs_dict_sample[key][i], freqs_dict_orig[key][j]))
return time_pairs
Каждый раз, когда внутренний цикл for заканчивается тем, что приходится выполнять (500k ^ 2) итераций для каждого из 512 ключей в freqs_dictСловарь. Это займет много месяцев, чтобы бежать. Это с двумя 3-4 секундными аудиофайлами. С 1-2-минутными аудиофайлами это было (5м + * 5м +) итераций. Я думаю, что, возможно, библиотека порвала с python3, так как все в этом потоке, казалось, были довольны ...
Кто-нибудь знает лучший способ синхронизации двух аудиофайлов с python?
Спасибо