Skip to content

Latest commit

 

History

History
23 lines (20 loc) · 2.77 KB

readme.md

File metadata and controls

23 lines (20 loc) · 2.77 KB

Текущая версия распознавания использования чужого контента базируется на идентификации аудио фрагментов.

Индексация

  • Аудиодорожка подвергается просмотру окном size=1024 и шагом 32.
  • В каждом окне выполняется быстрое преобразование Фурье и сигнал раскладывается по частотам
  • Частоты наносятся на логарифмическую шкалу
  • получившаяся спектрограмма визуализируется при помощи matplotlib в 2D массив
  • на спектрограмме находятся локальные максимумы в каждом квадрате определенного размера
  • далее оставляем только найденные точки и отбрасываем все остальное
  • строим связи между каждой точкой и N=10 последующих точек. Для каждой пары запоминаем относительное расположение.
  • Хешируем информацию о связи и сохраняем хеш и смещение в базу данных

Поиск

  • При поиске также получаем последовательность хешей для проверяемого файла
  • Находим в базе записи с такими же хешами
  • Для каждого найденного хеша кладем в корзину - mediaId, stored_offset-sampled_offset, прочую информацию. Если отрисовать график, в случае совпадения можно увидеть линию y = x + b:image
  • смотрим, сколько элементов в каждой корзине. Если есть корзина со значительным количеством элементов, значит совпадение найдено: image
  • Далее отбрасываются outlayers и определяются границы сегмента.

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

  • Запуск решения: в корневой папке docker compose up -d. Два контейнера postgres база и python код
  • docker-compose run python python index.py - подключиться к python контейнеру и проидексировать файлы в папке mytest
  • docker-compose run python python search.py file - проверить file на наличие заимствований. Диапазоны сегментов выведутся в output.