Вы находитесь на странице: 1из 20

PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ

CIENCIAS E INGENIERÍA

IDENTIFICACIÓN DE AVES POR MEDIO DE SUS SONIDOS


USANDO ANÁLISIS ESPECTRAL
INFORME FINAL

Integrantes:
 Rosario Orna
 Elsa Jiménez Jáuregui
 Juan Frisancho Jibaja

Códigos:
 20112087
 20100138
 20100227

Horario: 0791

22 de Mayo del 2014


IDENTIFICACIÓN DE AVES POR MEDIO DE SUS SONIDOS USANDO
ANÁLISIS ESPECTRAL

1. Descripción del problema:


 En el plano de la ornitología siempre se ha buscado reconocer a las distintas
especies de aves en el ambiente que les corresponde, evitando causar ningún
tipo de influencia en el ecosistema. Muchos amantes prefieren reconocerlos
ellos mismos, sin embargo, cuando se requiere realizar un estudio detallado es
necesario y muy útil hacer uso de la tecnología, a pesar de que las aves poseen
varios tipo de sonidos o voces entre los que destacan el canto y el reclamo, cuyo
uso depende de la situación y de la necesidad de cada ave.
 Principalmente el canto está relacionado con las interacciones personales del
ave, como para el apareamiento, o para expresar algún tipo de percepción
individual. En cambio, el reclamo está ligado principalmente a los propósitos
colectivos, como alertar al grupo o mantenerlo unido en la migración.
 La necesidad de la tecnología principalmente está relacionado con las voces de
reclamo en la migración, pues para poder realizar un estudio metódico existen
muchos obstáculos y es necesario el reconocimiento automático de éstas.
 El rastreo sostenido y aproximación del radio de la ubicación es realmente un
reto pues el entorno en el que se encuentran las aves es sumamente complicado,
además, cabe recalcar que las aves realizan los reclamos en grupo, factor que
dificulta el proceso, además, es necesario para un estudio completo, recolectar y
registrar el sonido de cada ave, a fin de estudiarlo a fondo.

2. Objetivo:
 Comparación entre el aparato fonador de las aves y el de los humanos.
 Identificación del sonido de cada ave a analizar en un contexto práctico.
(Migraciones)

3. Marco Teórico:
 Aparato fonador humano.-

Está compuesto por 3 grupos de órganos principales:

o Órganos de respiración:
 Pulmones
 Bronquios
 Tráquea
o Órganos de fonación:
 Laringe
 Cuerdas vocales
o Órganos de articulación

Para que sea un sonido, el aire que viene de los pulmones provoca una
vibración, llegando a la laringe y ahí es donde se produce el sonido. Las cuerdas
vocales varían según su tensión, elasticidad, altura, anchura, longitud y grosor,
de tal manera que se producen diferentes efectos sonoros.

 Aparato fonador de aves.-

El aparato fonador comienza en la laringe, pero a comparación del aparato


fonador humano está no provee de cuerdas vocales y cumple el papel de evitar
que la comida pase por la tráquea.

La tráquea es un tubo formado por anillos cartilaginosos unidos por un tejido


membranoso, que en el canto puede ensancharse por estiramiento del cuello,
haciendo que su tono sea más bajo.

En la parte inferior de la tráquea se encuentra la siringe, donde exactamente la


tráquea se bifurca para formar los bronquios.

Todo aparato funciona por el aire emitido desde los pulmones. Estos son tan
pequeños que el ave no podría mantener trinos mayores a 30 segundos. Sin
embargo, es posible, por la existencia de unos sacos membranosos, llamados
sacos aéreos que proporcionan aire residual de reserva.
 Espectrogramas de las señales del sonido del humano y de las aves.-

 Importancia del estudio.-

o La migración de las aves y su reconocimiento automático siempre ha


