在MATLAB中不停止录制的情况下处理语音

时间:2012-05-11 15:19:23

标签: multithreading matlab audio-recording

我正在同时录制时处理语音信号。更具体地说:

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

  2. 以FIFO意义处理每个语音包(例如,调用它 函数process)。处理数据包需要大约1秒 讲话长度0.1s。

  3. 以下是执行的代码:

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

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

    有什么建议吗?

1 个答案:

答案 0 :(得分:0)

尝试使用getaudiodata()

在矩阵中查找内容

根据时间的不同,必须有一些安排。 (它应该根据时间分配一些值,因为plot()绘制时间轴上的声音信号)

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

通过迭代,您可以一次录制声音,然后每隔0.1秒处理