使用dsp.AudioRecorder停止用户提示音频录制?

时间:2015-05-27 21:17:59

标签: matlab audio signal-processing

我是matlab的新手。我正在使用以下代码在wav文件中记录micro的声音:

AR = dsp.AudioRecorder('OutputNumOverrunSamples',true);
audiofile='test.wav';
nbsec=10;
AFW = dsp.AudioFileWriter(audiofile,'FileFormat', 'WAV');
disp('Recording starts now');
tic;
while toc < nbsec,
   [audioIn,nOverrun] = step(AR);
   [x, indexMax] = max(abs(fft(audioIn(:,1)-mean(audioIn(:,1)))));
  step(AFW,audioIn);
  if nOverrun > 0
    fprintf('Audio recorder queue was overrun by %d samples\n',nOverrun);
  end
end
release(AR);
release(AFW);
disp('Recording done!');

它有效,但问题是我不知道我应该记录多长时间而不是使用时间限制(使用tic toc),我希望能够通过按下完成录制'f'按钮。但我不知道如何在matlab中实现它。

非常感谢!

1 个答案:

答案 0 :(得分:1)

您可以使用Audio Recorder Object。这有一种方法,可以在不阻止控件的情况下进在运行时,您可以检查按键并在检测到时使用stop方法