1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/iss2015302580272-homework_3

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Домашнее задание №3

Описание проекта

Проект на Java для распознавания песен на основе преобразования Фурье.

Структура кода

Код разделён на четыре модуля (package):

  • scanner;
  • fingerprint;
  • database;
  • grade.

Использование

1. database.StoreFingerprint

Считывает все файлы формата wav из указанной папки, преобразует их с помощью FFT и сохраняет в базе данных в таблицах song и songfinger. Также создаёт индексы для ускорения поиска. Время вставки одной песни продолжительностью 4 минуты составляет примерно 11 секунд.

2. grade.EnquirySong

Последовательно сравнивает finger_id. Создаёт массив data[song.length][] для хранения найденных совпадений hash-значений и offset-разницы. С помощью хэш-карты находит наиболее повторяющиеся значения и их количество в каждой группе. Сортирует результаты по количеству повторений в порядке убывания и выводит пять лучших результатов поиска. Точность поиска составляет 100%, время поиска фрагмента песни длительностью 5 секунд — около 2 секунд.

Журнал обновлений

Обновление v0.1 от 2016.11.1:

  • Реализовано чтение аудиофайлов и получение данных во временной области в виде double[].
  • В ScannerTest добавлен тестовый пример.
  • WaveConstants.java и WaveFileReader.java содержат методы для получения данных во временной области.

Обновление v0.2 от 2016.11.4:

  • Массив текста заменён на вывод в формате CSV.

Обновление v0.3 от 2016.11.6:

  • Завершено извлечение отпечатков пальцев, но не проверено на правильность.

Обновление v0.4 от 2016.11.7:

  • Импортированы библиотеки, начато подключение к базе данных.
  • Изучены основы синтаксиса.
  • Проверена правильность извлечения отпечатков пальцев.
  • Возник конфликт в git-репозитории, выполнено слияние и отправка изменений.

Обновление v0.4- от 2016.11.7:

  • Алгоритм завис, процесс откатился назад. Обновлён README, чтобы отметить этот момент.

Обновление v0.5 от 2016.11.8:

  • Проблема коммуникации решена.
  • Значения f1 и f2 в алгоритме извлечения отпечатков пальцев должны быть индексами частоты, а не значениями частоты.
  • После сортировки необходимо удалить дубликаты и выбрать максимальное значение (ранее была ошибка в понимании этого процесса, которая теперь исправлена).
  • Сложность алгоритма сортировки слишком высока, требуется оптимизация.

Обновление v0.6 от 2016.11.14:

  • Вместо пузырьковой сортировки используется сортировка выбором, сложность алгоритма O(n).
  • После сортировки необходимо удалить дубликаты и выбрать максимальное значение.

Обновление v0.7 от 2016.11.16:

  • Завершен этап сопоставления и оценки.
  • Оптимизированы алгоритмы FFT и поиска.
  • Добавлены скриншоты результатов.
  • Общий код приведён в порядок, удалены ненужные элементы, добавлены необходимые комментарии.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Простой аудиопоиск на основе алгоритма Shazam (слушаю песню, узнаю мелодию) — Java Требование к ссылке: https://iss-java.github.io/2016/10/23/Homework-3/ Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/iss2015302580272-homework_3.git
git@api.gitlife.ru:oschina-mirror/iss2015302580272-homework_3.git
oschina-mirror
iss2015302580272-homework_3
iss2015302580272-homework_3
master