处理音频样本,同时在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'); 

可以实时处理吗?有人可以给我一个想法吗?

+0

该代码记录所有音频作为一个单一的段,然后处理所记录的音频。你想达到什么目的?从你的问题描述来看,你的代码正在做你想做的事情。 – rayryeng 2014-11-21 17:29:17

实时处理通常意味着你接收的数据的流块,处理它,并把它传递到输出,而无需任何间隙或流中停止。正如您可能已经发现的那样,上面的代码并非如此。

不幸的是标准的Matlab的不不支持的信号实时处理,但如果你看看到DSP系统工具箱插件,你会找到需要的功能,具有一定的举例。

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