sido un reto en la ornitología.
o Rastreo sostenido y aproximación del radio de la ubicación en un
entorno complicado.
o Describir y delimitar moldes de las distintas aves, además de reconocer
las diferencias y semejanzas.

4. Procedimiento a Utilizar:

 Base de datos: http://www.xeno-canto.org/


Sitio web que tiene una base de datos con sonidos de más de 10,000 especies de
aves.

 Programas para el análisis: Matlab y Audacity (edición de sonidos).


o Matlab: Software para analizar los sonidos y realizar determinadas acciones
en ellos.
o Audacity: Software para edición de grabaciones - Modificación del tiempo
de duración del audio

 Técnicas o algoritmos usados en el análisis de sonidos de aves:

 Mel-FrequencyCepstrumCoefficients (MFCC):
o Representa el espectro de potencia a corto plazo de un sonido.
o Basado en una transformación lineal de cosenos del logaritmo del
espectro de potencia en la escala no lineal de Mel (de frecuencias).
o La escala de Mel: escala perceptual de tonos establecida por oyentes que
está a una misma distancia unos de otros
o Fórmula para convertir Hertz a Mel:

o Para poder determinar los MFCCs, primero se debe hallar la FFT de la


señal de audio.
o Los MFCCs son usados frecuentemente en las técnicas de
reconocimiento de voz, por lo que sirven para el análisis de los sonidos
de las aves.
o Los MFCCs son muy sensibles al ruido, por lo que podrían haber
problemas al momento de identificar el sonido de un ave con ruido.
o Cuando se hallan los MFCCs del ave, no se deben considerar ni el
primer ni el segundo coeficiente, pues estos representan la potencia
promedio del espectro y el ancho que abarca el espectro,
respectivamente.

 DynamicTypeWarping (DTW)
o Es una técnica surgida de la problemática inherente a diferentes
realizaciones de una misma locución.
o Se observa una variabilidad interna en la duración de los grupos fónicos
que la forman, de modo que no existe una sincronización temporal
(alineamiento temporal). Además utiliza el principio de Bellman.

o Será necesario alinear temporalmente la locución para proceder a


realizar una medida de distancia entre patrones cuyo nuevo eje temporal
haya homogeneizado las variaciones iniciales
o Fruto del proceso de alineamiento, surge lo que se conoce como camino
de alineamiento.
o Las figuras siguientes muestran de forma simplificada (izquierda) y de
forma real (derecha) dos posibles caminos de alineamiento entre
realizaciones.

 Spectral Ensemble Average Voice Prints (SEAV)


o Método simple y económico a diferencia de sistemas avanzados ya
existentes.
o Se aplica un enventanado de Hamming cada 20 ms con un traslape de 10
ms que se define así:
o h(n) = 0.54 - 0.46*Cos(2*pi*n/M); tal que 0 <=n<=M-1
o Seguidamente se aplica FFT a la respuesta con N que debe ser mayor o
igual al producto del largo del enventanado y la frecuencia de muestreo y
k, va desde 0 a N-1.

o Dependiendo del número de ventanas obtenidas por la señal (j) se calcula


el promedio

o El vector resultante (Xseav (0), Xseav(1), … , Xseav(N/2-1)) de largo


N/2 corresponde con el SEAV de un ave.
o El N recomendado es 1024.
o Cada vector SEAV, servirá para la posterior implementación del registro
de voz de las aves y de la base de datos para el reconocimiento
automático de aves.

 Se utilizará esta última técnica por su facilidad y al implementarse es el que


más conviene, ya que tiene menor costo.

 Aves a analizar:
o Tucán pechiblanco
o Hormiguero de Goldi
o Jacamará del Purus,
o Halcón Montes Cabecigris.

5. Desarrollo en MatLab:

