Kevin Otte
2017-06-09 20:04:56 UTC
In David's recent blog post on LilacSat-1
(http://www.rowetel.com/?p=5671) he posited:
Note to self #2 – add some noise reduction inside of Codec 2
to make it more robust to different input signal conditions.
Now, I'm a bit of an old UNIX beard, which means I like my tools to do
one thing and do them well. Codec2 does a great job of coding voice
signals, so it stands to reason that we can create a separate
tool/module/pathway/pony to give it better signal to work with.
I notice when building the codec2 source that it depends on libspeexdsp.
I'm not sure what we're doing with that, but I do note that this library
has a denoising filter. A simple test filter program is shown in its
repository:
https://github.com/xiph/speexdsp/blob/master/libspeexdsp/testdenoise.c
I was able to compile that up on my Ubuntu machine with libspeexdsp-dev
already installed with a simple:
gcc testdenoise.c -o testdenoise -lspeexdsp
From there I took a voice sample I grabbed off the local repeater using
my scanner and ran it through the processor:
./testdenoise < sample.raw > sample-denoised.raw
And then on to encoding testing:
./c2demo sample-denoised.raw sample-denoised-c2.raw
The sample I had didn't suffer too terribly from the background noise,
but it was nice to have it completely gone in the final output. Would be
interesting to see if other folk have better luck with this, perhaps
twiddling the knobs a bit from the defaults.
73 de Kevin N8VNR
(http://www.rowetel.com/?p=5671) he posited:
Note to self #2 – add some noise reduction inside of Codec 2
to make it more robust to different input signal conditions.
Now, I'm a bit of an old UNIX beard, which means I like my tools to do
one thing and do them well. Codec2 does a great job of coding voice
signals, so it stands to reason that we can create a separate
tool/module/pathway/pony to give it better signal to work with.
I notice when building the codec2 source that it depends on libspeexdsp.
I'm not sure what we're doing with that, but I do note that this library
has a denoising filter. A simple test filter program is shown in its
repository:
https://github.com/xiph/speexdsp/blob/master/libspeexdsp/testdenoise.c
I was able to compile that up on my Ubuntu machine with libspeexdsp-dev
already installed with a simple:
gcc testdenoise.c -o testdenoise -lspeexdsp
From there I took a voice sample I grabbed off the local repeater using
my scanner and ran it through the processor:
./testdenoise < sample.raw > sample-denoised.raw
And then on to encoding testing:
./c2demo sample-denoised.raw sample-denoised-c2.raw
The sample I had didn't suffer too terribly from the background noise,
but it was nice to have it completely gone in the final output. Would be
interesting to see if other folk have better luck with this, perhaps
twiddling the knobs a bit from the defaults.
73 de Kevin N8VNR