Интересно, есть ли способ захватить звук с микрофона с помощью MATLAB, просто обработать его (мне просто нужно несколько стандартных звуковых функций, я могу сделать это сам) и принять решение на основе этих функций. Наверное, единственной моей характеристикой будет амплитуда звука, и я хочу принять решение, исходя из этого. Все, что мне нужно, это способ записи живого звука, а все остальное я могу сделать сам.
Как можно записать звук в реальном времени (на лету или путем сохранения в виде небольших блоков и обработки с небольшой задержкой) с помощью MATLAB?
Я нашел этот code, но я получаю сообщение об ошибке:
Error using analoginput (line 46)
The DAQ Legacy Interface is not supported on this platform..
Любое решение, которое работает под 64-битной Windows 8?
Примечание
Я задал вопрос для MATLAB, но на данный момент я согласен с любым решением :) В качестве псевдокода я хочу следующее:
float threshold;
float max_duration;
while (!interrupted) && (timer() < max_duration)
a = record_audio() // or record_audio(5s)
b = analyze_audio(a)
if b.mean_amplitude > threshold
do(something);
end
end
Я не уверен в процессе записи (он параллельный или нет), но это не имеет значения. Некоторые живые данные могли быть упущены при анализе, для меня это приемлемо.
Редактировать
Спасибо за помощь. Как следует из документации, я запустил daq.getVendors()
и получил следующий результат:
ans =
Data acquisition vendor 'National Instruments':
ID: 'ni'
FullName: 'National Instruments'
% ..
Итак, я попробовал s = daq.createSession('ni')
и получил эту ошибку:
The vendor 'ni' is not known. Use 'daq.getVendors()' for a list of vendors.
Любые рекомендации по языку программирования или внешнему программному обеспечению для этого приветствуются и приемлемы :)
Спасибо,