function y=seav(x,Fs)
%tramas de 10 ms y 20 ms
trama20ms=Fs*0.02;
trama10ms=Fs*0.01;
longx=length(x);
SEAV=[0];
cont=0;
for i=1:trama10ms:longx-trama20ms %Solapamiento de tramas
seg=x(i:i+(trama20ms-1));
w=hamming(length(seg)); %Ventana de Hamming para evitar dispersión
[~,n]=size(x);
if (n==2)
w=w';
end
seg=seg.*w;
%N=2^nextpow2(length(seg));
N=1024;
SEG=fft(seg,N);
SEAV = SEAV + SEG(1:N/2); %Cálulo del vector SEAV
cont=cont+1;
end
y=SEAV/cont; %divide entre el numero de cuadros

-----------------------------------------------------------------------------------------------------

close all;
clear all;
clc;

%Base de datos y el ingreso del sonido desconocido


%plantilla_Goeldis_Antbird_1.wav
%plantilla_Goeldis_Antbird_2.wav
%plantilla_Goeldis_Antbird_3.wav
%plantilla_Goeldis_Antbird_4.wav
%plantilla_Halcon_Montes_Cabecigris_2.wav
%plantilla_Halcon_Montes_Cabecigris_3.wav
%plantilla_Halcon_Montes_Cabecigris_4.wav

%plantilla_Purus_Jacamar_1.wav
%plantilla_Purus_Jacamar_2.wav

%plantilla_White_Throated_Toucan_1.wav
%plantilla_White_Throated_Toucan_2.wav
%plantilla_White_Throated_Toucan_3.wav

figure(10)
[xd,fsd]=wavread('plantilla_White_Throated_Toucan_2.wav');
[xd,fsd]=cambio_fs(xd,fsd);
seavd=seav(xd,fsd);
plot(abs(seavd));

%También se aplica el SEAV, cuando es ingresado un sonido


%plantilla_ave_desconocida_4(Tucan).wav
%plantilla_ave_desconocida_3(1).wav
figure(1)

[x0,fs0]=wavread('plantilla_ave_desconocida_1(goeldis antbird).wav');
[x0,fs0]=cambio_fs(x0,fs0);
seav0=seav(x0,fs0);

plot(abs(seav0));
title ('Plantilla Goeldis antbird');
%sound(x0,fs0)

figure(2)
[x1,fs1]=wavread('plantilla_Goeldis_Antbird_1.wav');
[x1,fs1]=cambio_fs(x1,fs1);
seav1=seav(x1,fs1);
subplot(3,2,1);
plot(abs(seav1));
title ('Plantilla Goeldis antbird 2');
%sound(x1,fs1)

[x2,fs2]=wavread('plantilla_Goeldis_Antbird_2.wav');
[x2,fs2]=cambio_fs(x2,fs2)
seav2=seav(x2,fs2)
subplot(3,2,2);
plot(abs(seav2));
title ('Plantilla Goeldis antbird 3');

[x3,fs3]=wavread('plantilla_Goeldis_Antbird_3.wav')
[x3,fs3]=cambio_fs(x3,fs3)
seav3=seav(x3,fs3)
subplot(3,2,3);
plot(abs(seav3));
title ('Plantilla Goeldis antbird 3');
%sound(x3,fs3)

[x4,fs4]=wavread('plantilla_Goeldis_Antbird_4.wav')
[x4,fs4]=cambio_fs(x4,fs4)
seav4=seav(x4,fs4)
subplot(3,2,4);
plot(abs(seav4));
title ('Plantilla Goeldis antbird 4');

[x5,fs5]=wavread('plantilla_Goeldis_Antbird_5.wav')
[x5,fs5]=cambio_fs(x5,fs5)
seav5=seav(x5,fs5)
subplot(3,2,5);
plot(abs(seav5));
title ('Plantilla Goeldis antbird 5');

[x6,fs6]=wavread('plantilla_Goeldis_Antbird_6.wav')
[x6,fs6]=cambio_fs(x6,fs6)
seav6=seav(x6,fs6)
subplot(3,2,6);
plot(abs(seav6));
title ('Plantilla Goeldis antbird 6');

