在 matlab 中录制时处理音频样本
Posted
技术标签:
【中文标题】在 matlab 中录制时处理音频样本【英文标题】:processing audio samples while recording in matlab 【发布时间】:2014-11-21 16:40:44 【问题描述】:我正在做一个音频处理项目。我必须从麦克风录制音频,并且必须实时处理这些样本。在录制过程中,我必须处理样本并播放它们。我正在使用下面的代码来录制我的音频。
% Setting parameters
Fs = 44100;
nbits = 16;
dev_id = getfield(getfield(audiodevinfo, 'input'), 'ID');
% Creating the audiorecorder object
arec = audiorecorder(Fs, nbits, 2, dev_id);
display('Start speaking.');
recordblocking(arec, 15.0);
display('End of Recording.');
data = getaudiodata(arec);
display(data);
soundsc(data, Fs);
plot(data);
wavwrite(data,Fs,nbits,'changed.wav');
可以实时处理吗?有人可以给我一个想法吗?
【问题讨论】:
此代码将所有音频记录为一个片段,然后处理录制的音频。你想达到什么目的?从你的问题描述来看,你的代码正在做你想做的事情。 【参考方案1】:实时处理通常意味着您接收流式数据块,对其进行处理,然后将其传递到输出端,而不会在流中出现任何间隙或停止。您可能已经发现,上面的代码并非如此。
不幸的是,标准 Matlab 不支持信号的实时处理,但如果您查看 DSP Systems Toolbox 插件,您会发现必要的功能以及一些示例。
另一种选择是通过 MEX 接口实现实时处理。
【讨论】:
以上是关于在 matlab 中录制时处理音频样本的主要内容,如果未能解决你的问题,请参考以下文章