Какую методологию использовать для различения разных (музыкальных?) Тонов

12

Я пытаюсь исследовать и выяснить, как лучше всего решить эту проблему. Он объединяет обработку музыки, обработку изображений и обработку сигналов, и поэтому существует множество способов взглянуть на это. Я хотел узнать, как лучше всего к нему подойти, поскольку то, что может показаться сложным в чисто области sig-proc, может быть простым (и уже решенным) людьми, которые занимаются обработкой изображений или музыки. Во всяком случае, проблема заключается в следующем:введите описание изображения здесь

Если вы простите мою ручную зарисовку проблемы, мы увидим следующее:

Из приведенного выше рисунка у меня есть 3 различных типа сигналов. Первый - это импульс, который как бы «повышается» по частоте от до , а затем повторяется. Он имеет определенную длительность импульса и определенное время повторения импульса.f 4f1f4

Второй существует только в , но имеет более короткую длительность импульса и более высокую частоту повторения импульсов.f1

Наконец, третий - просто тон на .f1

Проблема в том, каким образом я подхожу к этой проблеме, так что я могу написать классификатор, который может различать сигнал-1, сигнал-2 и сигнал-3. То есть, если вы подадите ему один из сигналов, он сможет сказать вам, что этот сигнал такой-то. Какой лучший классификатор даст мне диагональную матрицу путаницы?

Некоторый дополнительный контекст и то, о чем я думал до сих пор:

Как я уже сказал, это охватывает несколько полей. Я хотел узнать, какие методологии уже могут существовать, прежде чем сесть и начать с этим воевать. Я не хочу случайно изобретать велосипед. Вот некоторые мысли, которые я видел с разных точек зрения.

Точка обработки сигнала: Одна вещь, на которую я обратил внимание , - это проведение кепстрального анализа , а затем, возможно, использование полосы пропускания Габора кепстра в выделении сигнала-3 от других 2, а затем измерение самого высокого пика кепстра в распознавании сигнала. 1 из сигнала-2. Это мое текущее рабочее решение для обработки сигналов.

Точка зрения на обработку изображений: здесь я думаю, что поскольку я МОГУ на самом деле создавать изображения в отношении спектрограмм, возможно, я смогу использовать что-то из этой области? Я не очень хорошо знаком с этой частью, но как насчет того, чтобы выполнить «обнаружение линий» с использованием преобразования Хафа , а затем каким-то образом «подсчитать» строки (что если они не являются строками и каплями?) И пойти дальше? Конечно, в любой момент времени, когда я беру спектрограмму, все импульсы, которые вы видите, могут сдвигаться вдоль оси времени, так будет ли это иметь значение? Точно сказать не могу...

Точка зрения обработки музыки: Подмножество обработки сигналов, чтобы быть уверенным, но мне приходит в голову, что сигнал-1 имеет определенное, возможно, повторяющееся (музыкальное?) Качество, которое люди в музыкальном процессе все время видят и уже решили в может быть, дискриминационные инструменты? Не уверен, но мысль пришла мне в голову. Возможно, эта точка зрения - лучший способ взглянуть на это, взяв кусок временной области и высмеивая эти ступени? Опять же, это не моя область, но я сильно подозреваю, что это было то, что было замечено раньше ... можем ли мы рассматривать все 3 сигнала как различные типы музыкальных инструментов?

Я также должен добавить, что у меня есть приличный объем обучающих данных, так что, возможно, использование некоторых из этих методов может просто позволить мне извлечь некоторые особенности, с которыми я затем смогу использовать K-Nearest Neighbor , но это всего лишь мысль.

Во всяком случае, именно здесь я стою сейчас, любая помощь приветствуется.

Благодарность!

