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

2 августа, 12:00

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

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

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

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

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

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

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

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

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

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

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

Он даже "Yesterday" не распознал
Егор Филиппов
Сотрудник Яндекса7 августа, 19:00
khomaldi,
бот не настроен распознавать целые треки, но и с этой задачей временами справляется. 
Зачем для позитивных разрабатываемых вами программ вы , Яндекс , используете такое окрашенное негативом слово как " бот " ? Ведь большинство интернет-пользователей очень хорошо знает , что " робот-бот " - это автоматическая компьютерная программа которая откуда-то запускается и мечет автоматически генерируемые комменты в форумах и блогах ?
Все знают что есть как бы два врага , два страшных зверя для интернета - " тролли " , которые вручную пишут какие-то неконструктивные комменты по чьему-то прказу , занимаются т.н. " троллингом  " , загаживают форумы и блоги ; и " роботы-боты " которые автоматически-генерируемые программы , которые в автоматическом режиме генерируют вредоносные комментарии . Чтобы обезвредить последние , требуют или вписать какие-то буквы или цифры в специальное окошечко , или выбирать изображения машин , витрин , указателей и т.п. - требуют " доказать что ты не робот " .
--------------------
Когда для позитивных программ вы такое название употребляете , вы как бы сами себя мажете для подсознания части читателей черным цветом . Занимаетесь сами против себя черным пиаром . 
Если вы такое слово употребляете с хитрой целью чтобы что-то " прощупать " - я не конкретизирую - 
то вы должны иметь в виду что 
Есть люди с обостренным восприятием , Есть городские сумасшедшие , Есть пользователи интернета в том числе программисты и даже богатые бизнесмены ( которые еще не прогорели , завтра прогорят ) , которые могут прочитать этот ваш пост в тот момент когда их компьютер подвергается хакерской атаке кого-нибудь , например , конкурента или стоящих за ним спецслужб или просто каких-то хакеров .
Совпадение может быть или случайным или специально подстроенным .
---------
Человек увидел что у него в папке " Мои документы " появились какие-то вредоносные или просто чужие файлы закинутые из интернета - в момент - когда он зашел в блог Яндекса и начал читать эту вашу статью . Где вы пишете что разработали бот .
И ЧАСТЬ таких людей будет ассоциировать хакерскую атаку с вами . Часть подумает , что это Яндекс И устроил хакерскую атаку на его компьютер , И одновременно пишет про боты которые он разрабатывает - про вредоносные программы .
Раз Яндекс что-то пишет про боты которые он разрабатывает , раз боты всегда означало вредоносные программы , какое-то зло ,  и раз одновременно в этот момент кто-то шурует в его компьютере - такой человек сделает вывод что ЗНАЧИТ это Яндекс и атакует его компьютер , Яндекс и издевается над ним , и это исподтишка показывает .
Вы просто наживаете этим неосторожным словом - имеющим в большинстве случаев однозначно черный негативный смысл - себе бессознательных врагов .
-------------
И по " испорченному телефону " может возникнуть и распространиться слух что Яндекс разрабатывает вредоносные программы , " боты " или " роботы-боты " .
--------------
Думаю это ошибка , что такое однозначно негативное слово , вы употребляете для такой безобидной и позитивной программы , которую вы разработали .
petermura,
Извините, но вы бред написали. Ботами это в телеграмме называется. И вряд ли человек, который не знает, что такое боты будет читать блог Яндекса.
petermura,
Вы вообще знаете, что такое боты? И где они применяются? Вы месседжером хоть раз пользовались!?
danyBatinF1,
заходим в Википедию . Статья https://ru.wikipedia.org/wiki/Бот .
 Так как русскоязычная Википедия в отличие от англоязычной " хвостатая " - там полный адрес страницы сейчас " с хвостом " такой https://ru.wikipedia.org/wiki/%D0%91%D0%BE%D1%82 - вынужден указать так как " хвосты " постоянно меняют и меняют контент страниц русскоязычной Википедии  -чтобы меня не подозревали в обмане и мошенничестве если завтра кто-то туда зайдет и увидит на этой странице совсем другой текст . Тексты Викистраниц постоянно переписывают .
