Как сравнить входной звук с заранее заданным звуком? - PullRequest
8 голосов
/ 07 ноября 2011

Уточнено:

Предположим, я играю G на своей гитаре, и моя звуковая карта получила вход.Как заставить мой компьютер распознавать, что это G?(Нет ограничений на язык программирования, хотя предпочитают Python или C) (Ссылки на статьи или определенные идеи помогут. Никаких фрагментов кода)

Ответы [ 3 ]

1 голос
/ 08 ноября 2011

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

Поиск в стеке потока алгоритмов оценки музыкального тона. Есть куча.

0 голосов
/ 07 ноября 2011

Если вы хотите проверить только несколько частот, алгоритм Goertzel может быть проще в реализации. (И быстрее во время выполнения)

0 голосов
/ 07 ноября 2011

Используйте быстрое преобразование Фурье.Вот некоторый код: http://www.codeproject.com/KB/audio-video/FftGuitarTuner.aspx

...