ТЕХНОЛОГИЯ "ТЕНИ"
info@volnorez.com
+7 (48762) 3-73-63

Данная технология позволяет находить похожие аудиофайлы среди многих миллионов музыкальных треков. При этом степень сходства можно варьировать в широком диапазоне:

  • музыка в одном стиле исполнения
  • разница неотличима на слух
  • файлы абсолютно идентичны

Следует сразу отметить принципиальное отличие данной технологии от других, имеющих сходное направление. «Тени», в отличии от обычного хеширования, работают не с идентичными, а с похожими аудиофайлами. Также следует понимать, что технология предназначена для сравнения файлов целиком, а не по фрагментам. И «похожесть», в большинстве случаев, означает неотличимую на слух разницу, хотя исходные музыкальные файлы могут сильно отличаться по частоте, формату и качеству записи в целом.


Как и в технологии хеширования, работа по сравнению происходит не с самими файлами а с набором параметров музыкальных треков. Для простоты, здесь и далее, для определения всего множества параметров одного трека, будет использоваться термин «тень».


ОБЛАСТИ ПРИМЕНЕНИЯ
Оптимизация дискового пространства, сокращение затрат на оборудование
подробнее

Данный подход применим ко всем случаям, когда появляется необходимость в хранении большого объёма пользовательских аудиофайлов. Это может быть социальная сеть, хостинг музыкального контента, радиохостинг.


Представим себе ситуацию, когда у вас есть, скажем 10 000 000 музыкальных треков. Для всех вышеперечисленных случаев это совсем не много. Итак, если каждый трек занимает в среднем 5 МБ, получим:

10 000 000 * 5 = 50 000 000 МБ = 50 ТБ


Но ведь мы знаем, что скорость интернета у пользователей может сильно отличаться, а это значит, что желательно хранить файлы хотя бы в трёх форматах, скажем: 320 кбит/с, 192 кбит/с, 64 кбит/с. А ведь это ведёт к увеличению занимаемого файлами пространства в 2-3 раза! То есть нам нужно уже не 50, а 125 терабайт. Не забываем про необходимость дублирования данных, чтобы обеспечить их сохранность. Даже при использовании хитрых алгоритмов, увеличения объёма на 50% вряд ли избежать. Получаем приблизительно 185 ТБ на каждые десять миллионов треков.


Даже по самым скромным подсчётам, для обслуживания такого объёма, вам понадобится 30 серверов общей стоимостью порядка 2 000 000 рублей. А ведь эти серверы ещё необходимо разместить и обслуживать. Если представить, что все затраты на обслуживание каждого сервера обойдутся в 10 000 рублей в месяц (колокация, интернет, амортизация, обслуживающий персонал), то получится, что за один год вы потратите 3 600 000 рублей на каждые 10 000 000 треков!!! А если их 100 000 000…


Наша технология позволяет сократить размер занимаемого файлами дискового пространства в 3-5 раз! При этом, чем больше у вас файлов, тем больше вероятность того, что есть дубликат того трека, который пользователь сейчас закачивает. Соответственно трудно даже предсказать экономию на 100 000 000 треках. Но на 10 000 000 она составит от 2 000 000 до 3 000 000 рублей в год. При этом не учитывается экономия при закупке и установке оборудования.


Наверно, сюда же следует добавить, что обслуживание 5-6 серверов принципиально отличается от обслуживания 50 или 100. Ведь для больших объёмов требуются как специальные программные решения, так и сведущий персонал.


Удаление из результатов поиска одинаковых композиций
подробнее

Наверно, всем нам известна ситуация, когда при наборе в поиске имени интересующего нас автора, в ответ нам выскакивает список его композиций, при этом, сначала идёт два десятка одинаковых треков, потом десяток других, опять же одинаковых и так далее. Бывает и так, что содержимое файла вообще не соответствует нашему ожиданию и, например, носит чисто рекламный характер.


Всего этого можно избежать с использованием нашей технологии. С помощью неё можно определить одинаковые на слух треки и выводить в результатах поиска только один из них. Также можно повысить релевантность поиска, если учитывать количество одинаковых треков. И правда, чем больше пользователи загрузили один и тот же трек, тем, вероятно, он более популярен и, соответственно, более желанен в результатах поиска.


Определение и удаление нежелательного контента
подробнее

Представим себе случай, когда правообладатель обратился к нам с просьбой удалить его произведение с ресурса. Ситуация вполне обычная. И в случае её возникновения, возникает вопрос: «А как это сделать!?». Ведь одни и те же композиции могут иметь разное название, качество записи и даже немного отличаться по содержанию вроде: «Группа любителей рока представляет…». Тем более, необходимо пресечь возможность закачивания или обмена между пользователями такими треками.


Опять же «тени» приходят на выручку в этом случае. Возможно просто указать один из «нежелательных» треков и степень похожести, чтобы отсечь закачку и обмен таких записей.


