Pumilio: A Web-Based Management System for Ecological Recordings



This section highlights new and emerging areas of technology and methodology. Topics may range from hardware and software, to statistical analyses and technologies that could be used in ecological research. Articles should be no longer than a few thousand words, and should be sent to the editors, David Inouye (e-mail: inouye@umd.edu) or Sam Scheiner (e-mail: sschein@nsf.gov).

Systems that record sounds automatically, known as autonomous recording units (ARU), have allowed researchers to readily collect sound recordings at intervals of time (e.g., Acevedo and Villanueva-Rivera 2006, Hutto and Stutzman 2009, Steelman and Dorcas 2010). These recordings are now being used in a variety of ecological studies, such as to monitor breeding patterns (Laiolo 2010), assess community diversity and animal population levels (Sueur et al. 2008b, Dawson and Efford 2009), and to characterize soundscape composition of various ecosystems (Dumyahn and Pijanowski 2011a, b, Pijanowski et al. 2011a, b, Villanueva-Rivera et al. 2011,). However, ARUs can generate a massive number of files, presenting challenges to researchers in terms of archiving, querying, analyzing, and retrieving sound files. Such capabilities are beyond the scope of traditional bioacoustics software, such as Raven (Charif et al. 2006), which have been designed for processing and analyzing single acoustic files.

To address these challenges, we created Pumilio, a web-based application that archives, manages, retrieves, analyzes, visualizes, and allows users to listen to sound files. In this paper, we describe this application, how it works, and how it can be used by other research groups interested in bioacoustics and soundscape ecology. This application can also be used for outreach and informal education efforts by placing ecological sounds on a public web site.

A web-based database to manage a sound archive and analyze sound files


The Pumilio system is written in the PHP scripting language and runs on the Ubuntu (Canonical Ltd. 2010) distribution of the Linux operating system, although minor modifications could allow it to run on other distributions and operating systems. Pumilio uses a MySQL database (MySQL AB 2010) to store metadata of each sound file and to manage the archive (Fig. 1). Other software tools are integrated into Pumilio. These include (1) SoX for converting between sound file formats, editing files, and applying bandpass filters (Bagwell 2010), (2) LAME to create mp3 versions of the sound files to listen to the sound using a standard web browser (Lame Development Team 2010), and (3) a Python module, called Audiolab (Cournapeau 2008), which creates a spectrogram and waveform image of the recording using ImageMagick (ImageMagick Studio 2011). Pumilio is available free with an open-source license at the application's website: http://pumilio.sourceforge.net.

Figure 1.

Simplified structure of the Pumilio database and the relationships between the tables.

Pumilio has three major modules that support the management of a sound archive: (1) a tool that supports importing sound files to the archive, (2) an interface for browsing the archive using a map or information queried from the sound file metadata, and (3) a sound visualization and analysis tool (Fig. 2). In this paper, we use our sound archive from 2010 collected in Tippecanoe County, Indiana to demonstrate its functionality. Here we briefly describe the field data collection to provide an example of the kind of data that the application described in this paper can manage. Next, we describe the steps involved in incorporating the sound files from the field into the application. In the next section we present some manipulations that can be accomplished with the application. The last two sections describe a parallel computing tool and how the application can be used for outreach purposes.

Figure 2.

Major modules of the Pumilio application and their use.

Data collection

We collected sound recordings at eight sites in Tippecanoe County, Indiana, across a land use gradient, including forest, agriculture, urban, and mixed use (see Pijanowski et al. 2011a for details). We used Wildlife Acoustics SongMeter recorders (Model SM1; Wildlife Acoustics, Concord, Massachusetts, USA) set to record for 15 minutes every hour using a sampling rate of 44.1 kHz in wave (.wav) file format, and in stereo. Each file was stored with the filename coding for the recorder used, the date, and the time when the recoding was made. Every week we exchanged the memory cards and batteries in the ARU and copied the files to a computer and compressed the files using the Free Lossless Audio Codec (flac; Coalson 2008) to save disk space. This project produced 46,844 files collected between April and December of 2010. These files occupy ~2.9 TB of disk space in the flac file format.

Data input

Pumilio accepts files uploaded individually from a web browser or groups of files from a local folder on the server. Individual files can be uploaded using any modern browser. The application checks the uploaded file with SoX to verify that it is a valid sound file and that the server is configured to read and edit the particular file format. The next step allows the user to edit the metadata fields in the database such as the type of recording equipment used and any field notes.

