Процесс сравнения набора звуков по сходствам называется Content Based Audio Индексирование , Извлечение и Отпечатки пальцев в исследованиях в области компьютерных наук.
Один из способов сделать это:
1) Выполнить несколько бит обработки сигнала для каждого аудиофайла, чтобы извлечь такие функции, как высота тона, частотный спектр, автокорреляция, динамический диапазон, переходные процессы и т. Д.
2) Поместите все функции для каждого аудиофайла в многомерный массив и поместите каждый многомерный массив в базу данных
3) Используйте методы оптимизации (такие как градиентное спуск ), чтобы найти лучшее соответствие для данного аудиофайла в вашей базе данных многомерных данных.
Хитрость в том, чтобы сделать это хорошо, заключается в том, какие функции
Есть несколько проектов, которые делают подобные вещи, включая MusicBrainz и EchoNest .
Echonest имеет один из самых простых API , которые я видел в этом пространстве. Очень легко начать.
P.S. Нет, я не работаю на Echonest и не знаю никого, кто там работает.