Найти тему
HOVER

Как работает Shazam

Многим наверное интересно, как Shazam распознает песни. Сейчас расскажу как он работает. Для многих покажется это банальной задачей, ведь человеческий мозг легко распознает песни. Но нейронные пути, которые делают это возможным, невероятно сложны. Вам достаточно услышать всего несколько аккордов, чтобы узнать знакомую песню. Простая комбинация тонов, идущих в определенном порядке, позволяет вам моментально отличить конкретную песню от тысячи других, но запрограммировать компьютер на выполнение данной задачи очень сложно. Ведь у компьютера нет интуитивного понимания музыки, он может только сравнивать песню с другими, содержащимися в его базе данных, пока не найдет совпадение. Создать программу, выполняющую такой поиск достаточно быстро - грандиозная задача, и решение, которое нашли разработчики Shazam может пролить свет на то, как работает наш собственный мозг. Исследователи Манчестерсого Музея науки и промышленности испытали способность 12 тысяч людей узнавать песни с помощью интерактивной игры. Они проигрывали отрывки тысячи хитов и фиксировали время узнавания. У самой узнаваемой песни среднее время распознавания стало 2.3 секунды, включая время на нажатие кнопки. Распознавание - одна из важнейших способностей нашего мозга. В отличие от компьютера, мозг не сравнивает новый звук с каждым услышанным ранее звуком. Определенные комбинации аккордов активируют определенные нейроны, которые разблокируют нужную информацию. Но что если сыграть мелодию на другом инструменте? Ноты те же, но звучат иначе. Интуитивно мы даже можем опознать инструмент. Но почему? Все дело в тембре, и у каждого инструмента он свой. Нашему мозгу не составляет труда отличить фортепиано от гитары, но для компьютера эти характеристики сначала нужно выразить в цифровой форме. Для этого используют спектрограммы.

-2

Спектрограмма - визуальное изображение звука, виде своеобразного графика. Такой график компьютер может легко распознать и сохранить в своей базе данных. Но в спектрограмме содержится огромное количество информации, и чем её больше, тем больше вычислений требуется для поиска совпадения. Первый шаг для снижения времени вычисления - сокращение количества информации о песне. Shazam использует так называемый "отпечаток". Спектрограммы превращаются в нечто наподобие звездной карты, где каждая точка обозначает сильнейшую частоту в определенный момент времени. Таким образом мы не только делаем график двухмерным, но и значительно сокращаем количество единиц информации. Каждая песня в базе данных приложения хранится в виде таких отпечатков. Когда вы нажимаете на кнопку на своем телефоне, приложение получает доступ к вашему микрофону и начинает создавать отпечатки принимаемых звуковых волн. Это также позволяем ему отфильтровать шум, потому что на отпечаток попадают только выделяющиеся частоты. Когда приложение заканчивает отпечаток аудио, оно начинает процесс распознавания. Здесь всё усложняется. Shazam записывает короткий отрывок песни. Сначала он разбивает частоты на категории, ориентируясь не на отдельные частоты, а на комбинацию частот и промежутков между ними, как наш мозг. Так мы получаем доступный для поиска адрес в хеш-таблице. По которому ищем песню по схожу хешу. Из-за такого оригинального решения Apple купили Shazam за 400 млн долларов.