Что такое и шаз
Перейти к содержимому

Что такое и шаз

  • автор:

Шазз

единственный в своем роде. В науке о хадисах так называются предания, переданные авторитетными передатчиками, которые противоречат хадисам еще более приемлемых и авторитетных передатчиков.
Шаззы бывают как в иснадах, так и в матне (См. Хадис):
а) Примеры отклонений в иснаде: В качестве примера можно привести хадис, который приводят Тирмизи, Насаи и Ибн Маджа, передававшие его со слов Ибн Уяйны, передавшего со слов Амра ибн Динара, передавшего со слов Аусаджа, передавшего со слов Ибн Аббаса, да будет доволен Аллах ими обоими, о том, что при жизни пророка скончался один человек, не оставивший наследников, если не считать своего бывшего раба, которого он некогда отпустил на волю. Ибн Джурайдж и другие мухаддисы передавали этот хадис с таким же иснадом, как и Ибн Уяйна, тогда как Хаммад ибн Зейд передавал его со слов Амра ибн Динара, передавшего его со слов Аусаджа, что же касается Ибн Аббаса, то он упомянут не был. Ввиду этого Абу Хатим сказал: «Предпочтение следует отдать хадису, переданному Ибн Уяйной». Что же касается Хаммада ибн Зейда, то он также отличался беспристрастностью и точностью, но, тем не менее, Абу Хатим отдал предпочтение тем, кто относился к более многочисленной группе.
б) Пример отклонений в матне: В качестве примера можно привести хадис, приводимый Абу Давудом и Тирмизи со слов Абд аль-Вахида ибн Зияда, передавшего со слов Аль-Амаша, передавшего со слов Абу Салиха, передавшего со слов Абу Хурайры, да будет доволен им Аллах, что пророк сказал: «После того, как кто-либо из вас совершит утреннюю молитву, пусть ляжет на правый бок». Аль-Байхаки сказал: «В данном случае Абд аль-Вахид противоречит большому количеству людей, которые передавали, что пророк только поступал так сам, но не говорил этого. Таким образом, среди таких же достойных доверия передатчиков, каким был Аль-Амаш, один только Абд аль-Вахид передавал этот хадис в таком виде. (М. Таххан. «Пособие по терминологии хадисов»
)
Шазз в чтении Корана (кыраа)
Шаззом в способах чтения Корана являются такие виды чтения, которые отличаются от официально признанных (См. Кыраа). Суюти (аль-Иткан, I, 73) писал, что существуют три условия для признания того или иного кыраа официально признанным:
1. Соответствие арабской грамматике;
2. Полное соответствие тексту Корана собранному специальной комиссией в период правления халифа Османа (См. Коран);
3. Соответствие семи (или десяти) традиционно известным методам чтения Корана (См. Кыраа).
Если какой-нибудь стиль или форма чтения Корана не соответствует вышеприведенным условиям, то такое чтение является шаззом.
Знатоками кыраа-шазз были Ибн Мухайсин, Йазиди, Хасан аль-Басри, Аль-Амаш.
Кыраа-шазз бывают следующих видов:
— Восходящие к сподвижникам пророка Мухаммада, но переданные единичными цепями передатчиков (ахад). Эти виды чтения не входят в категорию таватур (См. Хабар аль-Мутаватир) и разделяются на известные (машхур) и малоизвестные;
— Имеющие грамматические погрешности и не имеющие серьезной доказательной основы.
Большинство мусульманских улемов считают, что использование шаззов в чтении Корана и совершении намаза не позволительно, так как Коран может быть известен только путем таватура. Часть из них даже считала, что использование шазза в чтении Корана является греховным и совершивший это должен раскаяться перед Аллахом. Нельзя также совершать намаз за имамом, который читает шазз.

(Источник: «Исламский энциклопедический словарь» А. Али-заде, Ансар, 2007 г.)

  • Шавваль
  • Шазили Абу аль-Хасан

Что такое и шаз

Шарыповский алюминиевый завод

Словарь сокращений русского языка . 2014 .

