【问题标题】:stop Audio recording on user prompt using dsp.AudioRecorder?使用 dsp.AudioRecorder 在用户提示下停止录音?
【发布时间】:2015-05-27 21:17:59
【问题描述】:

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

它可以工作,但问题是我事先不知道我应该录制多长时间,所以我希望能够通过按'f' 按钮。但我不知道如何在 matlab 中实现。

非常感谢!

【问题讨论】:

    标签: matlab audio signal-processing


    【解决方案1】:

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

    【讨论】:

    • 这是一个很好的解决方案,但录音机对象仅适用于 1 或 2 个通道。您是否知道与 dsp.AudioRecorder 一起用于 2 个以上通道的解决方案?
    • 我无法尝试,因为我没有超过 2 个通道的输入开发,但 matlab 记录器对象似乎没有检查通道
    猜你喜欢
    • 2013-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多