„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 № 1Moż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