Create a spectrogram (Image)
The following command records a WAV file using ALSA (Device 2.0).
In this example, Sox is piped into the process — which is actually unnecessary in this case — but could still be used to apply various filters to the resulting test.wav
file:
arecord -D hw:2,0 -r 32000 -f S16_LE -c 1 -t wav | sox -t wav -c 1 -L -b 16 -r 32000 - test.wav
Now, using the newly created test.wav
file, a spectrogram can be generated:
sox test.wav -n spectrogram -o image.png
The following command creates a WAV file using Alsa (Device 2.0). In this
case, Sox is additionally piped, which is completely unnecessary here,
however, Sox could still add various filters to the resulting test.wav
change:
arecord -D hw:2,0 -r 32000 -f S16_LE -c 1 -t wav | sox -t wav -c 1 -L -b 16 -r 32000 - test.wav
Using the file test.wav
that has just been created, a spectrogram is now generated:
sox test.wav -n spectrogram -o image.png

A similar spectrogram image can be created directly from a video file using avconv
:
avconv -i test.avi -lavfi showspectrumpic=s=hd480:legend=0,format=yuv420p out.png

Create a spectrogram (Video)
The following instruction creates a spectrogram from a video test.avi
. This is saved as a video under the name out.avi
.

Instead of avconv
, ffmpeg
could also have been used. The Debian version does not currently support all parameters here.
Alternatives with MPlayer and Sox
You can also generate a spectrogram from a video using mplayer
, or a combination of mplayer
and sox
.
First, extract a WAV file using mplayer
:
mplayer test.mp4 -ao pcm:file=/dev/stdout -vo null > test.wav
Then generate the spectrogram:
sox test.wav -n spectrogram -o test.png
Comparing Spectrograms
Spectrograms created this way can be directly compared.
However, even with seemingly identical WAV files, this comparison can be tricky.
To make differences more visible, creating a spectrogram diff is recommended.
First, create a diff WAV file:
sox -m -v 1 source1.wav -v -1 source2.wav diff.wav
Then generate the spectrogram diff:
sox diff.wav -n spectrogram -o diff.png