/ / stop Záznam zvuku na výzvu používateľa pomocou dsp.AudioRecorder? - matlab, audio, spracovanie signálov

stop Nahrávanie zvuku na výzvu používateľa pomocou dsp.AudioRecorder? - matlab, audio, spracovanie signálov

Ja som nový MATLAB.I am pomocou nasledujúceho kódu na záznam zvuku z mikro v súbore 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!");

Funguje to, ale problém je, že neviempostupujte tak, ako dlho by som mal nahrávať skôr ako s časovým obmedzením (s tic toc), rád by som mohol dokončiť nahrávanie stlačením tlačidla "f". Ale nemám potuchy, ako to realizovať v MATLABu.

Veľká vďaka!

odpovede:

1 pre odpoveď č. 1

Môžete použiť Objekt Audio Recorder, Toto má metódu, ktorá zaznamenáva bez zablokovania ovládacích prvkov. Počas tohto spustenia môžete skontrolovať, či ste stlačili kláves, a keď je detekovaný, použite metódu zastavenia