Такой подход сохраняет очень много нервных клеток!


Определение «правильного» названия музыкального трека
подробнее

Итак, у вас есть пара миллионов честных, лицензионных треков. Да-да, именно такое условие должно быть соблюдено для реализации этого пункта. Теперь для вас ничего не стоит определить как называется трек, загружаемый сейчас пользователем.


Подробнее. Например, есть ресурс с миллионами оригинальных треков с оригинальными названиями, авторами и прочей мета информацией. Есть другой ресурс, скажем социальная сеть. И вот пользователь социальной сети захотел узнать, что же это у него за песня такая «Unknown-1». Он нажимает соответствующую кнопочку, и социальная сеть обратится к сайту с миллионами оригинальных треков, и выдаст правильную информацию относительно содержимого файла. С тем же успехом роль социальной сети может играть просто приложение на планшете или мобильном телефоне, а роль загруженного трека, просто файл из личной библиотеки пользователя, который он только что получил по блютусу.


Конечно, уже существуют технологии, которые позволяют определить название трека по напеву. Однако, они все закрыты и, при всей своей невероятности, не отличаются большой точностью, а также требуют огромных ресурсов для работы алгоритма.


В случае с «тенями» всё вообще может происходить на планшете пользователя без подключения к интернету.


ПРЕИМУЩЕСТВА ТЕХНОЛОГИИ
Отсутствие необходимости хранить композиции
подробнее

Примечательной особенностью нашей технологии является то, что для получения списка похожих композиций нет необходимости хранить их на компьютере, на котором происходит поиск и сравнение. В этом смысле есть некоторая схожесть со стандартным подходом хеширования, когда вместо файла хранится некоторая уникальная хеш-сумма и, возможно, некоторый набор дополнительной информации, между которыми и производятся все операции. Только в данном случае выбираются не идентичные аудиофайлы, а треки с любой желаемой степенью похожести.


Такое обстоятельство даёт некоторые преимущества:

  • Независимость системы. Всё можно расположить на отдельном сервере. Это значительно уменьшает количество головной боли как программистам, так и системным администраторам.
  • Полная независимость. Система вообще, для некоторых целей, может быть отключена от интернета и обновляться «с флэшки» или при подключении. Это, например, может быть приложение для планшета или телефона.

Малый объём базы данных необходимой для работы алгоритма
подробнее

Как уже говорилось выше, для работы алгоритма необходима база данных, где хранится некоторая информация о каждом треке. Чаще всего, когда речь заходит о неточном сравнении, такие базы данных могут достигать нескольких терабайт! Ведь для каждого трека, порой, требуется избыточная информация во избежание слишком долгого процесса сравнения. В нашем случае, размеры базы настолько малы, что составляют всего порядка двух гигабайт на каждый 1 000 000 треков! И это без какого-либо сжатия!


Таким образом, для повышения скорости работы алгоритма, всю базу можно располагать в оперативной памяти, что как вы сами понимаете, даёт огромные преимущества перед жёсткими накопителями.


Также такая база легко уместится на мобильном компьютере, ноутбуке, планшете или даже мобильном телефоне. Особенно, если учесть возможность применения разнообразных алгоритмов сжатия.


Не забываем, что когда мы говорим о 1 000 000 треках, то мы имеем в виду миллион совершенно уникальных файлов! А это уже не так мало.


Небольшие требования к оборудованию
подробнее

Для определения похожих аудио файлов вряд ли возникнет необходимость в закупке дополнительного оборудования. Для работы нашего алгоритма необходимо и достаточно одного ядра с частотой два гигагерца. То есть, со всеми ужасными вычислениями может справиться старенький Pentium 4, средний планшетник или даже мобильный телефон.


Конечно, для очень серьёзных нагрузок, для обработки десятков тысяч загрузок в день и миллионов сравнений потребуется отдельная машина с двумя процессорами и 16 гигабайтами оперативной памяти.


Согласитесь, что это совершенно несопоставимо с сотнями серверов, необходимыми для работы других алгоритмов.


Малое влияние разности частоты и формата записи на степень
подробнее

Те, кто в своей работе сталкивался с содержимым аудиофайлов, знают, насколько сильно отличается файл в формате .OGG с частотой дискретизации входящих данных 44100 Гц и битрейтом 128 кбит/с и стереозвуком от того же файла, но в формате .MP3 с 96000 Гц, битрейтом 256 кбит/с и звуком моно.


В случае данной технологии, схожесть файлов будет порядка 90-99 по шкале от 0 до 100.

Это может быть удобным, когда разные пользователи загружают треки в разном качестве, а в последствии хранится только тот, который имеет лучшее качество звучания.


При этом, заметим, при схожести больше 95, треки будут отличаться только качеством, но не содержимым.


Интуитивно понятная шкала похожести
подробнее