figure(3)

[x7,fs7]=wavread('plantilla_Halcon_Montes_Cabecigris_1.wav')
[x7,fs7]=cambio_fs(x7,fs7)
seav7=seav(x7,fs7)
subplot(2,2,1);
plot(abs(seav7));
title ('Plantilla Halcon Montes Cabecigris 1');
%sound(x7,fs7)

[x8,fs8]=wavread('plantilla_Halcon_Montes_Cabecigris_2.wav')
[x8,fs8]=cambio_fs(x8,fs8)
seav8=seav(x8,fs8)
subplot(2,2,2);
plot(abs(seav8));
title ('Plantilla Halcon Montes Cabecigris 2');

[x9,fs9]=wavread('plantilla_Halcon_Montes_Cabecigris_3.wav')
[x9,fs9]=cambio_fs(x9,fs9)
seav9=seav(x9,fs9)
subplot(2,2,3);
plot(abs(seav9));
title ('Plantilla Halcon Montes Cabecigris 3');

[x10,fs10]=wavread('plantilla_Halcon_Montes_Cabecigris_4.wav')
[x10,fs10]=cambio_fs(x10,fs10)
seav10=seav(x10,fs10)
subplot(2,2,4);
plot(abs(seav10));
title ('Plantilla Halcon Montes Cabecigris 4');

figure(4)
[x11,fs11]=wavread('plantilla_Purus_Jacamar_1.wav')
[x11,fs11]=cambio_fs(x11,fs11)
seav11=seav(x11,fs11)
plot(abs(seav11));
title ('Plantilla Purus Jacamar 1');

figure(5)
[x12,fs12]=wavread('plantilla_Purus_Jacamar_2.wav')
[x12,fs12]=cambio_fs(x12,fs12)
seav12=seav(x12,fs12)
subplot(2,2,1);
plot(abs(seav12));
title ('Plantilla Purus Jacamar 2');

[x13,fs13]=wavread('plantilla_Purus_Jacamar_3.wav')
[x13,fs13]=cambio_fs(x13,fs13)
seav13=seav(x13,fs13)
subplot(2,2,2);
plot(abs(seav13));
title ('Plantilla Purus Jacamar 3');

[x14,fs14]=wavread('plantilla_Purus_Jacamar_4.wav')
[x14,fs14]=cambio_fs(x14,fs14)
seav14=seav(x14,fs14)
subplot(2,2,3);
plot(abs(seav14));
title ('Plantilla Purus Jacamar 4');

[x15,fs15]=wavread('plantilla_Purus_Jacamar_5.wav')
[x15,fs15]=cambio_fs(x15,fs15)
seav15=seav(x15,fs15)
subplot(2,2,4);
plot(abs(seav15));
title ('Plantilla Purus Jacamar 5');

figure(6)
[x16,fs16]=wavread('plantilla_ave_desconocida_2(White throated toucan).wav')
[x16,fs16]=cambio_fs(x16,fs16)
seav16=seav(x16,fs16)
plot(abs(seav16));
title ('Plantilla Tucan pechiblanco 1');

figure(7)
[x17,fs17]=wavread('plantilla_White_Throated_Toucan_1.wav')
[x17,fs17]=cambio_fs(x17,fs17)
seav17=seav(x17,fs17)
subplot(2,2,1);
plot(abs(seav17));
title ('Plantilla Tucan pechiblanco 2');

[x18,fs18]=wavread('plantilla_White_Throated_Toucan_2.wav')
[x18,fs18]=cambio_fs(x18,fs18)
seav18=seav(x18,fs18)
subplot(2,2,2);
plot(abs(seav18));
title ('Plantilla Tucan pechiblanco 3');

[x19,fs19]=wavread('plantilla_White_Throated_Toucan_3.wav')
[x19,fs19]=cambio_fs(x19,fs19)
seav19=seav(x19,fs19)
subplot(2,2,3);
plot(abs(seav19));
title ('Plantilla Tucan pechiblanco 4');

