Как я могу сделать обнаружение поля в реальном времени в .NET?

StackOverflow https://stackoverflow.com/questions/4236475

Вопрос

Я хочу сделать программу, которая обнаруживает примечание, которая воспроизводится перед микрофоном. Я проверяю функцию FFT Naudio, но с тестами, которые я сделал в Audacity, кажется, что FFT не обнаруживает поле правильно. Я сыграл C5, но самый высокий выбор был на E7.

Я изменил первый выпадающий коробку в окне анализа частоты, чтобы «запустить автокорреляцию» и после этого максимальный выбор был на C5.

Я гурил "энтученную автокорреляцию" и не повезло.

Это было полезно?

Решение

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

Методы автоматической корреляции частоты или оценки тона (примерно находятся на том, насколько далеко не повторяется даже смешные и / или несусусиоидальные формы волны), как правило, является лучшим совпадением для того, что человек позвонит поле. Причиной различных улучшений алгоритма автокорреляции заключается в том, что простое автокорреляция найдет ближние бесконечное число повторяющихся длин волн (например, если он повторяется каждые 1 секунду, он также повторяется два раза каждые 2 секунды и т. Д.) Так что хитрость весит корреляцию Каким-то образом статистически лучше соответствовать тому, что у человека догадается о том же формы волны.

Другие советы

Вы, скорее всего, выброшенные гармониками. Вы пытались тестировать с синусоидной волной, чтобы увидеть, если ваша Naudio FFF в балкомпарке?

Смотрите эти ссылки:http://cnx.org/content/m11714/latest/

http://www.gamedev.net/community/forums/topic.asp?topic_id=506592&whichpage=1�.

Линия 48 в Spectrum.cpp В исходный код Audacity, кажется, близок к тому, что вы хотите. Они также ссылаются IEEE Paper от Tolonen и Karjalainen.

Ну, если вы можете жить с GPLV2, почему бы не взять заглянуть на исходный код Audacity?

http://udacity.sourceforge.net/download/beta_source.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top