Matlab - PROGRAMA DE RECONOCER VOZ EN MATLAB

 
Vista:
sin imagen de perfil

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))
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

PROGRAMA DE RECONOCER VOZ EN MATLAB

Publicado por sebastian (1 intervención) el 09/09/2014 03:02:16
Hola Daniel quisiera saber si ya resolviste el problema, ya que estoy desarrollando una aplicación parecida y no he podido trabajar la correlación.
Agradezco tu respuesta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

PROGRAMA DE RECONOCER VOZ EN MATLAB

Publicado por Diego Camelo (1 intervención) el 09/11/2014 23:37:06
intenten usar la fft para poder hacer la xcorr.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar