Музыкальное распознавание и обработка сигналов

Я хочу создать что-то подобное Tunatic, или Midomi (испытайте их, если Вы не уверены, что они делают), и я задаюсь вопросом, какие алгоритмы я должен был бы использовать; идея, которую я имею о работах таких приложений, является чем-то вроде этого:

  1. имейте большую базу данных с несколькими песнями
  2. для каждой песни в 1. уменьшите качество / скорость передачи (к 64 Кбит/с, например) и вычислите звуковой "хеш"
  3. имейте звук / выборка музыки, которую Вы хотите определить
  4. для песни в 3. уменьшите качество / скорость передачи (снова к 64 Кбит/с) и вычислите звуковой "хеш"
  5. если 4. звуковой хеш находится в любом из 2. звучите хеши возвращают подобранную музыку

Я, хотя из сокращения качества / скорость передачи из-за шумов среды и кодирования различий.

Я нахожусь в правильной дорожке здесь? Кто-либо может предоставить мне какую-либо определенную документацию или примеры? Midori, кажется, даже распознает hum's, это является довольно удивительно впечатляющим! Как они делают это?

Звуковые хеши существуют, или это что-то, что я просто составил? Если они делают, как я могу вычислить их? И что еще более важно, как я могу проверить если child-hash находится в father-hash?

Как я пошел бы о создании аналогичной системы с Python (возможно, встроенный модуль) или PHP?

Некоторые примеры (предпочтительно в Python или PHP) будут значительно цениться.Заранее спасибо!

14
задан TheCodeArtist 2 September 2013 в 03:43
поделиться

6 ответов

Я работал на периферии прохладной структуры, которая реализована Несколько музыкальных информационных технологий поиска. Я вряд ли эксперт (редактировать: на самом деле я никуда рядом с экспертом, просто чтобы уточнить), но я могу сказать, что быстрый преобразование Фурье используется по всему месту с этим материалом. Анализ Фурье - Wacky, но его приложение довольно быстро. По сути, вы можете получить много информации об AUDIO, когда вы проанализировать его в частотном домене, а не временной домену. Это какой анализ Фурье дает вам.

Это может быть немного из темы от того, что вы хотите сделать. В любом случае, в проекте есть несколько прохладных инструментов, а также просмотр Sourcecode для самой основной библиотеки: http://marsyas.sness.net

10
ответ дан 1 December 2019 в 07:51
поделиться

Я делаю исследование в музыкальном получении информации (MIR). Семнальная бумага на музыке отпечатков пальцев - это тот, кто из Хайцмы и Калькера около 2002-03 годов. Google должен получить вас.

Я прочитал раннее (действительно рано; до 2000 года) белая бумага о методе Шазама. В этот момент они просто в основном обнаружили спектротерпоральные пики, а затем хешили пики. Я уверен, что процедура развивалась.

Оба эти методы устраняют сходство музыки на уровне сигнала, то есть устойчивая к искажениям окружающей среды. Я не думаю, что это хорошо работает для намотания к запросу (QBH). Тем не менее, это другая (еще связанная) проблема с различными (еще не связанными) решениями, поэтому вы можете найти решения в литературе. (Слишком много, чтобы назвать здесь.)

Материалы ISMIR свободно доступны в Интернете. Вы можете найти ценные вещи там: http://www.ismir.net/

Я согласен с использованием существующей библиотеки, такой как Marsyas. Зависит от того, что ты хочешь. Numpy / Scipy незанимается здесь, я думаю. Простые вещи можно написать в Python самостоятельно. HECK, если вам нужны такие вещи, как STST, MFCC, я могу написать вам код.

11
ответ дан 1 December 2019 в 07:51
поделиться

MFCC, извлеченный из музыки, очень полезен в нахождении сходства Timbrel между песнями .. Это чаще всего используется, чтобы найти подобные песни. Как указано в Darren, Marsyas - это инструмент, который можно использовать для извлечения MFCC и найти аналогичные песни, преобразуя MFCC в одно векторное представление.

, кроме MFCC, ритм также используется для поиска сходства песни .. Несколько документов, представленных в Mirex 2009

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

3
ответ дан 1 December 2019 в 07:51
поделиться

Я прочитал бумагу о методе, в котором определенная музыкальная служба поиза информации (не упомянутые имена) не делает это - путем расчета короткого временного преобразования Фурье через образец аудио. Алгоритм затем выбирает «пики» в частотной области I.e. Временные позиции и частоты, которые особенно высокой амплитуды, и использует время и частоту этих пиков для генерации хеша. Оказывается, у хеша удивительно несколько столкновений между разными образцами, а также отстает от примерно 50% потери данных пика .....

1
ответ дан 1 December 2019 в 07:51
поделиться

Возможно, вы хотите что-то вроде ECL , который компилирует Common Lisp to C.

-121--3348480-

Обычно корень находится на http ://servername/svn/repositoryname . Я думаю, что есть некоторые известные проблемы, когда у вас есть репозиторий в корне (то есть, когда ваш URL то, что вы описываете, и имя репо 'svn').

Изменить: Это означает, что нет уровня выше /svn/proj1/ в отношении Subversion. Также невозможно переместить (с сохранением истории) предметы с /svn/proj1/ на /svn/proj2/. Я думаю, что вы слишком активно создавали репозитории, вызывая проблемы при попытке повторного использования предметов в одном репозитории в другом. См. обсуждение нескольких репозиториев по сравнению с одним и часто задаваемые вопросы о том, как объединить несколько репозиториев в один.

Если требуется повторно использовать часть репозитория proj1 в репозитории proj2, может потребоваться просмотреть внешние данные .

-121--2418376-

Прошло некоторое время с тех пор, как я в последний раз занимался обработкой сигнала, но вместо понижающей дискретизации следует посмотреть на представления в частотной области (например, FFT или DCT). Затем можно создать хеш видов и найти песню базы данных с этой последовательностью в.

Хитрая часть делает этот поиск быстрым (возможно, некоторые документы по поиску генов могут представлять интерес). Я подозреваю, что iTunes также делает некоторое обнаружение инструментов, чтобы сузить поиск.

1
ответ дан 1 December 2019 в 07:51
поделиться

В настоящее время я разрабатывающую музыкальную поисковую систему с помощью ActionScript 3. Идея анализирует аккорды сначала и маркирует кадры (он ограничен файлами MP3 На данный момент) там, где частота изменяется значительно (мелодия меняется и игнорирующие шумы). После этого я делаю то же самое для ввода звука, и сопоставим результаты с перевернутыми файлами. Соответствующий определяет соответствующую песню.

Для метода Акселя, я думаю, вы не должны беспокоиться о запросе, будь то пение или просто намотаться, так как вы не реализуете программу распознавания речи. Но мне интересно ваш метод, который использует хеш-функции. Не могли бы вы объяснить это мне?

1
ответ дан 1 December 2019 в 07:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: