处理音频样本,同时在MATLAB
问题描述:
记录我做音频处理的项目。我必须录制来自麦克风的音频,并且必须实时处理这些样本。在录制过程中,我必须处理样品并播放它们。我正在使用下面的代码来录制我的音频。处理音频样本,同时在MATLAB
% 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');
可以实时处理吗?有人可以给我一个想法吗?
答
实时处理通常意味着你接收的数据的流块,处理它,并把它传递到输出,而无需任何间隙或流中停止。正如您可能已经发现的那样,上面的代码并非如此。
不幸的是标准的Matlab的不不支持的信号实时处理,但如果你看看到DSP系统工具箱插件,你会找到需要的功能,具有一定的举例。
另一种选择是通过MEX接口实现实时处理代替。
该代码记录所有音频作为一个单一的段,然后处理所记录的音频。你想达到什么目的?从你的问题描述来看,你的代码正在做你想做的事情。 – rayryeng 2014-11-21 17:29:17