Смотреть что такое «ШАЗ» в других словарях:

  • ШАЗ — Шарыповский алюминиевый завод … Словарь сокращений и аббревиатур
  • Шазёй — Коммуна Шазёй Chazeuil Страна ФранцияФранция … Википедия
  • Жеводанский зверь — Гравюра, изображающая Жеводанского зверя, с объявлением о награде за его голову (1765) Жеводанский зверь (фр. La Bête du Gévaudan, окс. La Bès … Википедия
  • Селонже (кантон) — Селонже фр. Selongey кантон Франции (АЕ 3 го уровня) … Википедия
  • Список эпизодов телесериала «Болота» — Список эпизодов американского телесериала «Болота» в жанре драмы и детектива. Сериал стартовал 11 июля 2010 года[1] и стал самым успешным в истории телеканала A E. 13 сентября 2010 года было объявлено, что сериал продлен на второй се … Википедия
  • Библиография Андрея Кончаловского — Литературные произведения Книги# Ежов В.И. Михалков Кончаловский А.С. Сибириада. Валентин Ежов, Андрей Михалков Кончаловский. Повести. Рассказы. Очерки (1912 1917) Вячеслав Шишков. М.: Изд. дом «Дрофа», ТОО «Лирус», 1993.… … Википедия
  • Коммуны департамента Кот-д’Ор — … Википедия
  • Boy Kill Boy — на концерте в Бирмингеме, 2008 Основная информация Жанр … Википедия
  • Коллинз, Джоан — Джоан Коллинз Joan Collins … Википедия
  • Буснуа — Коммуна Буснуа Boussenois Страна ФранцияФранция … Википедия

Что такое и шаз

ШАЗ

Шарыповский алюминиевый завод

Словарь сокращений и аббревиатур . Академик . 2015 .

Смотреть что такое «ШАЗ» в других словарях:

  • Шазёй — Коммуна Шазёй Chazeuil Страна ФранцияФранция … Википедия
  • ШАЗ — Шарыповский алюминиевый завод … Словарь сокращений русского языка
  • Жеводанский зверь — Гравюра, изображающая Жеводанского зверя, с объявлением о награде за его голову (1765) Жеводанский зверь (фр. La Bête du Gévaudan, окс. La Bès … Википедия
  • Селонже (кантон) — Селонже фр. Selongey кантон Франции (АЕ 3 го уровня) … Википедия
  • Список эпизодов телесериала «Болота» — Список эпизодов американского телесериала «Болота» в жанре драмы и детектива. Сериал стартовал 11 июля 2010 года[1] и стал самым успешным в истории телеканала A E. 13 сентября 2010 года было объявлено, что сериал продлен на второй се … Википедия
  • Библиография Андрея Кончаловского — Литературные произведения Книги# Ежов В.И. Михалков Кончаловский А.С. Сибириада. Валентин Ежов, Андрей Михалков Кончаловский. Повести. Рассказы. Очерки (1912 1917) Вячеслав Шишков. М.: Изд. дом «Дрофа», ТОО «Лирус», 1993.… … Википедия
  • Коммуны департамента Кот-д’Ор — … Википедия
  • Boy Kill Boy — на концерте в Бирмингеме, 2008 Основная информация Жанр … Википедия
  • Коллинз, Джоан — Джоан Коллинз Joan Collins … Википедия
  • Буснуа — Коммуна Буснуа Boussenois Страна ФранцияФранция … Википедия

Как работает Shazam? Распознавание музыки на смартфоне для «чайников»

как работает Shazam и распознавание музыки

Последний альбом группы Queen с участием легендарного Фредди Меркьюри был записан уже после смерти вокалиста. И в этом альбоме есть одна интереcная песня, собранная буквально по кусочкам из обрывков записей Меркьюри, сделанных незадолго до смерти.

Эта композиция не должна была появиться и никто в Queen даже не думал, что из этих обрывков что-то можно сделать. Но продюсер группы практически самолично собрал всё воедино и создал знаменитую… как же ее… Простите, но название совершенно вылетело из головы.

И что же делать в подобных ситуациях?

Раньше, услышав красивую песню где-нибудь в кафе или на улице, вы могли достать смартфон, запустить приложение Shazam или SoundHound и тут же получить всю подробную информацию. Но сегодня бурный рост технологий позволил нечто большее!

Возвращаясь к забытой песне Фредди Меркьюри, мне достаточно запустить на смартфоне Google Ассистент, сказать фразу «Что сейчас играет?», а затем просто напеть мелодию, которая крутится в голове — «та-да-та-тааааа та-та-та-таааа та-да-та-таааа»:

Включите или напойте мелодию Google

И буквально через несколько секунд смартфон выдает правильный результат — You Don’t Fool Me группы Queen:

Google Ассистент распознал музыку, которую напел

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

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

Часть 1. Природа звука

Бессмысленно говорить о том, как работает Shazam или распознавание музыки в целом, если не понимать, что такое музыка и звуки вообще. Поэтому вначале я уделю немного внимания этому вопросу.

Если же вы хорошо в этом разбираетесь, тогда переходите к следующему разделу. Но помните — понять работу Shazam без понимания этих основ будет тяжело.

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

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

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

Мы даже можем отобразить это движение динамика на графике в виде волны:

движение динамика и синусоидальная волна

Чем сильнее динамик отклонится в сторону (или вверх/вниз на графике), тем выше будет волна, а значит звук — громче. То, какую ноту или звук мы услышим, зависит только от того, сколько движений вперед-назад за одну секунду сделает наш динамик.

Если за 1 секунду произойдет 440 движений вперед-назад, мы услышим ноту ля. И не важно, что будет вибрировать 440 раз в секунду — струна гитары, фортепиано или школьная линейка, прижатая одной стороной к столу — мы будем слышать ноту ля.

Вот только если это будет делать динамик, вместо приятного звука мы услышим не очень приятный монотонный гул:

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

А теперь посмотрите в замедленном движении, что происходит со струной в реальности (на примере скрипки):

Такое движение скорее можно схематически изобразить вот так:

И это еще очень упрощенный пример. На самом деле, движение струны гораздо сложнее! Струна вибрирует вся целиком (как показано на первой анимации) и создает звук на частоте 440 Гц (монотонная нота ля). Но также вибрирует и каждая половинка струны, создавая звуки на частотах 880 Гц (половинка в два раза короче целой струны, а значит и вибрирует в 2 раза быстрее, т.е. 880 раз в секунду).

Кроме того, струна вибрирует третями, четвертями и т.д. И каждый участок струны, вибрируя, запускает еще отдельные звуковые волны на частотах в 3, 4, 5 (и так до бесконечности) раз выше основного тона (в нашем примере — нота ля или 440 Гц). Каждая такая вибрация создает свой собственный монотонный звук на более высоких частотах.

Мы называем такие звуки гармониками. То есть, основная гармоника — это частота 440 Гц (если мы говорим о ноте ля), вторая гармоника — это когда струна будет вибрировать половинами, т.е. звук на частоте 880 Гц, третья гармоника — 1320 Гц (440*3) и так далее.

А теперь добавьте к этому еще и вибрацию корпуса инструмента, например, скрипки. Ведь струна жестко закреплена на корпусе и ее вибрация также приводит к вибрации всего инструмента. Эти вибрации в свою очередь зависят от породы дерева, толщины корпуса и его формы.

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

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

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

От того, насколько громко (и как долго) будет звучать каждая дополнительная частота и зависит тембр инструмента.

Реальная звуковая волна

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

звуковая волна

В реальности звук «выглядит» скорее так:

настоящая звуковая волна

Но как это понимать? Где здесь красивые привычные волны? Как хотя бы понять частоту этой звуковой волны? Напомню, частота — это количество волн за секунду. К примеру, на синем графике чуть выше мы видим частоту 8 Гц или 8 волн за секунду. А на втором графике вообще отсутствуют какие-то повторяющиеся узоры. Почему?

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

Вот, к примеру, у нас есть основная частота 440 Гц (нота ля):

первая гармоника

Струна будет создавать другие частоты, первой из которых станет 880 Гц (это вторая гармоника или 440*2). Такая частота будет получаться, когда две половинки струны будут вибрировать отдельно. И выглядеть вторая волна (880 Гц) будет уже так:

вторая гармоника

То есть, мы видим, что количество волн увеличилось вдвое (440 Гц и 880 Гц). Но две волны не будут путешествовать по воздуху отдельно, они сольются в одну. И какой же она будет?

Какие-то пики одной волны совпадут с впадинами другой и немного погасятся, в каком-то месте пики двух волн наложатся и она станет еще выше (громче). В общем, вместо двух волн разной частоты мы получим одну волну такого вида:

обе гармоники вместе

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

Вначале он максимально отклонится вперед, толкая молекулы на нас, затем назад до состояния покоя (прямая серая линия или 0 по оси Y — это состояние покоя), затем немножко вперед (маленький зеленый горбик на графике), после чего резко назад, втягивая воздух обратно (зеленая линия идет вниз, ниже серой полоски). Затем динамик снова вытолкнет весь воздух вперед (максимальная горка на графике) и так далее.

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

Таким образом, реальная звуковая волна — это результат наложения сотен волн различной частоты. Оттого она и выглядит так сложно.

На этом мы, пожалуй, и остановимся. Этих знаний должно хватить для понимания основной темы.

Часть 2. Как работает Shazam и любая другая технология распознавания музыки

Если я попрошу вас напеть какую-то музыкальную композицию, что именно вы споете? Будете ли вы учитывать басовую партию или партию ударных инструментов? А если речь идет об оркестровой музыке, в которой одновременно могут звучать десятки музыкальных инструментов?

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

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

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

Шаг 1. Анализируем частоты

Чтобы Shazam или любой другой сервис мог хоть что-то сделать с музыкой, он должен для начала ее «понять». То есть, вместо сложного и бессмысленного графика, вроде этого:

настоящая звуковая волна

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

К примеру, вместо сложной волны от нажатия клавиши фортепиано, в которой смешались монотонные звуки на частотах 440 Гц, 880 Гц и 1320 Гц, нам нужно получить эти частоты отдельно и узнать громкость каждой из них:

преобразование фурье над звуковой волной

Это как если бы я показал вам цветное пятно и сказал, чтобы вы назвали, какие основные цвета и в какой пропорции я смешивал, чтобы получить этот уникальный цвет.

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

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

После этого у смартфона появляется спектрограмма. Это такой график, который по оси Y показывает конкретную частоту, а по оси X — время. То есть, мы можем видеть, какие частоты и насколько громко звучат в каждый момент времени:

спектрограмма

Так как у нас только две оси (X и Y), то громкость мы отображаем цветом. Чем ярче цвет — тем громче звучит эта частота.

К примеру, на спектрограмме выше мы видим, как где-то на 9-й секунде (по оси X) очень громко заиграли все инструменты или все частоты (красная вертикальная линия). А где-то на 31-й секунде частоты свыше 1500 Гц вообще пропали, то есть, в этот момент они не звучат в нашей композиции:

описание спектрограммы

Согласитесь, в таком виде работать с музыкой гораздо проще и понятнее, чем смотреть на бессмысленный график ломаной линии. Здесь мы можем, к примеру, убрать какой-то дефект на частоте 10 000 Гц (какой-то лишний звонкий писк). Ведь мы увидим яркую полоску сверху, которую можно удалить, а затем снова сложить все частоты в один звук, но уже без удаленной частоты.

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

Кроме того, в этой спектрограмме очень много информации. Смартфону она не нужна, как и нам не нужно знать все партии каждого инструмента, чтобы напеть фрагмент мелодии. И это приводит нас ко второму шагу.

Шаг 2. Создаем карту созвездий

Первое, что мы сделали для облегчения спектрограммы, это записали звук в режиме моно (стерео нам ни к чему), а также обрезали все частоты свыше 5000 Гц (или 4000 Гц — в зависимости от сервиса или алгоритма).

Естественно, качество звука сильно упало, так как мы слышим частоты до 15-20 тысяч герц (в зависимости от возраста) и эта информация есть в каждом музыкальном произведении. Но для распознавания музыки эти частоты совершенно не нужны. Основная мелодия находится гораздо ниже (в пределах 100-2000 Гц):

основной частотный диапазон различных инструментов

На этой картинке мы видим, что основной диапазон голосов и музыкальных инструментов (насыщенная темная часть каждой полоски) легко помещается до 1000 Гц, а уже гармоники уходят до предела слышимости.

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

Давайте возьмем нашу спектрограмму и отметим белыми точками такие «основные» частоты или ноты:

отмечаем яркие частоты на спектрограмме

Сколько конкретно точек отмечает Shazam — сказать сложно, но это точно небольшое число (сравнительно). После такой обработки вместо массивной спектрограммы с большим количеством данных мы получаем очень компактную и аккуратную картину:

карта созвездий Shazam

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

Эта карта созвездий буквально показывает следующее:

  • На 1-й секунде самые громкие частоты — это 512 и 2048 Гц
  • На 5-й секунде самая ярко выраженная частота — 512 Гц
  • На 30-й секунде композиции наиболее выражены частоты 1800 Гц и 4100 Гц
  • И так далее

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

Такую карту приложение создает на смартфоне еще до отправки данных на сервер Shazam. То есть, смартфон не передает звук.

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

Точнее, не совсем они…

Шаг 3. Убиваем главного врага — время

На данном этапе мы столкнулись с довольно серьезной проблемой. Предположим, вот это карта созвездий полноценной композиции на сервере Shazam:

карта созвездий Shazam

Но человек даже теоретически не сможет каждый раз начинать записывать фрагмент интересующей его музыки с самого начала. Он может записать маленький кусочек где-то в середине композиции или за несколько секунд до конца песни.

В итоге, на смартфоне появится вот такая карта:

записанная на смартфоне карта для распознавания музыки

Если вы внимательно посмотрите, то увидите, что это фрагмент той же песни, что показана на карте чуть выше. Только в оригинале эти частоты (ноты) встречаются примерно с 19-й по 26-ю секунды, а здесь — примерно со 2-й по 9-ю.

Получается, смартфон передает серверу, что он услышал композицию, у которой на 5-й секунде ярко выражены 3 частоты: 510 Гц, 800 Гц и 1600 Гц (на графике по оси Y указаны только несколько частот, поэтому я называю частоты примерно).

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

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

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

Вместо списка частот (нот) с привязкой к конкретной секунде, мы берем одну любую точку на карте и связываем ее с несколькими другими точками. Например:

связываем точки по парно для Shazam

То есть, мы взяли опорную (главную) точку O (на 19-й секунде) и связали ее с несколькими другими точками (частотами/нотами) — a, b и c.

Под словом «связали» я лишь подразумеваю следующее. Мы берем две частоты и разницу во времени между ними. То есть, если мы говорим о связи O->A, тогда это две частоты: 515 Гц (точка O) и 1600 Гц (точка A), а разница во времени между ними составляет 3 секунды (точка A на 22 секунде минус точка O на 19 секунде).

Вот и всё! То есть, вместо конкретных частот с привязкой к определенному времени, мы храним информацию о том, как связаны конкретные частоты между собой. Например, сохраняем информацию о том, что в определенной композиции звук на частоте 1600 Гц начинается спустя 3 секунды после звука на частоте 515 Гц.

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

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

Размышления вместо выводов

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

Например, не совсем понятно, по какому принципу алгоритм выбирает опорные точки, от которых затем строит связи с другими частотами.

Ответа на этот вопрос у меня нет, так как Shazam не раскрывает свои алгоритмы в таких деталях. Возможно, компания выбирает для каждого момента времени первую по счету точку (счет ведется снизу вверх слева направо) и связывает ее с несколькими рядом стоящими точками.

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

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

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

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

Более подробно о том, как работают нейросети и что такое обучение нейросетей, мы рассказывали в отдельной статье.

Алексей, глав. ред. Deep-Review

P.S. Не забудьте подписаться в Telegram на наш научно-популярный сайт о мобильных технологиях, чтобы не пропустить самое интересное!

Если вам понравилась эта статья, присоединяйтесь к нам на Patreon — там еще интересней!

Как бы вы оценили эту статью?

Нажмите на звездочку для оценки

Внизу страницы есть комментарии.

Напишите свое мнение там, чтобы его увидели все читатели!

Если Вы хотите только поставить оценку, укажите, что именно не так?

Поделиться

Что такое 10 нм, 7 нм или 5 нм в смартфоне? Техпроцесс для «чайников»

Как работает самая быстрая зарядка смартфона. Или что такое OPPO SuperVOOC?

Прощай, «челка»! Камера под экраном смартфона: как это работает?

Вариабельность пульса в Apple Watch: разбираемся, что к чему!

IPS против AMOLED — выбираем лучший экран для смартфона

А ну-ка встаньте, если хотите жить! Или о том, почему фитнес-браслеты напоминают о разминке

Сенсоры Samsung для «чайников». Часть 1. Матрицы 48 Мп и 50 Мп

В чем измеряется современный смартфон?

Подписаться
8 комментариев
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
10 месяцев назад

Полно музыки которая не определяется…та,которой нет в инете

1 год назад

А почему шазам не может некоторые песни распознавать в последнее время?

2 лет назад

Спасибо, очень интересно! А упоминанием хеш-функций вы меня заинтриговали �� Буду с нетерпением ждать статьи по ним!

2 лет назад

Очень интересно!
Правда, на мой абсолютно дилетантский взгляд, этим все не заканчивается. Скорее всего, помимо позиции во времени для каждой частоты также записывается и ее длительность — иначе бессмысленно выстраивать связь между точками на карте. А в случае напевания со словами, подозреваю, используется и распознавание голоса для сравнения с базой данных текстов песен ��

2 лет назад
Ответить на Василий

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

Ведь чтобы записать длительность частоты, нужно, чтобы эта частота в течение, например, нескольких секунд была наиболее ярко выраженной в записи, т.е. самой громкой. Но так не бывает. Продолжительность звука практически всегда подразумевает его затухание со временем. То есть, мы 100% не получим точную длительность каждой «яркой» частоты.

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

Что касается связи между точками, мы скорее не связь выстраиваем, а записываем координаты точек, только не относительно привязки ко времени, а относительно других точек (опорных).

Вот смотрите. Возьмем точку A из нашего примера. У нее такие координаты A[515;1600;3]. Они означают буквально следующее: частота 1600 Гц появляется на карте спустя 3 секунды после частоты 515 Гц. Это жесткая привязка к координатам. Именно эту точку мы закодируем в виде строки и отправим на сервер. Shazam будет искать композицию в которой просто есть частота 1600 Гц, появившаяся спустя 3 секунды после частоты 515 Гц. Не важно, сколько звучала частота 515 Гц или 1600 Гц. Важно только совпадение координаты точки A.

Shazam также смотрит на порядок следования точек. В нашем примере точка C (со своими координатами) следует после точки A. В оригинале такие точки должны также идти в таком же порядке (не важно, с какой секунды, главное — в том же порядке).

2 лет назад
Ответить на Алексей (Deep-Review)

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

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

2 лет назад
Ответить на Василий

Нам следует разделить метод распознавания мелодии как это делают сервисы Shazam или SoundHound и то, что сделала недавно Google. Во втором случае используется машинное обучение. И там тяжело о чем-то говорить конкретном, не зная реальных подробностей от разработчика. Google заявляет, что делает «отпечатки» мелодии, как и Shazam, но как точно эти отпечатки делаются — не сообщает.

Однако в чисто алгоритмическом определении (без нейросетей), длительность звучания частоты не используется. Приведу еще такие аргументы для наглядности:

1. Начиная запись мелодии в кафе в любой момент времени, мы нарушаем совпадение по длительности звучания многих частот. Например, в оригинале есть звучание частоты 440 Гц в течение 5 секунд, а мы начали запись на 4-й секунде звучания этой частоты, получается, она будет звучать у нас всего 1 секунду вместо 5-ти секунд, как в оригинале. То же касается и окончания записи по среди песни (обрывается длительность всех частот). Когда же мы напеваем что-то, то всегда начинаем с логического начала основной мелодии.

2. Условно говоря, на каждую секунду мы можем выделить не более, скажем, 8 основных точек (частот). Если на второй секунде появляется очень яркая (громкая) частота, то нет никакой гарантии, что на третьей секунде не появятся еще 8 более ярких частот. В этом случае, алгоритм запишет их, «оборвав» длительность яркой частоты, появившейся на второй секунде (или же придется делать очень много контрольных точек, что увеличивает вероятность шума). Когда мы говорим о напевании или насвистывании мелодии, такой проблемы нет, так как здесь нет никакой «полифонии», т.е. не звучат никакие инструменты, а идет мелодия в очень узком частотном диапазоне, где есть только основной тон и обертона, которые всегда будут тише основного тона.

3. Более того, в реальности алгоритм анализирует не конкретную частоту, а делает это «пачками» из частот/нот. Есть такая штука, как психоакустика, т.е. как мы воспринимаем громкость тех или иных звуков. Так вот, басы (до 100-200 Гц) мы воспринимаем гораздо хуже, чем средние частоты. Поэтому в музыке их искусственно повышают, чтобы звучание казалось нам сбалансированным. И если бы приложение анализировало только частоты, то все «контрольные точки» уходили бы на низкие частоты, например, на ритм, что давало бы массу ложных срабатываний. Поэтому идет группировка частот и фильтрация, в общем, всё для того, чтобы на каждый промежуток времени определить только те точки, в которых больше всего звуковой энергии. Рассчитывать или определять еще и длительность звучания этих частот не просто бессмысленно, а опасно. Смысл ведь не в том, чтобы собрать как можно больше информации о музыке (повторюсь, чем больше данных, тем дольше и труднее анализ и выше вероятность погрешности из-за шума), а наоборот — сократить ее до самого минимума, оставив только то, что на 100% соответствует каждой песне.

4. Опять-таки, Вы говорите « когда исполнитель тянет ноту». Если бы мы определяли мелодии в студии звукозаписи, с этим бы не было никаких проблем. Но где гарантия, что в момент, когда исполнитель тянет ноту, рядом кто-то не заговорит или не возникнет другой короткий посторонний шум, заглушив именно ту частоту, на которой тянулась нота, тем самым оборвав для алгоритма длительность этой ноты?

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *