Определение тангажа в реальном времени с использованием БПФ
Я пытаюсь сделать в реальном времени определение высоты тона, используя C++. Я тестирую некоторый код с сайта Perforous ( http://performous.org/), потому что все остальное у меня не сработало. Я точно знаю, что это работает, но я просто не могу заставить его работать. Я пробовал это в течение нескольких недель, и я не смог заставить работать какой-либо код обнаружения тона.
3 ответа
Вместо того, чтобы использовать вход от микрофона, вы должны создать данные с известной единственной частотой и пропустить их через программу и посмотреть, дает ли она правильный результат. Затем вы можете добавить к нему гармоники и посмотреть, работает ли это. Данные реального мира слишком переменны для первоначального тестирования.
Производительный аудиокод имеет некоторые оптимизации, ограничения по частоте и эвристику, которые делают его пригодным только для пения (и других подобных тонов). Оптимальный диапазон составляет около 80-600 Гц.
C/C++/Obj-C Алгоритм реального времени для определения ноты (не высоты звука) из вокального ввода
Проверьте принятый ответ по этой ссылке.
Я искал SO для ответа на эту проблему, и это самый полезный ресурс, который я нашел.
Похоже, что Performous использует этот алгоритм, но его трудно разобрать из кода Performous.
РЕДАКТИРОВАТЬ: я наконец-то удалось рабочее решение. напишите мне, если заинтересован sunfish|gmail|c0m