我想知道是否有办法用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.
任何类型的编程语言或外部软件建议都是受欢迎的,并且可以接受:)
谢谢,
答案 0 :(得分:0)
首先,请务必转到麦克风设置(输入设置)并检查&#34;听这个麦克风&#34;复选框。您应该从扬声器听到麦克风输入,因为以下代码将记录计算机的声音输出。由于我们正在输出您的麦克风,您将录制麦克风。
然后您可以将声音输出录制为:
ai=analoginput('winsound');
addchannel(ai,1);
start(ai);
data=getdata(ai);
您可以通过
收听sound(data)