Полагаю, ответ на ваш вопрос вы найдёте по запросу "shazam algorithm". Другое дело, что
в реальном времени это будет реализовать весьма тяжело. Но можно непрерывный поток "резать" на пятисекундные куски каждые 3 секунды (цифры взяты с потолка) и уже в кусках осуществлять поиск.
Вот тут можете посмотреть неплохое описание алгоритма с кусками кода и симпатичными графиками.
P.S. если разберётесь - ждём статью на хабре. Вопрос весьма интересный :)