我是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/