Skip to main content

GUI for viewing and analyzing recordings of animal vocalizations.

Project description

PyPI license PyPI version

audian - AUDIoANalyzer

Python-based GUI for viewing and analyzing recordings of animal vocalizations.

Simply run it from a terminal:

audian data.wav

or call it from a script (see runfile.py):

import audian

filepath = 'data.wav'
high_pass = 500.0
audian.main(['-f', f'{high_pass}', filepath])

audiangui

Still experimental new implementation of audian based on pyqtgraph:

audiangui data.wav

I currently explore various possibilities for interactive analysis of audio signals. Here an incomplete list of ToDos:

  • Handle all data in one class
  • Implement a proper layout for showing the plot panels, allowing also for an optional grid layout.
  • FullTracePlot:
    • fix offset problem,
    • indicate time under mouse cursor.
  • Interactive high- and low-pass filtering:
    • high- and low-pass filter lines must not cross! Update limits.
    • databrowser should provide the filtered traces to both traceitems and specitems.
    • filter original signal in trace plot and spectrogram plot.
    • play should filter its data on its own.
    • add a toolbar widget for setting filter order.
  • Improve downsampling and filtering of traces
  • Implement downsampling of spectrograms! Or make it even dependent on window size.
  • New plot widget showing power spectrum of visible range or slice at current cursor position.
  • Improve on the concept of current cursor:
    • play should not stop at visible range but keeps going and scrolls data.
    • make cursor moveable by mouse.
    • some key shortcuts for moving and handling cursor.
  • Improve on marking cross hair, cues, regions, events:
    • Cross hair should only be used for measuring! Just a single whitish color. Comments only in the table. Show points only fom active measurement.
    • Cues and regions have position data with labels. Same for all channels.
      • visualize them by infinite vertical lines/regions, both in plots and FullTracePlot (maybe in extra row?).
      • can be set from cursor position/marked region.
      • add key shortcuts to go to next/previous cue.
      • from cue table go to selected cue.
      • how does boris export them?
    • Events are channel specific points.
      • Plotted as dot at data amplitude.
      • Many events per label.
      • Result from some analysis.
      • But should be editable.
    • Event regions are channel specific:
      • Plotted as lines on top of data.
      • Result from some analysis.
      • But should be editable.
  • Define interface for analysis on full data, visible range, selected range.
  • Have a dockable sidebar for showing metadata, cue tables etc.

Installation of audiangui in Anaconda3 on windows

Anaconda supports really old versions of PyQt5 and Qt5 only that are not compatible with a recent pyqtgraph. No fun.

A workaround is to first create a new conda environment. For this open the windows powershell from the Anaconda navigator. Type in and execute

conda create -n Qt python=3.9

Then activate the new Qt environment:

conda activate Qt

Then we use pip to install PyQt5:

pip install PyQt5

Change into a directory where you want to put audioio and audian. First, download audioio and install it:

git clone https://github.com/janscience/audioio.git
cd audioio
pip install .
cd ..

And then do the same with audian:

git cone https://github.com/bendalab/audian.git
cd audian
pip install .

This installs many other packages (numpy, scipy, etc.).

Then you should be able to run audiangui from the power shell

For updating audian do

cd audian
git pull origin master
pip install .

Same for audioio.

Run Audian from Spyder IPython console:

In the IPython console do:

%set_env MPLBACKEND=
! audian -f 1000 -l 15000 data.wav

Installation

Simply run (as superuser):

pip install audian

This should also install:

Options

Output of audian --help:

usage: audian [-h] [--version] [-v] [-c [cfgfile]] [-f FREQ] [-l FREQ] [file] [channel]

Display waveform, spectrogram, power spectrum, envelope, and envelope spectrum of time series data.

positional arguments:
  file                  name of the file with the time series data
  channel               channel to be displayed

optional arguments:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  -v                    print debug information
  -c [cfgfile], --save-config [cfgfile]
                        save configuration to file cfgfile (defaults to /usr/local/bin/audian.cfg)
  -f FREQ               cutoff frequency of highpass filter in Hz
  -l FREQ               cutoff frequency of lowpass filter in Hz

version 1.0 by Jan Benda (2015-2022)

Other scientific software for working on timeseries data

  • BioSPPy: The toolbox bundles together various signal processing and pattern recognition methods geared towards the analysis of biosignals.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

audian-1.7.tar.gz (91.2 kB view hashes)

Uploaded Source

Built Distribution

audian-1.7-py3-none-any.whl (82.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page