Detector De Vocales Por Voz
La formante o frecuencia formante se define como el pico de resonancia en el espectro de un sonido; se trata de concentración de energía (amplitud de onda) que se da en unadeterminada frecuencia. Técnicamente los formantes son bandas de frecuencia donde se concentra la mayor parte de la energía sonora de un sonido. Los formantes permiten distinguir los sonidos del habla humana,sobre todo las vocales y otros sonidos. También sirven para los sistemas de reconocimiento de voz y las transposiciones de altura del audio digital. Esto es posible porque cada sonido del habla humanatiene una signatura característica de formantes, es decir, hace un reparto diferente de la energía sonora entre los diferentes formantes, lo cual permite clasificarlos o categorizarlos. El oídohumano puede hacer ese análisis de formantes de manera inconsciente, y es por eso que podemos distinguir los sonidos de nuestra lengua materna. Los rangos de los formantes en español son:
DesarrolloEmpezamos por grabar el audio de cada una de las vocales –por separado- en un archivo de aduio con formato wav, el código en MatLab para realizar lo descrito es el siguiente:
Fs=16000 seg=1;input('ENTER para grabar letra "a" '); y = wavrecord(seg*Fs, Fs); wavwrite(y,Fs,'a.wav');
Ya que hemos grabado el audio procedemos a leerlo con la siguiente instrucción :
[s Fs]=wavread('a.wav');
Estonos da dos parámetros, la frecuencia de muestreo en Hz -Fs- y el vector que contiene los datos obtenidos al leer el archivo de audio.
Es necesario adecuar el vector s para poder trabajar en sudominio de frecuencias. Para esto apicaremos la transformada rápida de Fourier FFT, para lo cual el vector tiene que tener una longitud que sea potencia de 2, así que realizamos un pequeño ajuste:pot=nextpow2(length(s)); l=2^pot; if length(s)~=l s(l)=0; else disp('error') end m=length(s);
Esto nos proporciona la longitud del vector s. Despues aplicamos la FFT y el resultado será guardado en el...
Regístrate para leer el documento completo.