Слушайте и распознавайте

У Яндекс.Музыки появился бот для Telegram. Он умеет угадывать мелодии — пусть не с трёх нот, но с нескольких секунд. Если вам понравилась музыка, которая играет в магазине или кафе, запустите бота, зажмите кнопку с микрофоном и удерживайте её 5–10 секунд. Бот послушает композицию, сообщит вам название и исполнителя и пришлёт ссылку на трек на Яндекс.Музыке.

Несмотря на то, что бот только запустился, у него длинная предыстория. Возможно, вы помните, что когда-то угадывать мелодии умело мобильное приложение Яндекс.Музыки. За это отвечала созданная в Яндексе технология распознавания музыки — о том, как она работает, мы несколько лет назад подробно рассказывали в нашем блоге на «Хабрахабре».

Как анализируют звук

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

Спектрограммы составляют как для записанного фрагмента, так и для всех треков из базы. Затем сигнатуры фрагмента-образца сравниваются с сигнатурами известных системе треков.

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

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

В основе бота лежит другой подход. За выделение сигнатур отвечает нейронная сеть — она принимает решения не по набору правил, а самостоятельно. Нейросеть учится на данных: чем больше образцов записанной музыки с разнообразными искажениями ей покажут, тем лучше она будет находить соответствия между фрагментами и треками — и, соответственно, тем точнее будут ответы.

Встречаются как-то раз две нейронных сети (подробнее про альбом Neurona)

Наш музыкальный бот сейчас способен распознавать несколько миллионов треков из базы Яндекс.Музыки. Он пока работает в тестовом режиме и иногда даёт маху — но чем чаще вы его используете, тем реже он будет ошибаться. Добавить бота в Telegram можно по этой ссылке, а рассказать о своих впечатлениях от общения — в комментариях к этому посту.

34 комментария
Планируется расширение кругозора бота за пределы Яндекс.Музыки?
Удалённый пользователь
Сотрудник Яндекса2 августа 2017, 14:30
Yuri,
да. В интернете много самого разнообразного контента (в том числе, конечно, и музыки), а умение понимать его — одна из сильных сторон Яндекса. 
Егор Филиппов,
Вы большие молодцы!!! Посоветуйте хорошего UX.
Егор Филиппов,
Да! В интернете много всего
А аналогичный on line инструментарий есть? Я имею в виду, есть ли аналогичная возможность на сайте Яндекс.Музыки? Или где-то ещё, не в боте?
Удалённый пользователь
Сотрудник Яндекса2 августа 2017, 14:33
rvtis,
Да, будет.
Бот — всего лишь удобное средство быстрой доставки технологии конечному пользователю с целью проверить ее радотоспособность. Конечно, мы планируем использовать её в своих продуктах.
в яндекс музыке слишком мало треков жанра - драм-н-бэйс, только из-за этого отдал предпочтение гугл музыке. Вам еще далеко до уровня гугл и мне очень жаль( 
Наполняйте свою фонотеку не только Егорами Кридами, но интересным экспериментальным саундом. Желаю успехов! 
P.S через месяц загляну посмотреть на изменения
Александр Артюхов
3 августа 2017, 09:26
Ну всё, надеюсь вы вернёте такую функцию в приложение Яндекс.Музыки на Android. А то поддержки шазама Вашей музыки не дождёшься 
Александр Артюхов
3 августа 2017, 09:51
Немного потестил. Так значит у меня на Яндекс Музыке есть отдельный плейлист, куда я загружаю треки, которых нет на Яндекс Музыке и из всех 16 треков определить смог только 2-3. Больше удивило, что трека Ahrix - Nova нет на Яндекс Музыке, но Ваш бот её определил и даже кинул ссылку на одну большую аудиозапись, которая вроде бы как является миксом и представляет из себя склейку нескольких треков и Ahrix - Nova услышал самой первой. Оставляю ссылочку на несколько своих скриншотов https://yadi.sk/d/IYIhYoxr3Lfs6v
Нужный бот. В последнем обновлении Яндекс.Музыка убрали функцию распознавания? я не нашел..
Georgii Khomaldishvili
7 августа 2017, 00:07
Если кинуть боту целый аудиофайл, то он не распознает его. Печалька. Мне скинули песню с кривым названием; хотел исправить, подумал, кину боту, а он даст  нормально название. увы.

Он даже "Yesterday" не распознал
Удалённый пользователь
Сотрудник Яндекса7 августа 2017, 19:00
Georgii Khomaldishvili,
бот не настроен распознавать целые треки, но и с этой задачей временами справляется. 
Комментарий удалён
Данил Батин
8 августа 2017, 11:31
petermura,
Извините, но вы бред написали. Ботами это в телеграмме называется. И вряд ли человек, который не знает, что такое боты будет читать блог Яндекса.
Данил Батин
8 августа 2017, 11:33
petermura,
Вы вообще знаете, что такое боты? И где они применяются? Вы месседжером хоть раз пользовались!?
Комментарий удалён
Данил Батин
10 августа 2017, 07:22
petermura,
Ну и? Тот, что не знает что это не посещает такие блоги. А тот кто знает, поймёт, ведь телеграмм сам их называет БОТАМИ
Ярослав Янович
10 августа 2017, 14:57
Для пк будет ?
Мастер Груша х_х
12 августа 2017, 11:49
А почему бы не заменять текст сообщения «обрабатываю» на результат вместо отправки следующего сообщения?
Когда вы исправите бот @pic ? Там теперь ссылки не сокращаются...
Александр
17 ноября 2017, 19:57
Добавьте этого бота своего прямо в приложение яндекс музыка... не все телеграммом пользуются
Александр Корчагин
18 ноября 2017, 22:31
ЭЭто платный постный 
Приветик 
Обновлено 25 ноября 2017, 20:36
Удалённый пользователь
11 января 2018, 19:11
не пойму, чем вы слушаете музыку и подбираете похожих исполнителей? жопой?
возьмите к примеру исполнителя Cashmere Cat. вы рекомендуете к нему Maroon 5, Мадонну и прочую абсолютно не похожую на него хуету. Это пиздец, господа
а для пк такое вообще есть ?
Александр
26 января 2018, 10:58
в самом приложение яндекс.музыка нет ф-ции распознавания треков? у меня нет телеграмма и не планируется
Только для "Telegram"? Почему не сделать это в браузере, как распознавание фото?
Пильщиков Роман
24 апреля 2018, 23:24
Даешь независимого от телеги бота ?  Телега то едет, то не дают ей ехать(((
Очень не хватает фильтра по странам или языкам. А в приложении появится возможность распознавания музыки? 
В Яндекс.Облако добавите возможность распознавание музыки или SpeechKit уже на это способен? 
После последнего обновления в Андроиде кнопка микрофона перестала быть доступной.
В большинстве случаев не находит песни
Удалённый пользователь
28 марта 2022, 18:31
Бот не работает. 
Да, бот сдох окончательно.
Вета Блинова
16 февраля 2023, 13:00
После замены на бота перестал распознавать музыку
Бот не работает