在 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 中录制时处理音频样本的主要内容,如果未能解决你的问题,请参考以下文章

使用 AVFoundation 在 iOS 上录制音频样本

在 Android 中录制音频时捕获时间戳

如何把matlab里的音频文件转换为wav格式

fft 在 matlab 中的音频文件样本上

怎么给录音降噪处理

MATLAB - 音高转换音频信号