如何在 MATLAB 中收听麦克风?
Posted
技术标签:
【中文标题】如何在 MATLAB 中收听麦克风?【英文标题】:How to listen to the microphone in MATLAB? 【发布时间】:2016-10-03 07:54:42 【问题描述】:我想知道是否有办法用 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.
欢迎并接受任何类型的编程语言或外部软件推荐来做到这一点:)
谢谢,
【问题讨论】:
您阅读文档了吗? mathworks.com/help/matlab/import_export/… 和 mathworks.com/help/matlab/ref/audiorecorder.html 【参考方案1】:首先,确保进入麦克风设置(输入设置)并选中“收听此麦克风”复选框。您应该从扬声器听到麦克风输入,因为以下代码将记录计算机的声音输出。由于我们正在输出您的麦克风,因此您将录制麦克风。
然后你可以将声音输出录制为:
ai=analoginput('winsound');
addchannel(ai,1);
start(ai);
data=getdata(ai);
你可以听
sound(data)
【讨论】:
谢谢,但我在使用analoginput()
时仍然遇到同样的错误。另外我不明白如何定期(在线)处理数据。这看起来像离线,即它会录制一段时间的音频然后停止。我想要的是,记录音频并每隔N
(~5) 秒分析一次。有可能吗?以上是关于如何在 MATLAB 中收听麦克风?的主要内容,如果未能解决你的问题,请参考以下文章