2014-11-21 69 views
0

記錄我做音頻處理的項目。我必須錄製來自麥克風的音頻,並且必須實時處理這些樣本。在錄製過程中,我必須處理樣品並播放它們。我正在使用下面的代碼來錄製我的音頻。處理音頻樣本,同時在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

回答

0

實時處理通常意味着你接收的數據的流塊,處理它,並把它傳遞到輸出,而無需任何間隙或流中停止。正如您可能已經發現的那樣,上面的代碼並非如此。

不幸的是標準的Matlab的不不支持的信號實時處理,但如果你看看到DSP系統工具箱插件,你會找到需要的功能,具有一定的舉例。

另一種選擇是通過MEX接口實現實時處理代替。