John Haugeland
2004-Aug-06 15:01 UTC
[speex-dev] speex_denoise on non-microphone noise (static ?)
Understand that it's a *guess*. If this fixes or at least betters the situation, you're going to need to find a legit way to insulate these cards, or to switch cards. If it's for customers, I should hope you wouldn't be using enamelled aluminum foil. :D -----Original Message----- From: Tongbiao Li [mailto:tli@viack.com] Sent: Thursday, September 18, 2003 11:20 AM To: speex-dev@xiph.org Subject: RE: [speex-dev] speex_denoise on non-microphone noise (static ?) <p><p>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@senscom.com] Sent: Thursday, September 18, 2003 10:43 AM To: 'speex-dev@xiph.org' 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@viack.com] Sent: Thursday, September 18, 2003 10:37 AM To: speex-dev@xiph.org 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. <p>--- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'speex-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.