[x20,fs20]=wavread('plantilla_White_Throated_Toucan_4.wav')
[x20,fs20]=cambio_fs(x20,fs20)
seav20=seav(x20,fs20)
subplot(2,2,4);
plot(abs(seav20));
title ('Plantilla Tucan pechiblanco 5');

%Proceso de comparación, para determinar que correlación tiene el valor más


%altos en la posición "0", que indica cuan similar es la señal a la señal
%comparada.

%En un principio se pensó en hacer una correlación, pero se vio no tenía sentido:
%longitud=length(abscorr1);
%indice=floor(longitud/2)+1;
%abscorr1(indice);

[Y1,I1]=max(seav0(1:100))
[Y1,I2]=max(seav0(101:200))
[Y1,I3]=max(seav0(201:300))

[Y1,I1]=max(seav1(1:100))
[Y1,I2]=max(seav1(101:200))
[Y1,I3]=max(seav1(201:300))

[Y1,I1]=max(seav2(1:100))
[Y1,I2]=max(seav2(101:200))
[Y1,I3]=max(seav2(201:300))

[Y1,I2]=max(seav3(101:200))

[Y1,I2]=max(seav4(101:200))

[Y1,I2]=max(seav5(101:200))

[Y1,I2]=max(seav7(101:200))
% Observamos que en el rango de frecuencias entre 101 y 200, el máximo esta
% entre 20 y 30. Es decir 120 y 130. Es el único pico de esta ave

[Y1,I3]=max(seav8(1:100))
[Y1,I3]=max(seav8(101:200))

[Y1,I4]=max(seav9(1:100))
[Y1,I4]=max(seav9(101:200))

[Y1,I5]=max(seav10(1:100))
[Y1,I5]=max(seav10(101:200))

% Observamos que en el rango de frecuencias entre 1 y 100, el máximo esta


% entre 70 y 80. Además en el rango de frecuencias entre 101 y 200 está en el rango
de 8 y 15.
% Son los dos picos de este ave.

[Y1,I6]=max(seav11(101:200))
[Y1,I7]=max(seav11(301:400))

[Y1,I6]=max(seav12(101:200))
[Y1,I7]=max(seav12(301:400))

[Y1,I6]=max(seav13(101:200))
[Y1,I7]=max(seav13(301:400))

[Y1,I6]=max(seav14(101:200))
[Y1,I7]=max(seav14(301:400))

[Y1,I6]=max(seav15(101:200))
[Y1,I7]=max(seav15(301:400))

% De este ave es mucho más complejo su análisis, pues su espectro es


% variable sin embargo podemos afirmar que dentro del rango 101 y 200 esta
% el máximo en el rango de 79 y 95. Y el rango entre 301 y 400 está el
% máximo está en el rango de 60 y 75.

[Y1,I6]=max(seav16(1:100))
[Y1,I7]=max(seav16(201:300))

[Y1,I6]=max(seav17(1:100))
[Y1,I7]=max(seav17(201:300))

[Y1,I6]=max(seav18(1:100))
[Y1,I7]=max(seav18(201:300))
[Y1,I6]=max(seav19(1:100))
[Y1,I7]=max(seav19(201:300))

% De este su análisis es más sencillo, el máximo valor entre el rango de 1 y 100


% está en el rango de 90 y 100.
% Y en el rango de 201 y 300 está en el rango de 5 y 15.

% Nuestra señal a analizar

[Y1,ID1]=max(seavd(1:100))

[Y2,ID2]=max(seavd(101:200))
[Y3,ID3]=max(seavd(201:300))
[Y4,ID4]=max(seavd(301:400))

if(15<ID2 && ID2<30)


figure(101)
plot(abs(seavd)),title('Es el Goeldis antbird')

sound(x1,fs1);
end

