我正在同时录制时处理语音信号。更具体地说:
重复记录每0.1秒的语音。
以FIFO意义处理每个语音包(例如,调用它
函数process
)。处理数据包需要大约1秒
讲话长度0.1s。
以下是执行的代码:
r = audiorecorder(fs, 16,1);
data{k} = getaudiodata(r);
process(data{k});
问题是我在process
执行期间错过了1s语音的样本。我希望不停地执行录制,并在每0.1秒语音录制中调用函数process
。我尝试使用为audiorecorder.
提供的函数回调问题是TimerFcn
,即在录制期间重复执行的函数,在录制期间无法检索样本。
有什么建议吗?
答案 0 :(得分:0)
尝试使用getaudiodata()
根据时间的不同,必须有一些安排。 (它应该根据时间分配一些值,因为plot()
绘制时间轴上的声音信号)
根据该排列迭代矩阵并调用process()函数。
通过迭代,您可以一次录制声音,然后每隔0.1秒处理。