Claude Brisson
2005-Jan-13 10:41 UTC
[Speex-dev] Problem encoding sine wave in 1.1.6 and somewhat in 1.0.4
On Thu, 2005-01-13 at 12:42 -0500, Jean-Marc Valin wrote:> Le jeudi 13 janvier 2005 ? 10:59 -0500, Jared Whitby a ?crit : > > Interestingly enough.. I started playing around with preprocessing > > options in 1.1.6 and happened upon the denoise filter > > (SPEEX_PREPROCESS_SET_DENOISE). When i run the test tone using that > > option it is completely filtered out and I just get (complete) > > silence. When the test tone is intermixed with regular voice I only > > get the voice. So while i still don't quite understand why the test > > tone dorks up the encoder, it looks like I have a way around it. > > Well, the denoiser is designed to remove any kind of stationary > background noise. You sinusoid fits that definition pretty well :-) > > Jean-MarcThe "Is is a bug? No, it's a feature" has just make another victim! Claude
Jared Whitby
2005-Jan-13 11:20 UTC
[Speex-dev] Problem encoding sine wave in 1.1.6 and somewhat in 1.0.4
Well I think a sinusoid shouldn't totally trash the encoder state, so I still think theres a bug lurking around in there. The denoiser just prevents it from ever making it to the encoder. Just from browsing through the speex code and from what I've learned reading through the mailing list, it looks like there are a few places where checks are in place to prevent sinusoids from destabilizing the stream. Somehow this particular sine wave is getting through the cracks I think. I actually tried a couple of lower frequency samples and It didn't seem to cause the problem I was having. But, I seem to be in good shape with the filter in place... so just figured I would share what i have learned. Jared On Thu, 13 Jan 2005 19:40:11 +0100, Claude Brisson <claude@renegat.net> wrote:> On Thu, 2005-01-13 at 12:42 -0500, Jean-Marc Valin wrote: > > Le jeudi 13 janvier 2005 ? 10:59 -0500, Jared Whitby a ?crit : > > > Interestingly enough.. I started playing around with preprocessing > > > options in 1.1.6 and happened upon the denoise filter > > > (SPEEX_PREPROCESS_SET_DENOISE). When i run the test tone using that > > > option it is completely filtered out and I just get (complete) > > > silence. When the test tone is intermixed with regular voice I only > > > get the voice. So while i still don't quite understand why the test > > > tone dorks up the encoder, it looks like I have a way around it. > > > > Well, the denoiser is designed to remove any kind of stationary > > background noise. You sinusoid fits that definition pretty well :-) > > > > Jean-Marc > > The "Is is a bug? No, it's a feature" has just make another victim! > > Claude > >-- Jared jwhitby@gmail.com
Jean-Marc Valin
2005-Jan-13 11:50 UTC
[Speex-dev] Problem encoding sine wave in 1.1.6 and somewhat in 1.0.4
Le jeudi 13 janvier 2005 ? 14:19 -0500, Jared Whitby a ?crit :> Well I think a sinusoid shouldn't totally trash the encoder state, so > I still think theres a bug lurking around in there. The denoiser just > prevents it from ever making it to the encoder. Just from browsing > through the speex code and from what I've learned reading through the > mailing list, it looks like there are a few places where checks are in > place to prevent sinusoids from destabilizing the stream. Somehow this > particular sine wave is getting through the cracks I think. I actually > tried a couple of lower frequency samples and It didn't seem to cause > the problem I was having.I think the "problem" comes from the pitch predictor and the fact that at certain frequencies, it will be able to perfectly predict the signal. By doing so, its poles will be right on the unit circle and the impulse response will not decay in time. Preventing that from happening without hurting the general performance (where you *do* want the pitch predictor to make the error as small as possible) is not trivial. Jean-Marc -- Jean-Marc Valin <Jean-Marc.Valin@USherbrooke.ca> Universit? de Sherbrooke
Jean-Marc Valin
2005-May-20 22:43 UTC
[Speex-dev] Problem encoding sine wave in 1.1.6 and somewhat in 1.0.4
Hi Jared, Just to let you know that this behavior got fixed in the 1.1.8 release. Jean-Marc Le jeudi 13 janvier 2005 ? 14:19 -0500, Jared Whitby a ?crit :> Well I think a sinusoid shouldn't totally trash the encoder state, so > I still think theres a bug lurking around in there. The denoiser just > prevents it from ever making it to the encoder. Just from browsing > through the speex code and from what I've learned reading through the > mailing list, it looks like there are a few places where checks are in > place to prevent sinusoids from destabilizing the stream. Somehow this > particular sine wave is getting through the cracks I think. I actually > tried a couple of lower frequency samples and It didn't seem to cause > the problem I was having. > > But, I seem to be in good shape with the filter in place... so just > figured I would share what i have learned. > > Jared > > > On Thu, 13 Jan 2005 19:40:11 +0100, Claude Brisson <claude@renegat.net> wrote: > > On Thu, 2005-01-13 at 12:42 -0500, Jean-Marc Valin wrote: > > > Le jeudi 13 janvier 2005 ? 10:59 -0500, Jared Whitby a ?crit : > > > > Interestingly enough.. I started playing around with preprocessing > > > > options in 1.1.6 and happened upon the denoise filter > > > > (SPEEX_PREPROCESS_SET_DENOISE). When i run the test tone using that > > > > option it is completely filtered out and I just get (complete) > > > > silence. When the test tone is intermixed with regular voice I only > > > > get the voice. So while i still don't quite understand why the test > > > > tone dorks up the encoder, it looks like I have a way around it. > > > > > > Well, the denoiser is designed to remove any kind of stationary > > > background noise. You sinusoid fits that definition pretty well :-) > > > > > > Jean-Marc > > > > The "Is is a bug? No, it's a feature" has just make another victim! > > > > Claude > > > > > >-- Jean-Marc Valin <Jean-Marc.Valin@USherbrooke.ca> Universit? de Sherbrooke