如何在MATLAB中听麦克风?

时间:2016-10-03 07:54:43

标签: matlab audio audio-recording microphone

我想知道是否有办法用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.

任何类型的编程语言或外部软件建议都是受欢迎的,并且可以接受:)

谢谢,

1 个答案:

答案 0 :(得分:0)

首先,请务必转到麦克风设置(输入设置)并检查&#34;听这个麦克风&#34;复选框。您应该从扬声器听到麦克风输入,因为以下代码将记录计算机的声音输出。由于我们正在输出您的麦克风,您将录制麦克风。

然后您可以将声音输出录制为:

ai=analoginput('winsound');
addchannel(ai,1);
start(ai);
data=getdata(ai);

您可以通过

收听
sound(data)