在matlab中录制时处理音频样本

时间:2014-11-21 16:40:44

标签: matlab audio real-time

我正在做一个音频处理项目。我必须录制麦克风的音频,并且必须实时处理这些样本。在录制过程中,我必须处理样本并播放。我正在使用下面的代码来录制我的音频。

% 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 个答案:

答案 0 :(得分:0)

实时处理通常意味着您接收数据流,处理数据并将其传递给输出,而不会在流中出现任何间隙或停顿。正如您可能已经发现的那样,上面的代码不会发生这种情况。

不幸的是,标准Matlab并不支持信号的实时处理,但如果您查看DSP Systems Toolbox插件,您将找到必要的功能以及一些示例。

另一种选择是通过MEX接口实现实时处理。