РЕДАКТИРОВАТЬ НА ОСНОВЕ КОММЕНТАРИЙ:

  • Да, , , , все известны заранее. (Некоторое отклонение, но очень небольшое. Например, допустим, мы знаем, что = 400 кГц, но оно может прийти на частоте 401,32 кГц. Однако расстояние до велико, поэтому для сравнения может составлять 500 кГц.) Сигнал-1 ВСЕГДА наступит на эти 4 известные частоты. Сигнал-2 ВСЕГДА будет иметь 1 частоту.f1f 3 f 4 f 1 f 2 f 2f2f3f4f1f2f2

  • Частота повторения импульсов и длительности импульсов всех трех классов сигналов также известны заранее. (Опять некоторая разница, но очень маленькая). Некоторые предостережения, хотя, частота повторения импульсов и длительности импульсов сигналов 1 и 2 всегда известны, но они являются диапазоном. К счастью, эти диапазоны не перекрываются вообще.

  • Вход представляет собой непрерывный временной ряд, поступающий в реальном времени, но мы можем предположить, что сигналы 1, 2 и 3 являются взаимоисключающими, поскольку в любой момент времени существует только один из них. У нас также есть большая гибкость в отношении того, сколько времени вы тратите на обработку в любой момент времени.

  • Данные могут быть шумными, да, и могут быть ложные тона и т. Д. В диапазонах, не известных нам , , , . Это вполне возможно. Тем не менее, мы можем предположить, что SNR среднего значения, чтобы «начать» проблему.f 2 f 3 f 4f1f2f3f4

ошалевший
источник
Какой будет ваш вклад? 1 / Непрерывный поток, в котором вы хотите разделить вхождения сигнала 1/2/3 (сегментация + проблема классификации) или 2 / отдельные выборки только с одним типом сигнала, который нужно классифицировать по категориям 1/2/3? Вы описываете несколько характеристик сигналов: PRT сигнала 1; частота повторения сигнала 2; частота сигнала 3; значения f1 / f2 / f3 / f4. Эти параметры известны заранее или являются переменными? Наконец, если на вашем входе есть несколько вхождений этих сигналов в сегмент, какова типичная продолжительность сегмента?
pichenettes
Другой вопрос: из ваших рисунков похоже, что вы имеете дело с чистыми тонами (без гармоник и без шума). Так ли это, или данные намного грязнее, чем ваши рисунки?
pichenettes
@pichenettes Спасибо, я добавил необходимую информацию в редактирование.
Spacey
Будем признательны за ваши успехи и решения этого вопроса. Анализ в основном зависит от временной изменчивости изучаемых звуков. если они быстрее, чем окно FFT, скажем, при 256 выборках вам понадобятся спектрограммы с высоким разрешением. Чем точнее спектрограмма, тем больше деталей вы можете увидеть в своих звуках. БПФ, вероятно, в порядке. После этого возникает вопрос о добавлении логических операторов для классификации звуков с использованием простых процедур анализа паттернов. анализировать длительность импульсов, расстояние между ними, хордовый характер в целом и т. д.
com.prehensible
просто найти основную гармонику, просто проверив пиковое значение каждой x-линии, а затем вы просто получите график для анализа с использованием программирования анализа сигнатур шаблонов, который будет развиваться так же, как если бы вы анализировали их в риторике, просто Нарисуйте правила лучших дифференциаторов, которые вы сознательно используете при сравнении и классификации числовых прогрессий.
com.prehensible

Ответы:

7

Шаг 1

S(m,k)mk

Шаг 2

Для каждого STFT-кадра вычислите доминирующую основную частоту, используя что-то вроде YIN, вместе с индикатором «достоверности основного тона», таким как глубина «падения» DMF, вычисляемого с помощью YIN.

f(m)mv(m)m

r0

e(m)m

Шаг 3

MMM=50

Извлеките следующие функции:

  • σf(k)(f(m))m[kM,k+M],v(m)>τ
  • σv(k)(v(m))m[kM,k+M]
  • σe(k)(e(m))m[kM,k+M]

σfσvσe

σfσvσeσfσvσeσfσvσe

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

Шаг 4

M

Если ваши данные и классификатор хороши, вы увидите что-то вроде этого:

1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3

Это довольно хорошо определяет время начала и окончания, а также тип каждого сигнала.

Если ваши данные зашумлены, должны быть ложные неправильно классифицированные кадры:

1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 3, 2, 2, 1, 1, 1, 3, 1, 1, 1, 3, 3, 3, 3, 2, 3, 3, 3

Если вы видите много дерьма, как во втором случае, используйте фильтр режима для данных по окрестностям 3 или 5 обнаружений; или используйте HMM.

Забрать домой сообщение

На чем вы хотите основывать свое обнаружение, это не спектральная характеристика, а совокупная временная статистика спектральных характеристик по окнам, которые имеют тот же масштаб, что и длительности вашего сигнала. Эта проблема действительно требует обработки в двух временных масштабах: кадр STFT, для которого вы вычисляете очень локальные свойства сигнала (амплитуда, доминирующий шаг, интенсивность основного тона) и большие окна, в которых вы смотрите на временную изменчивость этих свойств сигнала.

