Anda di halaman 1dari 5

INSTITUTO POLITCNICO NACIONAL

UNIDAD PROFESIONAL INTERDISCIPLINARIA DE


BIOTECNOLOGA

Procesamiento Digital de Bioseales

PROYECTO: reconocimiento de vocales por formantes.

Profesores: Pliego Snchez Jos Ernesto


Darinel Venegas Anaya
Mora Martnez Rodrigo

Integrantes: De la O Copado Christopher Israel


Garibay Jimnez Brian
Urquiza Orozco Jocelyn

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.

Realizamos el ejercicio del anlisis de las frecuencias de


cada vocal con distintos timbres de voz.
I A E O U
FREC. maximo Min FREC. FREC. FREC. FREC.
1 294.7357 0.0034 693.1 0.018 353.95 535 294.7357
2 295.4086 0.0063 713.2 0.0129 400 368 0.0302 295.4086
3 364.0457 0.0130 648.6 0.0229 393 402 0.0492 364.0457
4 301.4648 0.0092 738.1 0.0291 395 392 0.0413 301.4648
5 368.0832 0.0169 708.5 0.0171 380 425 0.019 368.0832
6 359.3353 0.0047 674.2 0.0330 378 550 0.018 359.3353
7 370.7748 0.0146 660.1 0.012 388 473 0.0329 370.7748
8 305.5023 0.0126 708.5 0.01 382 445 0.0271 305.5023
9 327.7084 0.0228 706.5 0.0285 367 353 0.0256 327.7084
10 311.5585 0.0219 693.1 0.0266 372 574 0.0168 311.5585
11 307.5211 0.0303 717.3 0.02 358 409 0.0275 307.5211
12 355.2979 0.182 1.33 694.4 0.0304 381 471 0.0289 355.2979
13 374.8123 0.0207 1.22 642.6 0.0122 375 352 0.05 374.8123
14 367.4103 0.0185 4.63 691.0 0.017 393.6 380 0.04 367.4103
15 312.9044 0.0108 686.3 0.023 401 366 0.05 312.9044

Diagrama de bloques para la construccin del algoritmo:

Graficar
Obtencin de transformada Graficar seal
Graficar seal
la seal de de Fourier de normalizada
obtenida
audio la seal obtenida
obenida

Realizar comparacion de seal


Mostrar la vocal que entre en el
con la frecuencia especifica de
rango de frecuencias y amplitud.
cada vocal

Cdigo empleado para el reconocimiento de vocales.


clc; clear all, close all

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)

disp('Maximo y minimo de grafica 3')


alto1=max(Y1); bajo1=min(Y1);
disp(alto1)
disp(bajo1)

pos=find(Y1==max(Y1));
frec=f1(pos)

if frec >290 && frec <330


disp('LETRA I')
elseif frec >360 && frec <395
disp('LETRA E')
elseif frec >640 && frec <740
disp('LETRA A ')
elseif frec >360 & frec <580 & element> 0.02
disp('LETRA O ')
else

elseif frec >700 & frec <1000 & element> 0.02


disp('LETRA u ')

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:

EN TORNO A LAS VOCALES DEL ESPAOL: ANLISIS y RECONOCIMIENTO


EuGENIO MARTINEZ CELDRAN
Laboratorio de Fonetica, Facultad de FUologia Uniuerstat de Barcelona

Anda mungkin juga menyukai