/ / stop Запис звуку на користувацькому записі за допомогою dsp.AudioRecorder? - MATLAB, аудіо, обробка сигналів

зупинити запис звуку за допомогою користувацького запиту за допомогою dsp.AudioRecorder? - 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 samplesn",nOverrun);
end
end
release(AR);
release(AFW);
disp("Recording done!");

Це працює, але проблема в тому, що я не знаюПродовжуйте, як довго треба записувати, а не використовувати часові обмеження (з TIC TOC), я хотів би, щоб можна було закінчити запис, натиснувши кнопку "f". Але я не знаю, як реалізувати це в MATLAB.

Дуже дякую!

Відповіді:

1 для відповіді № 1

Ви можете скористатись Аудіо записуючий об'єкт. Це метод, який записує, не блокуючи елементи керування. Поки працює, ви можете перевірити наявність клавіші та використовувати метод зупинки, коли воно виявлено