/ / stop Nagrywanie dźwięku w monitie użytkownika za pomocą programu dsp.AudioRecorder? - matlab, audio, przetwarzanie sygnału

zatrzymać nagrywanie dźwięku na monitorze użytkownika za pomocą dsp.AudioRecorder? - Matlab, audio, przetwarzanie sygnału

„Jestem nowy w matlab. Używam następującego kodu do nagrywania dźwięku z micro na pliku 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!");

To działa, ale problem polega na tym, że nie wiemposuwaj się naprzód, jak długo powinienem nagrywać, zamiast używać ograniczenia czasowego (z tic toc), chciałbym móc zakończyć nagrywanie naciskając przycisk „f”. Ale nie mam pojęcia, jak zaimplementować to w matlab.

Wielkie dzięki!

Odpowiedzi:

1 dla odpowiedzi № 1

Możesz użyć Obiekt rejestratora audio. Ma to metodę, która rejestruje bez blokowania kontrolek. Podczas uruchamiania można sprawdzić naciśnięcie klawisza i użyć metody zatrzymania po wykryciu