Подтвердить что ты не робот

Алгоритм распознавания аккордов гитар?

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

Спасибо!

4b9b3361

Ответ 1

Короткий ответ заключается в том, что вам нужно гораздо больше одного алгоритма. Хорошие методы распознавания аккордов можно более точно описать как "системы", но обычно они основаны на первоначальном преобразовании в частотную область (чаще всего DFT).

Если вы хотите, чтобы аккордовая композиция была похожа на эту песню

C G Am F7 F6 C ...

то это на самом деле проблема, которая немного удалена из распознавания заметок в части аудио. На самом деле, есть две проблемы (грубо говоря):

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

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

Попробуйте google ученого "транскрипция аккорда" или "обнаружение аккордов" или "аккордная маркировка" для продвинутых исследований в этой области.

Большинство этих подходов используют дискретное преобразование Фурье (DFT) для создания начальной спектрограммы. При дальнейшей обработке они, как правило, незначительно отличаются друг от друга, хотя использовались различные методы сглаживания временных рядов: скрытые марковские модели, динамические байесовские сети, векторные векторные машины (SVMstruct) и условные случайные поля. Самые продвинутые транскрипторы используют автоматическую настройку, ключевую информацию, информацию о басовых нотах и ​​информацию о метрической позиции для улучшения результатов. Мой тезис (глава 2) дает хороший обзор.

Алгоритмы обнаружения хорды с открытым исходным кодом:

Надеюсь, что это поможет.

Ответ 2

Ну, вы можете попробовать другой набор алгоритмов для частотной области, например, всплесков. Но я не уверен, что это будет сделано для вашей точности. На самом деле, я не понимал, каким образом у вас возникают проблемы с БПФ. Он всегда будет приближением аккорда, нет идеального способа получить такую ​​информацию о звуке.

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

Проблема, с которой вам придется столкнуться, заключается в разделении основных гармоник от верхних гармоник, одна вещь, которая может помочь, - это учитывать только частоты, которые находятся на гитарном диапазоне. Если вам нужно только работать с гитарными звуками, вы должны дать некоторое время, чтобы изучить нормальный график частотной области гитары и попытаться использовать это, чтобы повысить точность.

Ответ 3

Есть несколько достаточно успешных инструментов, которые используют DFT (FFT), но они выполняют большую обработку после вычисления DFT.

Попробуйте эту ссылку для краткого изложения текущего уровня техники или gohor "Chordino" или "Chordata" для извлечения хорды с открытым исходным кодом алгоритмы.

Ответ 4

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

Гармоники не являются проблемой, поскольку они имеют меньшую мощность, чем основная частота, например C = 440 Гц, но C = 880 Гц, но 880 будет меньшим всплеском результатов FFT.

Ответ 5

Между ученым существует конкурс, где люди пытаются анализировать различные параметры музыки. Одним из разделов этого конкурса является распознавание аккордов. Этот конкурс является публичным, поэтому каждый может участвовать в нем и показывать результаты в этой сфере. Результаты 2011 года публикуются здесь.

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