Grupo: 5MM5
Fecha: 10-Noviembre-2017
Objetivos
Reconocer las vocales de distintas personas a partir de la aplicacin del
conocimiento de los formantes.
Introduccin
La determinacin de los lmites tiene tambin un objetivo clave:
establecer las reglas que sirvan para el reconocimiento automtico de las
vocales. Es decir, nos proponemos confeccionar un programa computacional
que reconozca vocales espaolas. A partir de una pronunciacin de unas
palabras. Luego las digitalizaremos. Lo cual nos permitir tener unos ficheros
con los datos fisicos con que se han pronunciado. El programa ha de leer los
datos de los dos primeros forman tes; obtener una media de las tramas centrales
de la vocal para conseguir un valor nico de formante, ya que la digitalizacin
proporciona un valor. Tomaremos los valores centrales para despreciar las
transiciones. A continuacin, se aplicarn unas regias condicionales que
establecen una relacin del dato obtenido con el lmite de un dominio. Si entra
dentro del dominio, entonces tendr el rasgo correspondiente a ese dominio, de
lo contrario tendr el rasgo opuesto.
Por ejemplo, si los rasgos son [alto] y [bajo] y el lmite lo situamos en 375 Hz
para las voces masculinas, todo valor fisico de FI que se site por
debajo de ese lmite permitir que al segmento correspondiente se le asigne el
rasgo [+ alto], de lo contrario ser [-alto]. Luego, se hace lo
mismo con el F2 hasta tener el haz de rasgos que caracteriza a un segmento
determinado. Se compara el haz obtenido con los que hay en la base de datos
y habr reconocido en el momento que encuentre en la base de datos un
conjunto de rasgos igual al obtenido por los regias. Este procedimiento
demuestra la importancia de encontrar esos lmites.
Graficar
Obtencin de transformada Graficar seal
Graficar seal
la seal de de Fourier de normalizada
obtenida
audio la seal obtenida
obenida
fs=44100; bits=16;
my_audio = audiorecorder(fs, bits, 1);
input('ENTER para comenzar:')
disp('Grabando..')
recordblocking(my_audio, 1);
disp('Fin de grabacin.');
%play(my_audio);
myRecording = getaudiodata(my_audio);
subplot(2,2,1),plot(myRecording);
title('Grabacion obtenida')
xlabel('Tiempo')
ylabel('Amplitud')
L=length(myRecording);
NFFT =2^nextpow2(L); % Next power of 2 from length of y
Y = fft(myRecording,NFFT)/L;
f = fs/2*linspace(0,1,NFFT/2+1);
Y1=2*abs(Y(1:NFFT/2+1));
Y1=Y1(1:2974);
f1=f(1:2974);
normal = normalizar(myRecording);
norm = abs(fft (normal));
norm = norm.*conj (norm);
zoo = norm (1:100);
spect1 = zoo/sqrt(sum (abs (zoo).^2));
subplot(2,2,4),plot(spect1)
subs1=2*abs(Y(1:NFFT/2+1));
subplot(2,2,2),plot(f,subs1)
subplot(2,2,3),plot(f1,Y1);
title('Espectro de amplitud y(t)')
xlabel('Frecuencia (Hz)')
ylabel('|Y(f)|')
element = max(subs1);
disp('Maximo de grafica 2')
disp(element)
pos=find(Y1==max(Y1));
frec=f1(pos)
end
Conclusiones:
Garibay Jimnez Brian: para realizar un programa que reconozca palabras, se debe
tener en consideracin que las voces tienen caractersticas muy particulares del
parlante y que se debe analizar y establecer un rango en el que siempre se obtenga
la vocal deseada, pues las vocales tienen similitudes entre ellas y existir ocasiones
en que la vocal y la frecuencia sean o mal obtenidas por calidad de micrfono o
propio procesamiento de la computadora.
Bibliografa: