Está en la página 1de 3

CURSO: PROCESAMIENTO DE SEÑALES

RECONOCIMIENTO DE VOZ

PRACTICA DIRIGIDA

1. Capture su voz.

2. Crear su diccionario con el paso anterior. Guarde las palabra: arriba, abajo, derecha e
izquierda.

3. Utilizar la función “WAVREAD” para leer el archivo WAV y pasar toda la información a una
variable cualquiera.

clear all; %Elimina todas las variables


clc; %Limpia la pantalla

disp('grabando\n');

Fs=44100;
r = audiorecorder(Fs, 16, 1);
record(r,2);
pause(2);
stop(r);
p = play(r);
mys = getaudiodata(r, 'int16');
wavwrite(mys,Fs,16,'voz.wav');

%Control del audio grabado

ING. JOSE ANDRES SANDOVAL VALENCIA


CURSO: PROCESAMIENTO DE SEÑALES

voz=wavread('voz.wav');

%normalizando
maximo=max(abs(voz));
l=length(voz);
sonido4=zeros(1,l);
for i=1:1:l
sonido4(i)=voz(i)/maximo;
end

%Diccionario
derecha=wavread('derecha.wav');
izquierda=wavread('izquierda.wav');
arriba=wavread('arriba.wav');
abajo=wavread('abajo.wav');

%Normalizando "derecha"
maximo=max(abs(derecha));
n1=length(derecha);
sonido=zeros(1,n1);
for i=1:1:n1
sonido(i)=derecha(i)/maximo;
end

%Normalizando "izquierda"
maximo=max(abs(izquierda));
n2=length(izquierda);
sonido1=zeros(1,n2);
for i=1:1:n2
sonido1(i)=izquierda(i)/maximo;
end

%Normalizando "abajo"
maximo=max(abs(abajo));
n3=length(abajo);
sonido2=zeros(1,n3);
for i=1:1:n3
sonido2(i)=abajo(i)/maximo;
end

%Normalizando "arriba"
maximo=max(abs(arriba));
n4=length(arriba);
sonido3=zeros(1,n4);
for i=1:1:n4
sonido3(i)=arriba(i)/maximo;
end

%Aplicando transformada rápida de Fourier


tr=abs(fft(sonido));
tr1=abs(fft(sonido1));
tr2=abs(fft(sonido2));
tr3=abs(fft(sonido3));

ING. JOSE ANDRES SANDOVAL VALENCIA


CURSO: PROCESAMIENTO DE SEÑALES

%Proceso de Reconocimiento

clc

%Transformando
tr4=abs(fft(sonido4));

%calculando el error
error(1)=mean(abs(tr-tr4));
error(2)=mean(abs(tr1-tr4));
error(3)=mean(abs(tr2-tr4));
error(4)=mean(abs(tr3-tr4));
errorminimo=min(error);

%Comparacion de errores
if errorminimo==error(1)
disp('Derecha');
end
if errorminimo==error(2)
disp('Izquierda');
end
if errorminimo==error(3)
disp('Arriba');
end
if errorminimo==error(4)
disp('Abajo');
end

ING. JOSE ANDRES SANDOVAL VALENCIA

También podría gustarte