Practica 4 Reconocimiento de Voz Matlab
-
Upload
miguel-angel-lopez-gonzalez -
Category
Documents
-
view
3.917 -
download
0
Transcript of 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
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;
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
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
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