Этот репозиторий содержит веб-приложение, которое интегрируется с системой музыкальной рекомендации, которая использует набор данных из 3415 аудиофайлов, каждая из которых длится тридцать секунд, используя чувствительную к местности хэшинг (LSH) для определения ритмической сходства.
В поисках информации о музыкальной информации представляет собой проблему из -за различных способов представления аудио, что затрудняет определение того, какие функции следует приоритетировать в запросах. Чтобы упростить эту проблему, наша реализация сосредоточена специально на ритме песен как функцию единственного запроса. В то время как предыдущие исследования изучали музыкальные запросы на основе ритма, текущие методы страдают от неэффективности, поскольку они требуют запроса всей структуры данных в соответствии с ритмами песен. Чтобы преодолеть это ограничение, мы предлагаем использование чувствительного к местному хешированию (LSH), методике, который эффективно идентифицирует аналогичные элементы в больших наборах данных, не требуя исчерпывающего поиска.
Чувствительное к местности хеширование (LSH) является широко принятой методикой для приближения к поискам ближайшего соседей. Он эффективно идентифицирует аналогичные элементы в больших наборах данных, отображая их с более низким пространством. Тем не менее, традиционно, чувствительное к местности хэшинг (LSH) использует другой метод, называемый Minhash (или схема Hashanty, чувствительной к месту, чувствительной к месту перестановки, для оценки сходства. Минхаш обычно используется в добыче данных и поиске информации. Хотя Minhash, как правило, эффективен в оценке сходства, он имеет определенные ограничения, которые могут препятствовать его эффективности в конкретных приложениях.
Чтобы учесть эти ограничения, мы решили реализовать подход LSH, используя еще одну эффективную методику, называемую приблизительными ближайшими соседями (ANN). Этот метод хорошо подходит для поиска приблизительных ближайших соседей в больших наборах данных. Используя приблизительных ближайших соседей (ANN) вместо Минхаша, мы стремимся повысить эффективность и эффективность реализации чувствительной к местности хэширования (LSH) в нашем проекте.
Приблизительные ближайшие соседи (ANN) предлагают более универсальное решение для чувствительного к местному хешированию (LSH), поскольку он может приблизительно ближайших соседей для различных показателей расстояния. Напротив, Minhash специально разработан для сходства Жакарда. Эта более широкая применимость позволяет нашему подходу предоставлять более точные оценки ближайших соседей по сравнению с Минхаш, особенно при работе с высокоразмерными наборами данных, которые требуют поиска сходства на основе различных показателей расстояния, таких как евклидова или сходство косинуса.
Что касается сложности времени, то и приблизительные ближайшие соседи (ANN), так и Минхаш в конечном итоге реализуют хэш-таблицу с чувствительным к местным хешированием (LSH), что приводит к сложности O (1) для поиска в любом случае. Тем не менее, наша фокус больше лежит на эффективности памяти, где приблизительный подход ближайших соседей (ANN) превосходит Минхаш. Этот аспект особенно важен для нашей реализации, так как используемый нами аудио набор данных довольно большой, весом 3,3 Гиб.
Следовательно, используя приблизительные ближайшие соседи (ANN) вместо Минхаша, мы достигаем повышенной точности при оценке ближайших соседей, сохраняя при этом эффективное время поиска и повышение эффективности памяти, обеспечивая оптимальную производительность для нашей реализации с помощью значительного аудиобата.
Music Recommendation Based on Rhythmic Similarity Using Locality-Sensitive Hashing (LSH).ipynb -содержит реализацию нашей реализации Hashing-Hash (LSH), для обучения и оценки системы музыкальных рекомендаций в аудиокатате.app.py - исходный код для веб -приложения (колба), который сопровождает систему музыкальной рекомендации.templates - содержит исходные коды для веб -страниц, а именно index.html и predict.html , которые отображаются веб -приложением (Flask).static - содержит все значки и визуальные элементы, используемые веб -приложением (колба).staticfiles - каталог, где хранятся аудио файлы, загруженные пользователями в веб -приложении (Flask).features.pkl -объектный файл, содержащий функции Cepstral Cepstral Cepstral Cepstral (MFCC) всех аудиофайлов, используемых для обучения.music.ann -Файл сопоставления с памятью (MMAP), который содержит объект AndiOndex для системы музыкальных рекомендаций, используя приблизительные ближайшие соседи (ANN). app.py и обратитесь к данной ссылке на хост -порт./predict , вы получите как лучшие, так и худшие рекомендации для загруженного аудиофайла.pied_piper_download.csv будет сохранен в текущем каталоге, который будет включать аналогичные аудио сегменты, идентифицированные из загруженного аудиофайла. Этот проект существует благодаря необычным людям, которые внесли свой вклад.