Azzera filtri
Azzera filtri

How to change wavrecord to audiorecorder ?

10 visualizzazioni (ultimi 30 giorni)
Poison
Poison il 3 Dic 2014
Risposto: Dian il 21 Set 2023
clc;
clear all;
Fs=8000; %sample rateXY
for k=1:25
clear y1 y2 y3;
display('Record cry');
pause();
x=wavrecord(Fs,Fs); %record sound
t=0.04; %threshold
j=1;
for i=1:8000
if(abs(x(i))>t) %signal>threshold
y1(j)=x(i);
j=j+1;
end
end
y2=y1/(max(abs(y1))); %y2:max absolute value of y1
y3=[y2,zeros(1,3120-length(y2))];
y=filter([1-0.9],1,y3'); %high pass filter to boost the high frequency components
%frame blocking
blocklen=240; %30ms block
overlap=80;
block(1,:)=y(1:240);
for i=1:18
block(i+1,:)=y(i*160:(i*160+blocklen-1));
end
w=hamming(blocklen);
for i=1:19
a=xcorr((block(i,:).*w'),12);
for j=1:12
auto(j,:)=fliplr(a(j+1:j+12));
end
z=fliplr(a(1:12));
alpha=pinv(auto)*z';
lpc(:,i)=alpha;
end
wavplay(x,Fs);
X(k,:)=reshape(lpc,1,228);
Y(k,:)=input('Enter no.(1-Eairh, 2-Eh, 3-Heh, 4-Neh, 5-Owh)');
end
save('lpcdata.mat','X','Y');
Hi, can someone help me. I'm newbie in Matlab. How to change the usage of wavrecord to audiorecorder in the codes above?

Risposta accettata

Geoff Hayes
Geoff Hayes il 3 Dic 2014
Poison - just replace your line of code
x=wavrecord(Fs,Fs);
with the following
% create the recorder
recorder=audiorecorder(Fs,8,1);
% record one second of data
record(recorder,1);
% get the samples
x = getaudiodata(recorder);
And you should be able to continue as before. See audio recorder for details.

Più risposte (1)

Dian
Dian il 21 Set 2023
clear all;
Fs = 8000;
recObj = audiorecorder(Fs, 16, 1);
disp('Start speaking.');
recordblocking(recObj, 5);
disp( ' End of recording, ');
y = getaudiodata(rec0bj);
audiowrite( ' aiueo.wav', y, Fs);

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by