if(70<ID1 && ID1<80 && 8<ID2 && ID2<15)


figure(102)
plot(abs(seavd)),title('Es el Halcon Montes Cabecigris')
sound(x9,fs9)
end

if(79<ID2 && ID2<95 && 45<ID4 && ID4<75)


figure(103)
plot(abs(seavd)),title('Es el Jacamará del Purus')
sound(x13,fs13)
end

if(90<ID1 && ID1<100 && 5<ID3 && ID3<20)


figure(104)
plot(abs(seavd)),title('Es el White Throated Toucan')
sound(x19,fs19)
end
6. Resultados:

Imágenes obtenidas del Matlab:


En Matlab se obtendrá las gráficas de frecuencia del sonido de cada una de las aves
(cuatro muestras como mínimo de cada una de ellas). Para corroborar que estos
sonidos les pertenecen a dichas aves, se analizará cada sonido uno por uno en un
rango de frecuencias determinado, que es el rango donde debe encontrarse el pico
de imagen de cada sonido. Si el pico se encuentra en este rango de frecuencias, se
corroborará que el sonido sí pertenece a dicha ave.

Sonido 1 Sonido 2 Sonido 3 Sonido 4 Sonido 5


Hormiguero de SI SI SI SI -
Goeldi
Halcón Montes NO SI SI SI -
Cabecigris
Jacamará del SI SI NO NO NO
Purus
Tucán SI SI SI NO NO
Pechiblanco

7. Conclusiones:
A partir del trabajo y tras un análisis del reconocimiento del sonido de las aves,
hemos confirmado la gran efectividad del SEAV, como método muy sencillo del
reconocimiento espectral y de la identidad propia de las aves a partir de su espectro,
logro que significa una herramienta de mucha utilidad para el rastreo automático de
las aves y de su respectivo estudio.
Además, podemos concluir que la efectividad aproximada de este método es de
75%. En este estudio usamos cuatro aves para analizar, concentrando nuestra
investigación y trabajo en aves de nuestro país. Asimismo, cabe recalcar que es
posible optimizar nuestro reconocimiento a partir de otras herramientas, sin
embargo, la herramienta que usamos es la más eficiente en relación a costo,
versatilidad y efectividad.
También, observamos que el espectro proporcionado por el SEAV en algunas aves
presenta picos más complicados y con rangos de precisión mucho más inestables y
complejos (Jacamará del Purus) que hasta tienen 3 o 4 picos. Por otro lado, otras
aves tienen picos mucho más definidos, y su análisis y reconocimiento a través de
esta técnica es mucho más precisa (Hormiguero de Goldi).
En síntesis, el reconocimiento automático de las aves es un proceso, que gracias a la
intervención de menos órganos en la modulación del sonido en las aves, es posible
reutilizar las herramientas en el reconocimiento de voz humana con una precisión
muy alta. Asimismo, a pesar de la gran variedad de aves, es posible utilizar un
espectro proporcionado por el SEAV, analizar cualitativamente los picos y realizar
plantillas y reconocer efectivamente a las aves.
8. Bibliografía:

 http://es.wikipedia.org/wiki/Aparato_fonador
 http://www.mascotamigas.com/aparato_fonador.htm
 http://www.xeno-canto.org/browse.php?species_nr=&query=columbidae&dir=
0&order=cnt&pg=58
 https://es.wikipedia.org/wiki/Vocalizaci%C3%B3n_de_las_aves
 https://es.wikipedia.org/wiki/Siringe
 http://es.wikipedia.org/wiki/Ramphastos_tucanus
 http://www.vivelanaturaleza.com/naturalista/EstudioAves.php
 http://www.eurasip.org/proceedings/eusipco/eusipco2006/papers/1568980494.p
df
 http://lib.tkk.fi/Dipl/2004/urn007935.pdf
 http://www.xeno-canto.org/98315

Вам также может понравиться