Войти
ПрограммированиеФорумЗвук

Захват звука с микрофона с помощью DirectX 11

#0
13:01, 25 мар. 2013

Ребят, есть ли возможность с помощью директа звук захватывать с микрофона и получать цифры амплитуды для анализа спектра?


#1
13:20, 25 мар. 2013

tbb
Для этого есть Media Foundation.

#2
16:20, 25 мар. 2013

tbb
по моему у DirectShow есть фильтры позволяющие это сделать.
можно проще при помощи waveIn* функций. вроде в документации написано что DirectShow работает через них

#3
17:32, 25 мар. 2013

Дело в том, что мне надо получать именно данные амплитуды, а не просто воспроизводить файл или перенаправлять как в DirectShow звук от источника через фильтры на выход...

#4
17:40, 25 мар. 2013

tbb
Получаешь через Media Foundation, DirectShow или FFMpeg доступ к карте захваченных данных, и преобразованием Фурье получаешь амплитуды с фазами заодно.

#5
19:03, 25 мар. 2013

Jimnik
> Получаешь через Media Foundation, DirectShow или FFMpeg доступ к карте захваченных данных, и преобразованием Фурье получаешь амплитуды с фазами заодно.
Это получается А(f), я так понимаю (где f - частота).
А если, к примеру, мне надо А(t) (где t - время), как топикстартеру?

А, ему действительно спектр нужен. Ну а если нужны отсчёты, чтобы самому их обрабатывать?

#6
19:17, 25 мар. 2013

Sasha7b9
> Ну а если нужны отсчёты, чтобы самому их обрабатывать?
ну так все девайзы именно их и возвращают
допустим если нужна секунда звука с частотой 8кгц и разрядностью 16 бит, подаешь 16кб буфер (8000Гц * 2 байта на семпл) и ждешь пока микрофон его заполнит

#7
19:41, 25 мар. 2013

Pushkoff
Ясно, спасибо. Просто уточнил.

ПрограммированиеФорумЗвук

Тема в архиве.