Sunteți pe pagina 1din 5

Instituto Tecnolgico de Ciudad Guzmn.

Materia: Procesamiento de Seales Digitales Trabajo: Practica 4 Integrantes del Equipo: Jorge Radilla Lpez Miguel ngel Lpez Gonzlez Manuel Ochoa Alcaraz

Objetivo
El objetivo de esta practica es usando el matlab desarrollar una aplicacin de reconocimiento 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; Grab=1; %Esta es la Frecuencia de muestreo %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 el microfono %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 seal 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); x=fft(y,N); %'N' Es el numero de muestras de la seal capturada %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;

%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 seal 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

% PRACTICA 4 PARTE 3

load data; Fs=11025; grab=1; ts=1/Fs;

%se lee el archivo data donde se almacenoron los patrones %es la Frecuencia de muestreo %Tiempo de grabacion %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:5 subplot (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

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 seal 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); 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 %vector donde se almacena la distancia

[dmin,index]=min(d); mensajes=['a','e','i','o','u']; sprintf ('la letra que pronunciaste :') mensajes(index)

Conclusin
El uso de la voz para el uso de una computadora es muy importante para aquellas personas 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 ms fcil el desempeo de la computadora

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