matlab - 停止使用dsp.AudioRecorder在用户提示下进行音频录制?

标签 matlab audio signal-processing

我是Matlab的新手。我正在使用以下代码在wav文件中录制来自微型的声音:

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!');

它可以工作,但是问题是我不知道应该录制多长时间,因此我希望能够通过按'f'来完成录制,而不是使用时间限制(带有tic toc)按钮。但是我不知道如何在matlab中实现这一点。

非常感谢!

最佳答案

您可以使用Audio Recorder Object。它具有一种在不阻止控件的情况下进行记录的方法。在此过程中,您可以检查按键并在检测到按键时使用stop方法

关于matlab - 停止使用dsp.AudioRecorder在用户提示下进行音频录制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30493317/

相关文章:

linux - 从 Matlab 启动应用程序

matlab - 在 MATLAB 中拆分数组

audio - 测量数字滤波器传递函数的最有效方法

ios - 无法在 iphone 上获得正确的频率值

ios - 循环不断收集附近接入点的 Wifi 强度

matlab - 将大向量中的每个元素分配给重复次数的有效方法

matlab - 使用 unwrap 函数展开

iphone - 比 AVAudioPlayer 更快的替代品?

javascript - 如何分块播放加载的声音?

audio - 如何从通过远程桌面访问的 PC 的音频输入进行录制?