Обнаружение шума через микрофон при воспроизведении песни на iPhone

Я делаю приложение, которое должно воспроизводить простую звуковую дорожку и сообщать мне, есть ли шум поблизости во время воспроизведения дорожки. Это делается путем записи в реальном времени с микрофона, когда песня воспроизводится через громкоговоритель iPhone. Любой звук, не являющийся частью воспроизводимой музыки, определяется как шум.

Каким будет самый простой способ реализовать эту функциональность?

Я довольно подробно изучил его в Интернете, но мне не удалось найти ничего, что указывало бы мне на решение этой конкретной проблемы. Хотя это может быть комбинация различных методов, о которых я читал, в конечном итоге это будет решением.

Вещи, которые я уже реализовал
Воспроизведение песни и запись звука одновременно.

Что я пробовал
ПРИМЕЧАНИЕ. :Так как нас поощряют добавлять то, что мы уже пробовали, я добавляю следующую часть.Но я ни в коем случае не говорю, что это правильный способ решения проблемы, просто я пробовал.

Я взломал тестовое приложение aurioTouch2 :. Я воспроизвел песню один раз и записал значения быстрого преобразования Фурье (с довольно низкой частотой дискретизации, чтобы уменьшить объем записываемых данных ). Затем, когда дорожка воспроизводилась снова, я в основном вычислял (на временной шаг )коэффициент корреляции между выходными графиками, которые построены с использованием данных fft воспроизведения в реальном времени и записанных данных fft (, поэтому «волнистые» линии, которые вы видите, когда вы переводите приложение в режим FFT ).
Это "вроде" работает. Коэффициент корреляции явно ниже, когда в комнате избыточный звук/шум, но он не очень чувствителен, а также зависит от уровня громкости, который использовался при записи данных БПФ. В конце концов, я думаю, что это может быть не лучший подход.

Кто-нибудь думает, что это возможно? Если да, то какой подход будет лучшим?
Пожалуйста, спросите, если вам нужно больше разъяснений!

13
задан Ilmari Karonen 26 October 2013 в 17:54
поделиться