Sunteți pe pagina 1din 6

RANDOM SIGNAL ANALYSIS

ECE 673
PROJECT REPORT

REAL WORLD EXAMPLE-SPEECH SYNTHESIS


By
DEEPAK ABHISHEK

UCID: fd77@njit.edu

ID: 31350061

SIDDHARTH

UCID: sn363@njit.edu

ID: 31340426

Under Professor
Dr.ALI ABDI
Dept of Electrical and Computer Engineering

MATLAB CODE:

close all;
clear all;
disp(start speaking)
start speaking
recordblocking(recObj, 5); % records voice for 5 seconds
disp(end of recording);
end of recording
myrec=getaudiodata(recObj);
audiowrite(proverb.wav,myrec,8000); % saves a wave file
[spch_sample, fs, nbits, opts] = wavread(proverb.wav);
sample_len=length(spch_sample);
time=0: (1/(sample_len-1)):1;
plot(time,spch_sample); % plots recorded wave
grid on
xlabel(time(s));
ylabel(amplitude x(t));
title(WAVEFORM FOR THE SOUND UTTERED);

startTIME=0.91;
xseg=wave(startTIME*fs:startTIME*fs+159);
n=0:159; % length of the sample
figure
stem(n,xseg) % plots a 20msec segment of the waveform
grid on
xlabel(n);
ylabel(x(n));
title(sample of Data from Audio);

N=length(xseg); % length of xseg


Nfft=1024; % fft length for fourier transforms
freq=[0:Nfft-1]/Nfft-0.5; % PSD frequency points to be plotted
P_per=(1/N)*abs(fftshift(fft(xseg,Nfft))).^2; % to calculate periodogram
p=12; % dimension of autocorrelation matrix
for k=1:p+1 % to estimate ACS for k=0,1,.,p
rX(k,1)=(1/N)*sum(xseg(1:N-k+1).*xseg(k:N));
end
r=rX(2:p+1); % fill in right-hnad-side vector
for i=1:p % fill in autocorrelation matrix
for j=1:p
R(i,j)=rX(abs(i-j)+1);
end
end

a=inv(R)*r; % to solve linear equations


varu=rX(1)-a*r; % find excitation noise variance
den=abs(fftshift(fft([1;-a]Nfft))).^2; % compute denominator of AR PSD
P_AR=varu./den; % compute AR PSD
figure
plot(freq,10*log10(P_per))
hold on
plot(freq,10*log10(P_AR))
grid on
xlabel(f);
ylabel(10log10Px(f));
title(PERIODOGRAM AND AR PSD MODEL);
R(i,j)=rX(abs(i-j)+1);
end
end
a=inv(R)*r; % to solve linear equations
varu=rX(1)-a*r; % find excitation noise variance
den=abs(fftshift(fft([1;-a]Nfft))).^2; % compute denominator of AR PSD
P_AR=varu./den; % compute AR PSD
figure
plot(freq,10*log10(P_per))
hold on
plot(freq,10*log10(P_AR))
grid on
xlabel(f);
ylabel(10log10Px(f));
title(PERIODOGRAM AND AR PSD MODEL);

S-ar putea să vă placă și