Thanks for the speedy response and
detailed, enlightening explanation. Now I understand where
the problem is, and will try out your suggestions just to further confirm my conjecture.
When I am done, I have to take the foil
out, though. This is a product for our customers to use, and although we’ve
got budget for mulffing every sound card we developers use, most likely the
company won’t pay for a foil per licensed customer.
So I still have to make our denoising work
in this field scenario.
-----Original Message-----
From: John Haugeland
[mailto:JohnH@xxxxxxxxxxx]
Sent: Thursday,
September 18, 2003 10:43 AM
To: 'speex-dev@xxxxxxxx'
Subject: RE: [speex-dev]
speex_denoise on non-microphone noise (static ?)
Take what I say with a
grain of salt: I'm an amateur and haven't actually touched Speex in any way,
yet. I'm just sort of passing on personal belief from personal
experience. Also, check and make sure that the microphone line is
insulated.
There are a number of
problems with sound cards picking up interference from the host machine.
The wires that run between ICs on a card essentially act like antennae and
furthermore pick up current by inductance. High end sound cards are often
on an AC97 riser, or wholly external to the machine, in order to counteract
this problem.
Check and see if you can
identify the timing of the spikes. For example, my old SB16Pro used to
pick up noise from the motors of both the hard drive and the CD-Rom drive; you
could hear both spin up over the speakers if the signal at the time wasn't
prohibitively high.
One thing you could do is
attempt to insulate your sound card by hand. I don't know if the
interference has any path over the PCI bus, so this may very well be
silly, and I'm not sure if it would help. Moreover, adding metal in an
uncontrolled fashion to your computer is *begging* for something to touch
something else, and give you a short, potentially destroying hardware.
That all said, if you're
on short time and short budget, you could try the following (NOT A GOOD IDEA):
take a piece of aluminum foil (aluminum is diamagnetic and therefore has good
insulation properties regarding emf.) open your case and turn your
computer off. Wrap the foil most of the way around the card, taking care
to leave the foil in a shape that can be removed without distortion.
Remove the foil, and coat it with a nonconductive, nonflaking,
nonscorching lacquer such as high quality enamel paint. Return the
coated nonconductive foil. See if that helps the signal at all.
Really, unless there's a
different problem and I'm just yapping into the wind, the best thing to do
would be to get a sound card that fits into an AC97 riser, or an insulated
sound card, if they exist. Turtle Beach and Roland seem like likely
vendors.
-----Original
Message-----
From: Tongbiao Li
[mailto:tli@xxxxxxxxx]
Sent: Thursday,
September 18, 2003 10:37 AM
To: speex-dev@xxxxxxxx
Subject: [speex-dev] speex_denoise
on non-microphone noise (static ?)
The problem started with speech
detection. Speech sections are detected well. However, once
in a while non-speech sections are also marked as speech. The root was
finally traced down to microphone static noise.
Then I pulled the microphone out.
Our system still records noise. To isolate the problem, I wrote a small
app just to open the device and record raw samples, calls speex_denoise() and
outputs both sample sets. The noise is still there, with level
fluctuating with gain level, unless “All mute” is chosen.
In the case when NO microphone is
plugged in, speex_denoise() smoothes the signal and produces smoother (and even
amplifies the signal) speech like signals. It seems that speex_denoise( )
is very sensitive to static noise.
For regular speech COMBINED with
microphone static (or more precisely, the static detected at the microphone
plug, or noise from inside the PC … someone help me out here), the noise
samples do get suppressed compared to speech samples.
One observation: many noise
sequences seem to have a signature of sharp spikes.
Anyone have a solution of supressing
this type of static?
Thank you.