Вы можете делать с C# все, что хотите, но это не сработает так, как вы думаете. По сути, нет никакой связи между тем, как выглядит запись на экране осциллографа, и тем, как эта запись звучит для человеческого уха. Так, например, если бы я показал вам два файла WAV, отображаемых на дисплее осциллографа, и сказал бы вам, что в одной записи играет туба, а в другой запись человека, произносящего фразу, вы бы не поняли, что это за запись, просто взглянув на нее. на них.
Если вы хотите сравнить звуки пользователя с предварительно записанным WAV-файлом, вы должны стать более изощренным и провести БПФ-анализ обоих и сравнить частотные спектры, но даже это не сработает для того, что вы пытаетесь сделать.
Обновление: после некоторых размышлений я не думаю, что полностью согласен с моими утверждениями выше. То, что вы хотите сделать, может сработать, если вы хотите использовать эффект типа осциллографа для сравнения высоты тона (или частоты) WAV и голоса человека. Если вы настроите осциллограф на отображение относительно небольшого количества длин волн за раз (например, 20), пользователь сможет быстро увидеть эффект повышения или понижения высоты звука своего голоса.
У меня есть небольшой образец приложения на C#, который я написал около 2 лет назад и который делает что-то вроде этого, только он отображает спектрограф, созданный БПФ, вместо осциллографа (разница в основном в том, что спектрограф показывает информацию в частотной области, а осциллограф показывает информацию во временной области). Это в реальном времени, так что вы можете говорить/петь/что угодно в микрофон и наблюдать за динамическим изменением спектрографа.
Я могу раскопать это и разместить код здесь, если хотите. Или, если вы хотите получить удовольствие от того, чтобы сделать все это самостоятельно, я могу опубликовать несколько ссылок на ресурсы кода, которые вам понадобятся.
person
MusiGenesis
schedule
03.03.2011