To import several files at the same time, there is an option to read all the files from a temporary directory in the server. This option is ideal when the data is collected with ARUs that store the date and time of the recording in the filename. The system automatically extracts the technical metadata from each file, including sampling rate, format, number of channels, and recording duration, to save them to the database. We used this second option with our archive, since we collected the recordings using ARUs and there were a few hundred files per site each week.

Once the files are added to the archive, the user has the option to generate the auxiliary files for the archive, spectrogram, and waveform images and a compressed sound file in mp3 format for listening over the web. These auxiliary files can also be created by any administrative user in the web interface or when the file is requested in the online archive. A script written in Python can also be used to generate these auxiliary files on another computer, which can help to reduce the load on the application server.

Each file, or groups of files, can be assigned to a particular site. A site is stored in the database using latitude and longitude values, which, in turn, are used to display the sites in a map. In addition, other data, such as meteorological information, can be stored and then displayed with each sound file.

Browsing the archive

The sound archive can be accessed using any modern web browser with support for the audio element of the HTML5 web language or the Adobe Flash plugin (Adobe Systems Incorporated 2011). Since the main analysis tool for sounds in bioacoustics is the spectrogram, the archive uses the spectrogram images as a major component in browsing the archive.

The sound files can be browsed using one of several methods. The first method is to browse using a map if the files have spatial data associated with them (Fig. 3). The map is drawn using the Google Maps system (Google 2011). Points are placed in the map and they show the name of the sites as well as a summary of the audio files recorded at that site. In addition, this map can be filtered to show particular dates. In case the Google Maps system lacks some important spatial data, the application has the option to specify layers in KML format to draw over the map. This option can help display data like life zones, trails, or sampling units.

Figure 3.

Example of the map display in the application showing all the sites in the archive where sounds were collected for 2010. A single site was selected, Martell Forest, to show a summary of the sound files recorded at that location.

A second method of browsing the archive is to use a forms-based query of the database. For example, a user can specify time and date ranges and sites. A user can ask the system to display all recordings for a particulate date (or range) and site; for our study, the selection of one day for one site would display 24 recordings. A user may select a time period, viz., between midnight and 03:00, for a 30-day period. Such a query would display 120 files in 12 separate pages, with 10 recordings each using the single-width page display.

A third method is to browse the archive by a particular collection. Collections in the archive can be specific projects, contributors, publications, target taxa, type of recording, etc. The collection feature allows users to separate the archive into custom groups that may be relevant to some archives but not necessarily to others.

A fourth way to browse the archive is to query on the basis of tags, similar to keywords, associated with particular files. Tags can be assigned to specific sound files to provide major categories, distinguish files with rare sounds, identify species present, or to mark files that have technical problems.

Each of these methods to browse the archive provides two options to see the relevant files, a list with a summary of each file and a gallery of the spectrograms (Fig. 4). The summary list displays the metadata of the file, the spectrogram, and a version of the original sound file in mp3 format. The gallery displays a smaller version of the spectrogram, the name of the file, the date and time. Both have a link to view all the details of the sound file.

Figure 4.

An example display when querying the Pumilio archive: (A) a summary view of the files, with file name, date, time and audio, for two channels, and (B) the gallery view with a smaller spectrogram, but with no audio.

Every sound file has a dedicated page with all the metadata of the file, technical details, site information, spectrogram and waveform images, and an audio player (Fig. 5). This page also has options for administrative users to edit or delete the file from the archive. From this page the user can launch the sound visualization tool.

Figure 5.

A sample sound file with the associated metadata as it is displayed in Pumilio. Recording includes one species of frog, an occasional bird calling and light, variable rain. Left and right channels are shown.

Sound visualization

The application possesses a sound visualization tool that allows the user to manipulate the sound file in ways that are also common with bioacoustics software. The visualization tool allows the user to select a region of the file, using time and frequency ranges, to zoom in and to apply a bandpass filter, which can facilitate the task of identification of particular sounds in noisy recordings (Fig 6).

Figure 6.

The sound visualization tool included in Pumilio. This tool allows the user to select particular regions of the sound file to apply a band-pass filter and/or to mark it to save the selection to the database.

The visualization tool can also be used to mark specific acoustic signals, label them, and to save them to the database. For example, when trying to identify a particular species, the candidate sounds can be marked for further analysis. This feature can also be used to determine the frequency and time ranges of particular notes or songs present in the sound file. The data collected in this way can be annotated using the species or any other custom marker and exported as comma-separated files for statistical analysis.

