How to change wavrecord to audiorecorder ?
10 views (last 30 days)
Show older comments
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?
Accepted Answer
Geoff Hayes
on 3 Dec 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);
2 Comments
More Answers (1)
Dian
on 21 Sep 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);
0 Comments
See Also
Categories
Find more on Audio and Video Data in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!