Так вот , там пишут- берем только программистские значения - " Бот (англ. bot, сокращение от «робот», от чеш. robot) — программа, выполняющая автоматически и/или по заданному расписанию какие-либо действия, и имеющая в этом некое сходство с человеком.
Бот — программа или часть программы, имитирующая партнёров в многопользовательских компьютерных играх.
Виртуальный собеседник в электронных конференциях. См. также тест Тьюринга.
...
Бот — компьютерная программа, выполняющая различные функции чата. "
*****
Теперь заходим в первое значение https://ru.wikipedia.org/wiki/Бот_(программа) полный wiki-страницы адрес " с хвостом" https://ru.wikipedia.org/wiki/%D0%91%D0%BE%D1%82_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0) вынужден на всякий случай указать
смотрите что там в частности написано 
!!!!!!!!!!!
" Вредоносное использование[править | править вики-текст]
Другим вредоносным проявлением ботов является их использование для координации сетевых атак на компьютеры, например, DDoS- и DoS-атак через ботнет. Интернет-боты могут использоваться для мошенничества типа Кликфрод (en:Click fraud). В последнее время стали массовыми боты, используемые в играх жанра MMORPG. Спам-боты используются для распространения по различным ресурсам сети информации (обычно рекламного содержания).
Основные вредоносные действия ботов (и ботнетов):
Спам-боты, собирающие адреса E-mail из контактных форм и гостевых книг;
Программы, загружающие интернет-канал потоком ненужной информации (как правило, рекламного характера);
Сайты, собирающие информацию о безвредных сайтах, для использования её в автоматически создаваемых дорвеях;
Некоторые вирусы и черви;
DoS- и DDoS-атаки;
Ботнеты и компьютеры-зомби.
Боты часто используются для скупки лучших мест на концертах, авиарейсах и т. п., особенно в целях последующей перепродажи. Это позволяет ботам в кратчайшие сроки забронировать так много мест, как возможно. Таким образом, прибывающая обычная публика зачастую имеет меньше шансов приобрести билеты.
Боты широко используются во многих онлайн-играх для фарминга игровой валюты, игровых ценностей и т. п., что ставит игровые экономики в затруднительное положение.
Для противодействия автоматическим действиям сейчас наиболее широко применяется т. н. CAPTCHA. CAPTCHA, по сути, является одной из форм теста Тьюринга, применяемой для различия машины и человека путём демонстрации особым образом графически обработанного текста. Данный текст сравнительно легко читается человеком, а современные реализации ИИ часто не справляются с его распознаванием. "
!!!!!!!!!!!
Конечно , там и другие значения слова бот приведены которые не вредоносные программы
НО есть и значения слова бот которые откровенно отрицательны
********
И моя мысль была что у значительного числа людей , у народа как раз слово " бот " АССОЦИИРУЕТСЯ вот с этими вредоносными вещами .
У Вас ассоциируется с положительным - с Вашим мессенджером , у некоторых других - с отрицательным - с вредоносным ПО , в роботами которые автоматически размещают на форумах и в блогах сгенерированные комменты и постоянной изнурительной проверкой " доказать что ты не робот " со всевозможными тестами что ты человек а не компьютерная программа ( в блогах , на форумах , в поисковиках и т.д.  ) .
*******************
Прав я или нет и правы Вы , кто из нас двоих более прав , может рассудить только специалист Яндекса - у которого есть статистика из Яндекс-поисковика - как кто употребляет в интернете вообще слово " бот " .
********************
Моя мысль что некоторые прочитав что Яндекс разрабатывает боты - у них будет на подсознательном уровне ассоциироваться вот с этими вредоносными вещами которые тоже есть в значительном количестве . И раз так , слово " бот " лучше поменьше применительно к своему программному обеспечению употреблять - можно нажить врагов среди тех кто может напутать .
**********************
Поэтому прошу слово " бред " применительно к моим комментам в этой теме больше не употреблять в общем , можно если только вы конкретизируете что именно конкретно бред , какая фраза , мысль или момент . Только конкретно .
Я говорю о подсознательной ассоциации которая возникает у значительного числа людей когда они видят слово " бот " . Особенно те кто с этими ботами ( вредоносными ) как-то намучались .
petermura,
Ну и? Тот, что не знает что это не посещает такие блоги. А тот кто знает, поймёт, ведь телеграмм сам их называет БОТАМИ
danyBatinF1,
если "телеграмм сам их называет БОТАМИ" причем где-то на видном месте, под носом у юзера, тогда вынужден согласиться, что тогда слово "бот" для значительной части аудитории окрашено позитивно. Критерий тогда для большинства аудитории - как в ВотсАппе - называет ли он на видном месте "бот" или нет. Так как большинство в ВотсАппе (а не в Телеграмме где поменьше). Если так называет - соглашусь что и большинство относится к слову "бот" позитивно . / Я сам не знаю , я сам не пользуюсь ни ВотсАппом ни Телеграммом , причем я не всезнайка и не обязан все знать . / Но есть еще меньшинство которое или не пользуется ВотсАппом или Телеграммом или так пользуется ... Оно может воспринять слово "бот" резко негативно как ассоциация бессознательная с вредоносной программой или "роботом-ботом", повторяюсь еще раз. Более десяти лет предыдущих был такой смысл. / Фразы же "Тот, что не знает что это не посещает", "кто знает, поймёт" - это от лукавого. Кто угодно может зайти в блог, не всегда все все понимают так как Вы хотите. Такие обобщения - обман или самообман. "Люди должны знать" - тут Вы можете и хитрить.
Для пк будет ?
Мастер Груша х_х
12 августа, 11:49
А почему бы не заменять текст сообщения «обрабатываю» на результат вместо отправки следующего сообщения?
Влад Платонов
12 августа, 13:45
Когда вы исправите бот @pic ? Там теперь ссылки не сокращаются...