Sonogramas con R, y murciélagos

Los sonogramas son representaciones gráficas de – por ejemplo – la frecuencia de las llamadas emitidas por los animales. La distribución de esas frecuencias en el tiempo puede en algunos casos servir para identificar el bicho, o la actividad que desempeña al emitir el sonido.

Hace ya una temporada descubrí en la práctica la posibilidad de asomarse a los murciélagos a través de esos sonogramas, que pueden ayudar a “ver” las criaturas de la noche. Esencialmente, uno sale con un cacharro especializado en hacer audibles los ultrasonidos de los murciélagos, intentando que los vecinos no le asignen la etiqueta de sospechoso. Una ventaja posible es que esos cacharros se pueden parecer a cierta distancia al transistor “de toda la vida”, ese con el que el paisano sigue el fúbol. Las interpretaciones sobre esa apariencia las dejo a cada uno.

Algunos de esos cacharros permiten además grabar esos ultrasonidos (la mayoría de las llamadas de los murciélagos están por encima de las frecuencias audibles para nosotros, más allá de los 20 kHz). Y ahí es cuando el tecnófilo puede realmente dar rienda suelta a su manía de encender el portátil cuando el resto del ocio falla. Lo que sigue a continuación es un procedimiento para pintar un sonograma decente (si bien opinable) con software libre, a partir de una grabación registrada en un archivo *.wav. El procedimiento serviría también para sonidos en nuestro rango audible, como los de las aves.

He usado Audacity para eliminar el ruido de la grabación, y para quedarme solo con el fragmento interesante (que puedes descargar en formato *.wav, mejor con “botón derecho, descargar enlace”). Posteriormente he usado R desde la interfaz proporcionada por RStudio* para “escribir” esta figura:

El código a continuación produce en R exactamente esa figura, a partir del archivo wav descargado anteriormente:

# instala las librerías necesarias
install.packages("seewave", dependencies = T)
install.packages("tuneR", dependencies = T)

# carga dichas librerías
library(tuneR) # lee archivos *.wav
library(seewave) # pinta sonogramas

# carga archivo de sonido en memoria, 
# asumiendo que está en el directorio de trabajo
datos <- readWave("20170508_235618_275khz_edit_1.wav")

# pinta el sonograma, limitando frecuencia y tiempo
spectro(datos, ovlp=80, wl=1024, flim=c(30, 70), 
        tlim = c(1.48, 1.68), 
        collevels=seq(-25,0,0.5), 
        tlab = "Tiempo (s)",
        flab = "Frecuencia (kHz)", scalelab = "dB",
        cexlab = 0.90,
        scalecexlab = 0.90)

Y volviendo de los métodos a la historia natural, el sonograma muestra 5 pulsos de ecolocalización – o sónar – de murciélagos, de menor intensidad en azules a mayor en naranjas.

Muestra que en esa fracción de segundo pasaron delante de los observadores dos especies de murciélagos, a juzgar por las formas distintas de sus pulsos de sónar. El que suscribe, con la imprescindible ayuda en su día del sabio que guiaba, diría que el sonograma muestra a Myotis daubentonii y a Pipistrellus pipistrellus, el primero mucho más especializado que el segundo en hábitats de caza.

Y muestra además que probablemente pasaron 3 individuos, un Myotis y 2 Pipistrellus, dada la mínima separación de las dos llamadas de esta especie sobre la marca de 1.6 s. En ambos casos los emitían pulsos de frecuencia modulada, en todos los casos con amplitudes de banda superiores a los 15 khz. Un patrón alternativo serían frecuencias cuasi-constantes, con amplitudes de banda muy estrechas.

*RStudio no es imprescindible, solo más agradable.