The sound visualization tool has the capacity to be expanded by adding custom scripts. A PHP script can be used to obtain the selection range, metadata of the file, or other associated data, or even to execute some custom code on the whole file or a particular section of the sound file.

Parallel computing

The Pumilio archive includes a parallel computing feature that allows researchers to use a cluster of computers to run Python or R scripts on all of the sound files or just a subset of them. A script can be uploaded to the application and a menu lets the user select which files to analyze with that script. For example, the application can select a random subset of the files. The application keeps track of the number of files completed, and those that did not complete successfully. Any problems or errors are logged to the archive for diagnostic purposes, including the computer where it ran, the type of error, and the script that was run.

Each computer in the cluster is controlled by a Python script that requires the MySQLdb module for Python (Dustman 2010) to interface with the application database. The cluster software queries the database, downloads the individual file from the archive, and then runs the analysis script. This allows users to add computers with great flexibility.

As an example of the parallel computing feature, the workstations in our lab were added to our Pumilio cluster when they were not being used. Together with dedicated analysis nodes, this configuration saved us the expense of a large dedicated cluster of analysis nodes. We calculated the acoustic diversity index (ADI; Pijanowski et al. 2011a) for the files in the 2010 archives in two ways, for the entire file (15 minutes each) and for time segments, starting with 1 minute and then adding 1-minute segments, to compare the effect of recording length on the ADI. The index was calculated from the spectrograms generated by the Seewave package (Sueur et al. 2008a) in R. When we used the cluster to parallelize the calculation of the ADI for the entire 2010 archive, it took just 2 days and 4.5 hours for a cluster of 16 nodes (105.7 ± 35.9 s [mean ± SD], N = 46,924). Using a single computer running exclusively on this task would have taken at least 58 days. When calculating the accumulative ADI, the cluster took 15 days and 14 hours (376.2 ± 131.7 s; N = 46,924). A single computer would have taken more than 204 days to calculate those values.

Data export

The application allows users to export all the sound files from a particular collection or site, and the associated metadata in a comma-separated file, to a .zip or .tar file. This feature can ease the process of making backups and to copy the data to another system.

Advantages of Pumilio

Quick browsing using the spectrogram image as a unit

In any large sound archive, the task of browsing to look for particular sounds or species is made easier using Pumilio. By using the spectrogram image to visualize a sound file, the researcher can inspect for sound signatures and general characteristics faster than by listening to the recorded sound.

Analysis in the browser

The analysis tool of Pumilio allows users to conduct some manipulations of the sound files, including filtering and marking of particular signals in the sound. By placing this in the browser, it allows users to process the sounds quickly. In addition, it allows a team of researchers to store information to a database that can be further used to extract statistics or to input to artificial intelligence software.

Public data sharing

This application can be used to make available a sound archive to the general public over the web. This can help support outreach and informal education activities. This data sharing can also help other researchers and students to learn more about bioacoustics and soundscape ecology.

User accounts

Pumilio is built as a multi-user system for two categories of users: registered users and administrators. Registered users can use all the tools in the application, but they cannot delete files from the archive or make major changes. An administrator can select how much data is available for anonymous users in a public website. For example, anonymous users can browse the archive but not open the analysis tool, which requires the most compute time. The administrative user can also decide if any user can download the original sound file or only those that have an account in the web application.

Flexible parallel computing

Another important advantage that the application has is a built-in parallel computing system. This has allowed us to analyze hundreds of thousands of files with minimal additional effort and with existing hardware. Since the software runs using free and open-source software, there is no expense to acquire it.


The ease with which large collections of sound files can be collected may hinder or limit their proper analysis. We have provided a web-based application that can help other research groups to manage their sound archives. This kind of archive should help researchers to analyze this kind of data. In addition, the system allows an easy way to share the sound files with the public for outreach or informal education efforts. We expect that this application can help to continue the development of much-needed software to manage and analyze large data sets in the areas of bioacoustics and soundscape ecology.


Funding for this project was provided by National Science Foundation III-XT and Purdue Center for the Environment grants to B. C. Pijanowski and support from Purdue University's College of Agriculture and Department of Forestry and Natural Resources to L. J. Villanueva-Rivera. We thank S. Dumyahn for comments on an earlier version of this manuscript.