Аудио библиотеки для цифровой обработки сигналов в C#
Моя проблема заключается в следующем:
Я занимаюсь разработкой достаточно небольшого приложения (которое должно быть способно расти в будущем, но на данный момент будет достаточно ограниченной функциональности), которое получает аудио (16-битное моно при 44,1 кГц) и выполняет преобразования Фурье и фильтрацию данных. Мой опыт во всех областях, которые, как вы можете себе представить, ограничен, но в последнее время я довольно тщательно его изучал и имею некоторое понимание. Мое финансирование ограничено, и я не могу использовать какие-либо библиотеки, которые находятся под лицензией GPL или подобными лицензиями (мне нужно иметь возможность распространять это приложение). Что касается обработки сигналов, я остановился на библиотеках MathNet, и похоже, что он может обрабатывать большую часть обработки (и я напишу необходимые фильтры).
Реальная проблема - найти звуковую библиотеку для использования - я надеялся на что-то в C#, и, хотя казалось, что DirectSound был лучшим вариантом, я неохотно использую его, поскольку Microsoft практически отказалась от него (компания, которой я работаю по воле случая) в ближайшем будущем я буду модернизировать свою экипировку; я просто хочу увеличить продолжительность жизни приложения. Я использую XAudio2? Мне нужно иметь возможность записывать необработанные данные PCM с устройства USB и обрабатывать их (+ записывать их в файлы.wav), а также считывать данные прямо из файлов.wav.
Любая помощь приветствуется
3 ответа
Во-первых, я хочу сказать, что Microsoft не отказывается от DirectSound, это все еще поддерживаемая технология (Windows 7), и я не ожидаю, что она перестанет работать в будущем.
Тем не менее, есть более новые аудио API / SDK, которые являются более современными: Media Foundation может выполнять захват аудио, и есть множество отличных примеров, которые могут помочь вам в этом. Если вы ищете новейшую и лучшую версию или ищете аудио с аппаратным ускорением, вы можете попробовать и заставить все работать, используя WASAPI и WaveRT.
SDK Media Format больше не находится по адресу, указанному в первом сообщении. Пожалуйста, используйте этот вместо:
Никогда не легко предсказать, собирается ли Microsoft отказаться от продуктов, которые они в настоящее время продвигают. Что касается XAudio 2 против DirectSound, я бы определенно выбрал XAudio 2. Не только потому, что он предназначен для замены DS, но и потому, что API кажется более гибким.
Однако вы можете посмотреть, как NAudio выполняет их воспроизведение.
Вы смотрели на Windows Media Format 9.5 SDK. http://msdn.microsoft.com/en-us/windows/bb190309.aspx
Ссылки: http://www.codeproject.com/KB/audio-video/ManWMF.aspx