Одной из идей было бы использовать звуковую дактилоскопию, например, Дежавю . Акустический отпечаток пальца - это сжатая цифровая сводка, отпечаток, детерминистически сгенерированный из аудиосигнала, который можно использовать для идентификации аудиосэмпла или быстрого поиска аналогичных элементов в аудиобазе. .
По сути, 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 .