Зашёл тут давеча разговор о сервисах, позволяющих с помощью телефона определить, что за музыку я сейчас слышу. Я знаю три предназначенных для этого продукта. Все работают с виду одинаково: я слышу (например) по радио музыку, достаю телефон, запускаю приложение, нажимаю кнопку «Определи!», оно записывает небольшой музыкальный отрывок, отправляет его свёртку на сервер, в ответ приходит название/исполнитель того, что сейчас звучит. Но у всех трёх продуктов есть свои нюансы.
TrackID
Записываемый отрывок: 7 секунд. Плюс ожидание ответа от сервера ещё ~6-10 секунд.
Может работать в offline — в отсутствии связи, сохранить запись и определить её позже, когда связь будет.
Раньше было ощущение, что у него самая большая база. Но это было, когда конкуренты только начинали подниматься, а TrackID существовал уже давно.
Shazam
Записываемый отрывок: 4-12 секунд. Ответ от сервера приходит моментально (при хорошей связи, разумеется).
Как я понимаю, начинает отправлять свёртку на сервер практически сразу — поэтому для некоторых песен ответ приходит через 4 секунды, но для других — приходится подождать подольше. Зависит, как я понимаю, от узнаваемости песни (узнаваемости, очевидно, не с точки зрения человека, а с точки зрения алгоритмов распознавания), зашумлённости записи и т.д.
К сожалению, работает только online. Нету связи — Shazam даже не запустится (а при плохой связи может запускаться относительно долго т.к. прямо при запуске пытается установить связь со своим сервером).
По музыкальной базе, похоже, уверенно догоняет TrackID. В последнее время очень заигрался во всякую социальщину.
SoundHound
Записываемый отрывок: 6-12 секунд (как и Shazam, что-то определяет быстрее, что-то — медленнее). Ответ сервера: 0-2 секунды.
Может работать в offline (записать отрывок сейчас, распознать — позднее, когда будет связь). В таком случае позволяет записать отрывок до 18 секунд (что, как я понимаю, должно увеличить шансы на узнавание).
Музыкальная база объективно самая маленькая (тем не менее, весьма велика).
Но SoundHound обладает одной возможностью, которой нету у двух предыдущих: TrackID и Shazam способны определить только точно ту самую запись, которая когда-то вышла в каком-нибудь альбоме и попала в базы сервисов. Т.е., например, определить ту же самую песню на концерте той же самой группы не получится — это уже другой звук.
А вот SoundHound это может. С некоторой вероятностью, он сможет определить песню, если вы примерно насвистите / намычите ему мотив (кстати, очень весёлое развлечение в компании: «намычи SoundHound`у что-нибудь известное так, чтобы он определил»). Или вот давеча играли вживую коллеги что-то с импровизированной сцены — SoundHound уверенно сказал, что это Red Hot Chili Peppers «Snow (Hey Oh)». Ни TrackID, ни Shazam заведомо этого сделать не могли.
Ещё одно следствие из таких способностей SoundHound, которое следует учитывать: если TrackID или Shazam смогли дать ответ — это с большой вероятностью и есть именно та песня, которая звучит, а если определить не удалось — TrackID и Shazam об этом скажут. А вот SoundHound легко и непринуждённо может выдать любую чушь, которую почему-то счёл похожей. Конечно, ложные определения бывают и у TrackID/Shazam, но у SoundHound они случаются много чаще.
Все три приложения позволяют разместить на одном из экранов телефона виджет, позволяющий начать распознавание в один клик по этому виджету (не надо вначале запускать приложение, а потом в нём командовать «Слушай!»). В случае Shazam и SoundHound это будет иконка 1×1, а вот TrackID бессмысленно займёт много места на экране — длинную горизонтальную плашку 4×1.
Какая из этого всего мораль? Простая: «самого лучшего» сервиса не существует (как и «самого дешёвого тарифа» и «самой вкусной в мире еды»). Имеет смысл держать под рукой все три и понимать, в чём преимущества и недостатки того или другого. И, если время проигрывания заинтересовавшей мелодии позволяет, стараться успеть запустить все три сервиса ;)
К сожалению, я не могу ничего уверенно сказать про качество распознавания этими приложениями в реальных, зашумлённых условиях, т.к. слишком редко ими пользуюсь и понимаю, что достаточной статистикой не обладаю.
P.S. Да, я знаю, что возможности определения музыки есть ещё у приложений Яндекс.Музыка и музыкального магазина от Google. Но сам ими не пользовался — ничего сказать не могу.