1

我目前正在同时录制时处理语音信号。进一步来说:

  1. 重复记录每 0.1 秒的语音。

  2. 在 FIFO 意义上处理每个语音包(例如,调用此函数process)。处理一个长度为 0.1s 的语音包大约需要 1s。

以下是执行的代码:

r = audiorecorder(fs, 16,1);
data{k} = getaudiodata(r);
process(data{k});

问题是我在process执行过程中错过了 1s 语音的样本。我希望录音不间断地执行,并process在每 0.1 秒的语音录音中调用该函数。我尝试使用提供的函数回调audiorecorder.问题是TimerFcn录制过程中要重复执行的函数,在录制过程中无法检索样本。

有什么建议吗?

4

1 回答 1

0

尝试在你使用的矩阵中找到一些东西getaudiodata()

那必须根据时间进行一些安排。(它应该根据时间有一些值分布,因为plot()在时间轴上绘制声音信号)

根据该排列遍历矩阵并调用 process() 函数。

这样,您可以一次录制声音,然后通过迭代每 0.1 秒一个一个地处理。

于 2018-06-09T15:03:45.233 回答