
PROGRAMA DE RECONOCER VOZ EN MATLAB
Publicado por Daniel (1 intervención) el 14/03/2014 00:02:07
DISCULPEN. PERO TENGO MUCHOS PROBLEMAS PARA PODER REALIZAR UN PROGRAMA EN MATLAB QUE ME AYUDE A RECONOCER PALABRAS DESDE UNA BASE DE DATOS PREVIAMENTE REALIZADA. TODO ESTO ES MEDIANTE CORRELACION ENTRE LA SEÑAL QUE GRABA EL MICROFONO Y LOS AUDIOS QUE YA TENGO GUARDADOS. ESTE ES MI AVANZE. PERO NO PUEDO HACER QUE COMPARE MI GRABACION CON LOS AUDIOS GUARDADOS.
clear all
clc
global myrec
close all
%voces
%[vozp1,fs]=audioread('nortepp.mp3');
%[vozp2,fs]=audioread('surpp.mp3');
%[vozp3,fs]=audioread('estepp.mp3');
%vozp4=audioread('oestepp.mp3');
%[vozd5,fs]=audioread('norteda.mp3');
%vozd6=audioread('surda.mp3');
%vozd7=audioread('esteda.mp3');
%vozd8=audioread('oesteda.mp3');
disp('Presiona cualquier tecla para comenzar a grabar:')
pause;
% Grabar voz por 5 seg.
recobj = audiorecorder(44100, 16, 2);
disp('Start speaking.')
recordblocking(recobj, 2);
disp('End of Recording.');
% Reproducir
play(recobj);
% Store data in double-precision array.
myrec = getaudiodata(recobj);
x=size(myrec)
% grafica de la onda
subplot(2,2,1)
plot(myrec);
title('Senal de entrada')
pause;
%_________________________________________
[vozp1,fs]=audioread('nortepp.mp3');
[vozd1,fs]=audioread('norteda.mp3');
[vozp2,fs]=audioread('surpp.mp3');
[vozd2,fs]=audioread('surda.mp3');
[vozp3,fs]=audioread('estepp.mp3');
[vozd3,fs]=audioread('esteda.mp3');
[vozp4,fs]=audioread('oestepp.mp3');
[vozd4,fs]=audioread('oesteda.mp3');
[vozlf1,fs]=audioread('oesteda.mp3');
[vozlf2,fs]=audioread('oesteda.mp3');
[vozlf3,fs]=audioread('oesteda.mp3');
[vozlf4,fs]=audioread('oesteda.mp3');
%_____conversion a monoaural
norpp=0.5*vozp1(:,1)+0.5*vozp1(:,2);
norda=0.5*vozd1(:,1)+0.5*vozd1(:,2);
myrec=0.5*myrec(:,1)+0.5*myrec(:,2);
surpp=0.5*vozp2(:,1)+0.5*vozp2(:,2);
surda=0.5*vozd2(:,1)+0.5*vozd2(:,2);
estepp=0.5*vozp3(:,1)+0.5*vozp3(:,2);
esteda=0.5*vozd3(:,1)+0.5*vozd3(:,2);
oestepp=0.5*vozp4(:,1)+0.5*vozp4(:,2);
oesteda=0.5*vozd4(:,1)+0.5*vozd4(:,2);
%____________ igualar el tama?o
m=min([length(norpp), length(norda), length(myrec), length(surpp), length(surda), length(estepp), length(esteda), length(oestepp), length(oesteda)]);
%sum=norpp(1:m)+norda(1:m);
%sound(myrec,fs)
%size(norda(1:m))
%size(norpp(1:m))
%size(myrec(1:m))
%size(surpp(1:m))
%pause;
%________________Correlacion
cornorte1=xcorr(myrec(1:m),norpp(1:m),'coeff');
cornorte2=xcorr(myrec(1:m),norda(1:m),'coeff');
corsur1=xcorr(myrec(1:m),surpp(1:m), 'coeff');
corsurd2=xcorr(myrec(1:m),surda(1:m), 'coeff');
coreste1=xcorr(myrec(1:m),estepp(1:m), 'coeff');
coreste2=xcorr(myrec(1:m),esteda(1:m), 'coeff');
coroeste1=xcorr(myrec(1:m),oestepp(1:m), 'coeff');
coroeste2=xcorr(myrec(1:m),oesteda(1:m), 'coeff');
M=length(norpp(1:m))
N=length(myrec(1:m))
clear all
clc
global myrec
close all
%voces
%[vozp1,fs]=audioread('nortepp.mp3');
%[vozp2,fs]=audioread('surpp.mp3');
%[vozp3,fs]=audioread('estepp.mp3');
%vozp4=audioread('oestepp.mp3');
%[vozd5,fs]=audioread('norteda.mp3');
%vozd6=audioread('surda.mp3');
%vozd7=audioread('esteda.mp3');
%vozd8=audioread('oesteda.mp3');
disp('Presiona cualquier tecla para comenzar a grabar:')
pause;
% Grabar voz por 5 seg.
recobj = audiorecorder(44100, 16, 2);
disp('Start speaking.')
recordblocking(recobj, 2);
disp('End of Recording.');
% Reproducir
play(recobj);
% Store data in double-precision array.
myrec = getaudiodata(recobj);
x=size(myrec)
% grafica de la onda
subplot(2,2,1)
plot(myrec);
title('Senal de entrada')
pause;
%_________________________________________
[vozp1,fs]=audioread('nortepp.mp3');
[vozd1,fs]=audioread('norteda.mp3');
[vozp2,fs]=audioread('surpp.mp3');
[vozd2,fs]=audioread('surda.mp3');
[vozp3,fs]=audioread('estepp.mp3');
[vozd3,fs]=audioread('esteda.mp3');
[vozp4,fs]=audioread('oestepp.mp3');
[vozd4,fs]=audioread('oesteda.mp3');
[vozlf1,fs]=audioread('oesteda.mp3');
[vozlf2,fs]=audioread('oesteda.mp3');
[vozlf3,fs]=audioread('oesteda.mp3');
[vozlf4,fs]=audioread('oesteda.mp3');
%_____conversion a monoaural
norpp=0.5*vozp1(:,1)+0.5*vozp1(:,2);
norda=0.5*vozd1(:,1)+0.5*vozd1(:,2);
myrec=0.5*myrec(:,1)+0.5*myrec(:,2);
surpp=0.5*vozp2(:,1)+0.5*vozp2(:,2);
surda=0.5*vozd2(:,1)+0.5*vozd2(:,2);
estepp=0.5*vozp3(:,1)+0.5*vozp3(:,2);
esteda=0.5*vozd3(:,1)+0.5*vozd3(:,2);
oestepp=0.5*vozp4(:,1)+0.5*vozp4(:,2);
oesteda=0.5*vozd4(:,1)+0.5*vozd4(:,2);
%____________ igualar el tama?o
m=min([length(norpp), length(norda), length(myrec), length(surpp), length(surda), length(estepp), length(esteda), length(oestepp), length(oesteda)]);
%sum=norpp(1:m)+norda(1:m);
%sound(myrec,fs)
%size(norda(1:m))
%size(norpp(1:m))
%size(myrec(1:m))
%size(surpp(1:m))
%pause;
%________________Correlacion
cornorte1=xcorr(myrec(1:m),norpp(1:m),'coeff');
cornorte2=xcorr(myrec(1:m),norda(1:m),'coeff');
corsur1=xcorr(myrec(1:m),surpp(1:m), 'coeff');
corsurd2=xcorr(myrec(1:m),surda(1:m), 'coeff');
coreste1=xcorr(myrec(1:m),estepp(1:m), 'coeff');
coreste2=xcorr(myrec(1:m),esteda(1:m), 'coeff');
coroeste1=xcorr(myrec(1:m),oestepp(1:m), 'coeff');
coroeste2=xcorr(myrec(1:m),oesteda(1:m), 'coeff');
M=length(norpp(1:m))
N=length(myrec(1:m))
Valora esta pregunta


0