Using local-max detector to detect tonal sounds

Lots of animals produce tonal calls. The acoustic characteristics of tonal sounds may help us to identify the species and behavior of calling animals. However, some animals like cetaceans, have a highly complex repertoire of tonal sounds. This elevates the difficulty of using automatic detection method in the passive acoustic monitoring.

In terms of this, I developed this program to help people use passive acoustic monitoring to study the animals’ tonal sounds. The purpose of this program is to decrease the labor work of detecting animals’ vocalizations by passive acoustic monitoring. The current program can detect multiple types of tonal sound without training or using sound template. The detection is based on the prominent of tonal appearance on the spectrogram.

The detection target of this program primary focus on “tonal sounds”, but it is also possible to detect “burst-pulses” and other “tonal noise” with strong tonal appearance. This program aims to work for everyone. It not only helps user to detect the occurrence of calls, but also provide information on their acoustic features so that user can use those information for further analysis.

The following figure is a demonstration of my algorithm.

whistle detector

The detection process include three main steps: 1. remove ambient noise, 2. extract tonal spectral peaks, and 3. noise filtering.

  1. Spectrograms of sound recordings are produced using fast Fourier transform (FFT) with the Hamming window. Ambient noise is removed by pre-whitening spectrograms. Spectrograms are further smoothed using a Gaussian kernel.
  2. Tonal sounds are detected by applying two thresholds (SNR and tonality). If the instantaneous frequency bandwidth of tonal sound is suitable, the peak frequency is extracted by finding the local maximum in the power spectrum.
  3. A noise filter is employed to exclude broadband noise and isolated narrowband noise. The tonal spectral peaks are claimed as adopted frequencies of animals’ tonal sound after noise filtering.

Detail of the local-max detector for tonal sound is available in the following publications:
Lin, Tzu-Hao, Chou, Lien-Siang, Akamatsu, Tomonari, Chan, Hsiang-Chih, Chen, Chi-Fang. (2013) An automatic detection algorithm for extracting the representative frequency of cetacean tonal sounds. Journal of the Acoustical Society America, 134: 2477-2485.

If you are interested, please feel free to contact me. This program is free of charge and we can cooperate together! Please also take a look at the operation manual of this program so that you can understand the system requirement and the possible application.

Operation manual of Local-max detector for tonal sounds


Tzu-Hao (Harry) Lin


[Statistics] How can you say they are different groups?

在生態領域中,我們經常會使用多變量分析來解釋一堆變數的變化趨勢。但是就像我們得到principle component analysis的eigen value & factor score之後,我們難道只能憑著主觀的判斷去說這是不同的組別嗎? 還是我們能夠應用一些統計方法來驗證不同組別之間的差異呢?


Figure source:
Kuehne, L. M., Padgham, B. L. and Olden, J. D. (2013) The soundscapes of lakes across an urbanization gradient. PLOS one 8: e55661. doi:10.1371/journal.pone.0055661

方法千千百百種,其中一種我們可以應用的統計方法是搭配permutation method的multivariate analysis of variance (MANOVA)。在R軟體中的vegan package,有一個adonis function可以幫助我們去驗證不同組之間在多變量的空間中的中心點是否有顯著差異。不過此方法就如同ANOVA一樣,可能會受到組內的變異程度而影響,因此建議也須進行homogeneity test來了解各組之間的數值變異程度是否有差異。在vegan package中有另一個betadisper function可以幫我們去驗證不同組之間在多變量的空間中的數值變異程度的顯著差異。



Congress of Animal Behavior & Ecology – 2014





  1. 行為生態學(Behavioral Ecology)
  2. 族群與群聚生態學(Population and Community Ecology)
  3. 生理生態學(Physiological Ecology)
  4. 親緣地理與分類學(Phylogeography and Systematics)
  5. 動植物交互關係(Ecological Relationships of Plants and Animals)
  6. 其他:
  • 植物生態學(Plant Ecology)
  • 野生動植物保育與經營管理(Wildlife Conservation and Management)
  • 入侵種生物生態學(Ecology of Invasive Species)
  • 臺灣地區長期生態研究網(Taiwan Ecological Research Network, TERN)
  • 全球變遷與生物多樣性(Global Change and Biodiversity)
  • 公民科學與生態學研究(Citizen Science and Ecological Research)
  • 民俗生態學與傳統生態知識(Ethnoecology and Traditional Ecological Knowledge)
  • 分子生態學(Molecular Ecology)