#python-3.x #audio #time #split
#python-3.x #Аудио #время #разделить
Вопрос:
Я записал немного музыки и загрузил в Instagram, что наложило минутную продолжительность на клип. Я потерял исходные файлы и скомпилировал эти минутные клипы таким образом, чтобы song__AA0, song__AA1, song__AA2, ...
они соответствовали одной названной песне AA
и повторялись для BB, CC, ...
. Но поскольку я обрезал видео вручную, начало song__AA1
будет повторять сегмент, который song__AA0
заканчивается; аналогично, начало song__A2
будет повторять сегмент, который song__AA1
заканчивается песней. Я пытался объединить эти минутные клипы, но найти точное время, в которое обрезать файлы, вручную сложно. Есть ли в python метод, который можно использовать для определения времени, в которое начало i 1
-й песни и конец i
-й песни перекрываются, чтобы я мог соответствующим образом объединить эти файлы?
Ответ №1:
Одной из идей было бы использовать аудио-отпечатки пальцев, например, Dejavu. Акустический отпечаток пальца — это сжатая цифровая сводка, отпечаток пальца, детерминированно сгенерированный из аудиосигнала, который можно использовать для идентификации образца звука или быстрого поиска похожих элементов в аудиобазе данных.
По сути, dejavu
будет создавать хэши поверх спектрограмм аудио.
Во-первых, создайте или подключитесь к MySQL, где Dejavu будет хранить отпечатки пальцев.
from dejavu import Dejavu
config = {
"database": {
"host": "127.0.0.1",
"user": "root",
"passwd": <password above>,
"db": <name of the database you created above>,
}
}
djv = Dejavu(config)
num_processes = 8
audio_extension = [".mp3", ".wav"]
djv.fingerprint_directory("directory_with_long_songs", audio_extension, num_processes)
Теперь, когда вы создали отпечатки пальцев, вы можете выполнить распознавание
from dejavu.recognize import FileRecognizer
song = djv.recognize(FileRecognizer, "your_shorter.wav")
Обратитесь к документам для API и интерпретации выходных данных.
Dejavu
это одна из многих таких программ. Вы можете создать свой собственный алгоритм снятия отпечатков пальцев, следуя, например, Shazam paper.