pichenettes
источник
Обратите внимание, что вы также можете сделать это в стиле распознавания речи, если хотите использовать HTK или подобное ... Акустическая модель: 4 телефона P1, P2, P3, P4 (тон на f1, тон на f2, тон на f3, тон на f4 ) + 1 символ S для тишины. 1 или 2 гауссиан на телефон. Слово модель W1 для сигнала 1: (P1 S P2 S P3 S P4 S) +. Слово модель W2 для сигнала 2: (P1 S) +. Слово модель W3 для сигнала 3: (P1) +. Модель предложения: (W1 | W2 | W3) *. Единственное предостережение в том, что если вы используете набор инструментов для распознавания речи, вам придется настроить его интерфейс извлечения функций, так как MFCC слишком низки в разрешении и не зависят от высоты тона, чтобы отличать f1 / f2 / f3 / f4.
pichenettes
@pichenettes Спасибо, пикенетки, это очень хороший ответ - у меня есть пара замечаний: 1) Что такое «Инь», о котором вы говорите, и что такое «ДМФА»? Я не смог ничего найти на них через гугл. 2) Что такое «достоверность основного тона» в качестве меры? 3) Вы упоминаете, что можете использовать автокорреляцию, чтобы найти достоверность основного тона - автокорреляцию чего, кадра временной области или STFT кадра? (Я не понимаю этого, вероятно, потому что я не знаю, что вы имеете в виду абсолютную уверенность). (продолжение ...)
Спейси
@pichenettes (продолжение) 4) Относительно тех функций, которые существуют НА ОКНО только да? Таким образом, вы вычисляете три stds на окно, из (в данном случае) 101 кадра? В этом случае, когда приходит время тренироваться, моя 3-ья «точка» была сделана из 3-х стандартных более 101 КАДРОВ, верно? 5) На вашем шаге 4, когда у вас есть число 1,1,1,2,2 и т. Д., Каждое число соответствует тому, как вы классифицировали ТО, что окно корректно? Первым «1» была классификация окна, составленного из фреймов от -50 до 50, а вторым «1» из окна, состоящего из фреймов от -49 до 51, верно? (Окно каждый раз сдвигается на 1 кадр) ...
Spacey
@pichenettes 6) Наконец, я должен был упомянуть, что это должно использоваться как «сигнал тревоги», так что, если присутствует либо сигнал-1, либо сигнал-2, я получаю сигнал тревоги, но тогда ничего не должно сработать, если там ничего нет - разве не должно быть какого-то порогового значения для сопоставления, прежде чем оно даже начнет пытаться классифицировать, чтобы вы не получали ложных срабатываний ни за что? (просто фоновый шум например). (Я только сейчас изучаю Наивный Байесовский классификатор, поэтому не знаю, является ли он мультиклассом). 7) СПАСИБО ОГРОМНОЕ СПАСИБО И СПАСИБО В ПРЕДЕЛАХ! Тысяча и один голос за тебя! :-)
Spacey
1
1 / YIN - это классический алгоритм определения высоты звука для речевых и музыкальных сигналов. recherche.ircam.fr/equipes/pcm/cheveign/pss/2002_JASA_YIN.pdf . DMF - это «функция разности величин», величина, вычисляемая такими алгоритмами, как YIN, для оценки основного тона. 2 / Алгоритм обнаружения основного тона, такой как YIN, даст оценку основной частоты и «показатель достоверности», указывающий, насколько вероятно, что возвращенный шаг является правильным ответом. На шумных сигналах или сигналах, демонстрирующих несколько высот, это будет низким, на чистой синусоиде - очень высоким.
pichenettes
3

Альтернативным подходом могут быть четыре гетеродинных детектора: умножить входной сигнал с помощью локальных генераторов 4 частот и отфильтровать получаемые выходные сигналы нижних частот. Каждый вывод представляет вертикальную линию на вашей картинке. Вы получаете выход на каждой из 4 частот как функцию времени. С помощью фильтра нижних частот вы можете указать, какое отклонение частоты вы хотите учесть, а также то, как быстро вы хотите, чтобы выходы менялись, то есть насколько резкими были края.

Это будет хорошо работать, даже если сигнал довольно шумный.

Hilmar
источник
Я думал об этом методе. Предвидите ли вы какие-либо преимущества этого метода (микширование и LPF) перед работой непосредственно на полосе пропускания с использованием спектрограммы и т. Д.?
Спейси