practica 4 reconocimiento de voz matlab

5
  Instituto Tecnológico de Ciudad Guzmán. Materia: Procesamiento de Señales Digitales Trabajo: Practica 4 Integrantes del Equipo: Jorge Radilla López Miguel Ángel López González Manuel Ochoa Alcaraz

Upload: miguel-angel-lopez-gonzalez

Post on 10-Jul-2015

3.916 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Practica 4 Reconocimiento de Voz Matlab

5/11/2018 Practica 4 Reconocimiento de Voz Matlab - slidepdf.com

http://slidepdf.com/reader/full/practica-4-reconocimiento-de-voz-matlab 1/5

 Instituto Tecnológico de Ciudad Guzmán.

Materia: Procesamiento de SeñalesDigitales

Trabajo: Practica 4

Integrantes del Equipo:

Jorge Radilla LópezMiguel Ángel López González

Manuel Ochoa Alcaraz

Page 2: Practica 4 Reconocimiento de Voz Matlab

5/11/2018 Practica 4 Reconocimiento de Voz Matlab - slidepdf.com

http://slidepdf.com/reader/full/practica-4-reconocimiento-de-voz-matlab 2/5

Objetivo

El objetivo de esta practica es usando el matlab desarrollar una aplicación dereconocimiento de voz, para poder así hacer manipular a largo plazo la computadora con

el uso de la voz humana

Desarrollo

%Primera parte practica 4 

fs=11025; %Esta es la Frecuencia de muestreo Grab=1; %En esta variable donde se indica el tiempo de gravacion 

%wavrecord es una instruccion la cual grava lo que se introduce mediante el %microfono y=wavrecord(Grab*fs,fs,'double');wavplay(y,fs); %funcion usada para reproducir algun sonido wav wavwrite(y,fs,'a'); %Grava en un archivo wav en este caso lo que se gravo mediante elmicrofono 

%en el ultimo parametro se indica el nombre del archivo %que se creara 

ts=1/fs; %es el Tiempo de muestreo t=0:ts:Grab-ts; %genera el tiempo con el cual se graficara la señal en este caso 

%la gravacion 

%se grafica la el sonido subplot(2,1,1) %sirve para que en este caso en la misma ventana aparescan 

%dos graficas una debajo de la otra o lo ocntrario plot(t,y);grid;

N=length(y); %'N' Es el numero de muestras de la señal capturada x=fft(y,N); %Se aplica la formula de la Transformada de Fourier 

%Para pasarla de coordenadas polar a coordenadas cartesianas %se multiplica con su conjugado x=x.*conj(x)/N;f=(0:N-1)*fs/N;

Page 3: Practica 4 Reconocimiento de Voz Matlab

5/11/2018 Practica 4 Reconocimiento de Voz Matlab - slidepdf.com

http://slidepdf.com/reader/full/practica-4-reconocimiento-de-voz-matlab 3/5

 %Se grafica la funcion compuesta pero ya despues de aplicarle la %transformada de Fourier, la grafica se encuentra en el dominio de la %frecuencia subplot(2,1,2)

plot(f(1:N/2),x(1:N/2))grid

%Se lee el archivo wav para despues graficarlo s=wavread('a',fs);%Grafica el archivo leido se grafica el cual esta en el dominio del tiempo figure(2);plot(s);

%Se aplica la tranformada de fourier al archivo leido (la vocal)la cual se %de estar en dominio del tiempo pasa a dominio de la frecuencia N=length(s);x=fft(s,N);%convierte de coordenadas polares a coordenadas cartesianas x=x.*conj(x)/N;f=(0:N-1)*fs/N;%se grafica la tercera señal que es el archivo leido en dominio de la %frecuencia figure(3);plot(f(1:N/2),x(1:N/2))

%parte 2 practica 4 

%una vez que se an almacenado las 5 vocales %esta parte se lee cada vocal y se almacena en una variable a=wavread('a.wav');e=wavread('e.wav');i=wavread('i.wav');

o=wavread('o.wav');u=wavread('u.wav');

%se agrupan las vocales en patrones datos=[a e i o u];

save data datos;%se crea un archivo con el nombre data 

Page 4: Practica 4 Reconocimiento de Voz Matlab

5/11/2018 Practica 4 Reconocimiento de Voz Matlab - slidepdf.com

http://slidepdf.com/reader/full/practica-4-reconocimiento-de-voz-matlab 4/5

 % PRACTICA 4 PARTE 3 

load data; %se lee el archivo data donde se almacenoron los patrones 

Fs=11025; %es la Frecuencia de muestreo grab=1; %Tiempo de grabacion ts=1/Fs; %es el Tiempo de muestreo 

t=0:ts:1-ts; %se generan los datos del tiempo en cual se graficara 

% graficacion en el dominio del tiempo 

for cont=1:5subplot (5,2,2*cont-1)plot(t,datos (:,cont))grid

end 

[Reng,Column]=size (datos);fou=zeros (Reng,Column);

% graficacion en el dominio de la frecuencia %con este ciclo el proceso se realizara 5 veces la cantidad de vocales for cont=1:5

y=datos (:,cont);%Se aplica la tranformada de fourier al archivo leido (la vocal)la cual se %de estar en dominio del tiempo pasa a dominio de la frecuencia N=length(y);x=fft(y,N);%convierte de coordenadas polares a coordenadas cartesianas x=x.*conj(x)/N;f=(0:N-1)*Fs/N;fou(:,cont)=x;%se grafica en dominio de la frecuencia 

subplot (5,2,2*cont)plot(f,fou (:,cont))grid

end 

% Lectura de una nuva grabacion 

Page 5: Practica 4 Reconocimiento de Voz Matlab

5/11/2018 Practica 4 Reconocimiento de Voz Matlab - slidepdf.com

http://slidepdf.com/reader/full/practica-4-reconocimiento-de-voz-matlab 5/5

detectar=wavrecord (Fs*Grab,Fs,'double');wavplay(detectar,Fs);

%obtencion de frecuencias de la grabacion %s repite lo de la practica 3 para obtener la señal en dominio de la 

%frecuencia y se grafica N=length (detectar);x=fft(detectar,N);x=x.*conj(x)/N;f=(0:N-1)*Fs/N;

% comparacion de la lectura nueva con los patrones 

d=zeros (1,5); %vector donde se almacena la distancia 

for cont=1:5

%d(1,cont)=sqrt(sum((fou(:,cont)-x).^2)) %distancia euclides d(1,cont)=sqrt(sum((datos(:,cont)-x).^2));%distancia euclides 

end 

[dmin,index]=min(d);

mensajes=['a','e','i','o','u'];

sprintf ('la letra que pronunciaste :')mensajes(index)

Conclusión

El uso de la voz para el uso de una computadora es muy importante para aquellaspersonas que carecen de sus facultades visuales o alguna extremidad que les impida el

uso de las computadoras y usando la voz en vez de las manos seria más fácil el desempeñode la computadora