Определение степени похожести двух композиций происходит по шкале от 0 до 100, что кажется естественным, понятным и наводит на мысли о процентах. При этом на шкале можно выделить несколько диапазонов:

0-40  - композиции абсолютно не похожи

41-90 - композиции имеют один стиль исполнения и похожее звучание

91-95 - треки почти одинаковы, но имеют отличие в звучании или содержании

96-99 - треки почти неотличимы на слух

100   - файлы идентичны


Следует также учесть некоторую особенность. Трек «А» может быть похож на трек «Б» на 95, а трек «Б» на трек «А» на 97. Это, если снова провести аналогию с процентами, естественно, однако требует внимания.


Кроссплатформенность решения и простота внедрения
подробнее

Реализация нашей технологии одинаково хорошо работает как на Linux, так и на Windows. Связано это прежде всего с тем, что при написании программ использовался обычный Си. Более того, есть вариант решения, где используется только PHP+MySQL+ffmpeg. И решение, где для PHP написано соответствующее расширение, что значительно увеличивает скорость работы. Также возможны варианты: PHP+MemCache+ffmpeg, Си+MemCache+ffmpeg, Си+MySQL+ffmpeg.


Естественно, при желании, можно сделать практически полностью независимый комплекс программ, где из сторонних остаётся только ffmpeg.


И всё же, простейшим вариантом внедрения нашей технологии, является выделение ресурсов на одном из серверов, где установлены MySQL и PHP. На этом компьютере и будут происходить все расчёты, включая определение параметров загружаемых треков для последующих расчётов. Единственным недостатком такого подхода является то, что придётся передавать на эту машину все добавляемые треки.


Чтобы избежать лишней нагрузки на сеть, особенно при больших объёмах загружаемых файлов, существует возможность установки специального сервера (или демона) теней и ffmpeg непосредственно на те компьютеры, на которые происходит загрузка файлов. Сам сервер занимает всего около пяти мегабайт оперативной памяти и потребляет минимум ресурсов процессора. Однако, ffmpeg, если не сделать специальных настроек, при перекодировке поступившего файла может полностью съедать ресурсы одного ядра процессора. В таком случае, все расчёты и вычисление параметров добавляемых файлов будут распределены по всем компьютерам, а на «главный» возлагается обязанность по хранению этих данных и непосредственному сравнению аудиотреков.


Наличие успешного примера внедрения
подробнее

Немногие новые технологии могут похвастаться тем примером успешного внедрения и работы. «Тени» уже около полугода функционируют на радиохостинге Volnorez (http://volnorez.com/shadows). По результатам работы, нам известно, что сейчас на хостинге загружено порядка 3 000 000 файлов, при этом, на самом деле хранится всего около 1 000 000. Следует отметить, что приятным побочным эффектом работы технологии, является малое количество дубликатов в результатах поиска композиций.


Вы можете сами поэкспериментировать с «тенями» на специальной странице http://volnorez.com/shadows


Сразу опишем метод внедрения. На каждом сервере отвечающем за загрузку файлов, установлена специальная служба/демон для расчёта комплекса параметров аудиофайла и передачи их на «главный» сервер теней. «Главный» сервер – есть ничто иное как небольшая часть ресурсов, выделенная на одном из компьютеров хостинга (одно ядро 2.6 гигагерца, 2.3 гигабайта оперативной памяти).


Надеемся, результаты работы примера Вас приятно удивят и порадуют!


ПЕРСПЕКТИВЫ ТЕХНОЛОГИИ
Разработка алгоритма для работы с видеофайлами
подробнее

Важной особенностью нашей технологии является то, что основные принципы работы алгоритма могут, после некоторых изменений и усовершенствований, с той же лёгкостью применяться для обработки видеофайлов. В действительности, «тени» изначально именно для них и предназначались. Однако, у команды разработчиков нет в наличии большого объёма видеофайлов для тестирования и определения качества работы алгоритма; и, поскольку администрация Vолнореза любезно предоставила возможность для работы с музыкальными треками своих пользователей, технология была оптимизирована именно для работы с аудио.


По оценкам наших специалистов, разработка всего комплекса программ для работы с видео и его тестирование, займёт от шести до десяти месяцев.


Реализация возможности предоставления технологии в аренду (SaaS)
подробнее

Из всего описанного выше видно, что сервис по предоставлению услуг по хранению всех параметров композиций и нахождению степени их схожести, можно расположить на совершенно отдельном сервере или даже комплексе серверов, и предлагать в качестве услуги по подписке или по цене, зависящей от количества файлов и их сравнений.


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


ПРИМЕР РАБОТЫ
Сравнить две композиции
подробнее

Опробовать работу технологии можно прямо сейчас!

Выберите файлы ( mp3, ogg, wav ), дождитесь их загрузки. Когда оба файла загрузятся и обработаются, появится сообщение о результате сравнения.


Файл не выбран
Файл не выбран