[LAU] Using commandline app to mark/detect sounds above a threshold

Eric Wong e at 80x24.org
Mon Nov 7 12:13:46 UTC 2016


"J. C." <julien at mail.upb.de> wrote:
> Hey hey again,
> the next thing I'm looking for is a program to detect volume over a certain
> threshold, which can print out a marker there. This function should - at
> best - be able to ignore new peaks within a certain period of time, like a
> gate with very long release times.

This should be doable with dtas-partstats, part of my very
incomplete and largely undocumented duct-tape audio suite:
http://dtas.80x24.org/

Basically, dtas-partstats runs the sox "stats" effect on 10s
intervals of a longer audio file and outputs the stats for each
interval to stdout.  In the output, the 1st column is the time
interval, 2nd column is the combined peak of all channels.

It should not be difficult to code up something similar using
the "trim" and "stats" effects of sox in your favorite scripting
language if you don't have Ruby installed.

> To elaborate the scenario: I'm recording myself sleeping, to a) find
> involuntary actions and b) do quick narrations of dreams, should I wake up
> and remember anything. So, I'd like to jump to the short moments of "action"
> within the relative silence.

Anyways, I use partstats to find peaks in live recordings for
testing limiter, compressor and EQ effects to even out the
overall volume of the result.  For live concerts, these peaks
are are common from audience noise, dropped/bumped equipment,
or room gain on drums.


It can also take advantage of multiple CPUs to process the 10s
partitions in parallel on systems with GNU nproc(1) or Ruby 2.2+
installed,


More information about the Linux-audio-user mailing list