[Speex-dev] Programming questions
Jean-Marc Valin
Jean-Marc.Valin at USherbrooke.ca
Mon Jan 17 01:17:07 PST 2005
> you are better off using the vogg orbis codec. speex is meant
> specifically for telephonic voice. it takes a single human voice and
> compresses it well. it cannot handle muliple voices or music very well.
That part is true, so of course it depends on the application. I guess I
should have added that for most applications, 16 kHz is recommended
instead of 44.1 kHz.
> For instance, a whistle can after a while, completely fade out on speex.
That has *nothing* to do with Speex. If you don't like that, just don't
use the denoiser I provide. It's an additional feature usually not
present in other codecs and it's *off* by default. If you chose to use
it, live with its characteristics. Besides, a constant sinusoid *is*
noise, so removing it is a feature, not a bug. :-)
> what every your sized chunks you have, for speex, you will have to repack
> them as 160 samples per frame.
Actually, Speex frames are 160 samples only in narrowband. In wideband,
it's 320 samples and in ultra-wideband, it's 640.
> simply use two instances of speex state structures, one for each channel.
what??? The stereo encoding can be seen in speexenc/speexdec and is a
very simple model (it only encodes intensity difference).
> for sanity's sake, just accept that speex will work only with 160 samples
> per frame.
See above.
> > 4) What is the difference "SPEEX_GET_FRAME_SIZE" and
> > "SPEEX_MODE_FRAME_SIZE" operations. This should not be identical
> > since these operations are provided by two different functions
> > but I don't see any explanation of a difference in the
> > documentation.
> SPPEX_GET_FRAME_SIZE will return the size of the uncompressed frame(whic
> is 160). it is the number of PCM samples that each speex frame represents.
>
> Speex is a variable bit rate codec. Hence, the 160 samples are compressed
> into a speex packet of a size that is determined by the selected mode of
> compression. SPEEX_MODE_FRAME_SIZE returns the size of the compressed
> frame. and it will vary depending upon the mode selected.
No. SPEEX_MODE_FRAME_SIZE returns the number of samples in a frame, not
the encoded size. Encoded size can be obtained with
SPEEX_SUBMODE_BITS_PER_FRAME
Jean-Marc
--
Jean-Marc Valin <Jean-Marc.Valin at USherbrooke.ca>
Université de Sherbrooke
More information about the Speex-dev
mailing list