Существует значительное совпадение между обнаружением аккордов и обнаружением клавиш, поэтому некоторые из моих предыдущих ответов на этот вопрос могут оказаться полезными, поскольку в них есть несколько ссылок на статьи и тезисы. Получить хороший полифонический распознаватель невероятно сложно.
Моя собственная точка зрения на это заключается в том, что применение полифонического распознавания для извлечения нот, а затем попытка обнаружить аккорды по нотам - неправильный способ сделать это. Причина в том, что это неоднозначная проблема. Если у вас есть два сложных тона с точностью до октавы, то невозможно определить, воспроизводятся ли одна или две ноты (если у вас нет дополнительного контекста, такого как знание профиля гармоники). Каждая гармоника C5 также является гармоникой C4 (и C3, C2 и т. Д.). Поэтому, если вы попробуете мажорный аккорд в полифоническом распознавателе, вы, вероятно, получите целую последовательность нот, которые гармонично связаны с вашим аккордом, но не обязательно ноты, которые вы играли. Если вы используете метод определения высоты тона, основанный на автокорреляции, вы увидите этот эффект довольно отчетливо.
Вместо этого я думаю, что лучше искать узоры, которые сделаны определенными формами аккордов (Major, Minor, 7th и т. Д.).