Я хочу построить нечто похожее на Tunatic или Midomi (попробуйте их, если вы не уверены, что они делают), и мне интересно, какие алгоритмы я должен использовать; Идея, которую я имею о работе таких приложений, выглядит примерно так:
- есть большая база данных с несколькими песнями
- для каждой песни в 1. снизить качество/скорость передачи (например, до 64 кбит/с) и рассчитать звук "хэш"
- есть звук/фрагмент музыки, которую вы хотите идентифицировать.
- для песни в 3. снизить качество/скорость передачи (до 64 кбит/с) и рассчитать звук "хэш"
- Если 4. звуковой хэш присутствует в любом из 2. хэшей звука, возвращайте согласованную музыку
Я хотя и уменьшаю качество/скорость передачи данных из-за шумов среды и различий в кодировании.
Я нахожусь на правильном пути здесь? Может ли кто-нибудь предоставить мне любую конкретную документацию или примеры? Мидори, похоже, даже признает hum's
, что довольно впечатляет! Как они это делают?
Имеются ли звуковые хэши или это что-то, что я только что нарисовал? Если они это сделают, как я могу их вычислить? И что еще более важно, , как я могу проверить, находится ли child-hash
в father-hash
?
Как я могу сделать создание аналогичной системы с Python (возможно, встроенным модулем) или PHP?
Будут оценены некоторые примеры (желательно на Python или PHP). Спасибо заранее!