Алгоритм распознавания аккордов гитары? - PullRequest
38 голосов
/ 27 октября 2010

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

Спасибо!

Ответы [ 5 ]

69 голосов
/ 14 декабря 2010

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

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

C G Am F7 F6 C ...

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

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

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

Попробуйте Google Tologic "chord transcription",или «обнаружение аккордов», или «маркировка аккордов» для продвинутых исследований в этой области.

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

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

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

3 голосов
/ 05 ноября 2010

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

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

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

2 голосов
/ 24 февраля 2015

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

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

2 голосов
/ 01 декабря 2010

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

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

1 голос
/ 14 сентября 2012

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

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

...