diff options
author | jm <jm@0101bb08-14d6-0310-b084-bc0e0c8e3800> | 2007-10-16 03:06:26 +0400 |
---|---|---|
committer | jm <jm@0101bb08-14d6-0310-b084-bc0e0c8e3800> | 2007-10-16 03:06:26 +0400 |
commit | ed3ce2ec0c6ba382b52f5e3744a6443c74061436 (patch) | |
tree | 9c456f0f7559838e857b3810bc4e4785cea98539 /doc | |
parent | 417d9c160173adf15b359c951932c55d920afcf1 (diff) |
Moved FAQ to the wiki
git-svn-id: http://svn.xiph.org/trunk/speex@13991 0101bb08-14d6-0310-b084-bc0e0c8e3800
Diffstat (limited to 'doc')
-rw-r--r-- | doc/manual.lyx | 361 |
1 files changed, 10 insertions, 351 deletions
diff --git a/doc/manual.lyx b/doc/manual.lyx index bf02386..aa3ecf3 100644 --- a/doc/manual.lyx +++ b/doc/manual.lyx @@ -9242,355 +9242,6 @@ clearpage \begin_layout Chapter \start_of_appendix -FAQ -\end_layout - -\begin_layout Subsection* -Vorbis is open-source -\begin_inset LatexCommand index -name "open-source" - -\end_inset - - and patent-free -\begin_inset LatexCommand index -name "patent" - -\end_inset - -; why do we need Speex? -\end_layout - -\begin_layout Standard -Vorbis is a great project but its goals are not the same as Speex. - Vorbis is mostly aimed at compressing music and audio in general, while - Speex targets speech only. - For that reason Speex can achieve much better results than Vorbis on speech, - typically 2-4 times higher compression at equal quality. -\end_layout - -\begin_layout Subsection* -Isn't there an open-source implementation of the GSM-FR codec? Why is Speex - necessary? -\end_layout - -\begin_layout Standard -First of all, it's not clear whether GSM-FR is covered by a Philips patent - (see http://kbs.cs.tu-berlin.de/~jutta/toast.html). - Also, GSM-FR offers mediocre quality at a relatively high bit-rate, while - Speex can offer equivalent quality at almost half the bit-rate. - Last but not least, Speex offers a wide range of bit-rates and sampling - rates, while GSM-FR is limited to 8 kHz speech at 13 kbps. -\end_layout - -\begin_layout Subsection* -Under what license is Speex released? -\end_layout - -\begin_layout Standard -As of version 1.0 beta 1, Speex is released under Xiph's version of the (revised) - BSD license (see Appendix -\begin_inset LatexCommand ref -reference "sec:Speex-License" - -\end_inset - -). - This license is one of the most permissive open-source licenses. -\end_layout - -\begin_layout Subsection* -Am I allowed to use Speex in commercial software? -\end_layout - -\begin_layout Standard -Yes. - As long as you comply with the license. - This basically means you have to keep the copyright notice and you can't - use our name to promote your product without authorization. - For more details, see license in Appendix -\begin_inset LatexCommand ref -reference "sec:Speex-License" - -\end_inset - -. -\end_layout - -\begin_layout Subsection* -Ogg -\begin_inset LatexCommand index -name "Ogg" - -\end_inset - -, Speex, Vorbis -\begin_inset LatexCommand index -name "Vorbis" - -\end_inset - -, what's the difference? -\end_layout - -\begin_layout Standard -Ogg is a container format for holding multimedia data. - Vorbis is an audio codec that uses Ogg to store its bit-streams as files, - hence the name Ogg Vorbis. - Speex also uses the Ogg format to store its bit-streams as files, so technicall -y they would be -\begin_inset Quotes eld -\end_inset - -Ogg Speex -\begin_inset Quotes erd -\end_inset - - files (I prefer to call them just Speex files). - One difference with Vorbis however, is that Speex is less tied with Ogg. - Actually, if you just do Voice over IP (VoIP), you don't need Ogg at all. -\end_layout - -\begin_layout Subsection* -What's the extension for Speex? -\end_layout - -\begin_layout Standard -Speex files have the .spx extension. - Note, however that the Speex tools (speexenc, speexdec) do not rely on - the extension at all, so any extension will work. -\end_layout - -\begin_layout Subsection* -Can I use Speex for compressing music -\begin_inset LatexCommand index -name "music" - -\end_inset - -? -\end_layout - -\begin_layout Standard -Just like Vorbis is not really adapted to speech, Speex is really not adapted - for music. - In most cases, you'll be better of with Vorbis when it comes to music. -\end_layout - -\begin_layout Subsection* -I converted some MP3s to Speex and the quality is bad. - What's wrong? -\end_layout - -\begin_layout Standard -This is called transcoding and it will always result in much poorer quality - than the original MP3. - Unless you have a really good (size) reason to do so, never transcode speech. - This is even valid for self transcoding (tandeming), i.e. - If you decode a Speex file and re-encode it again at the same bit-rate, - you will lose quality. -\end_layout - -\begin_layout Subsection* -Does Speex run on Windows? -\end_layout - -\begin_layout Standard -Compilation on Windows has been supported since version 0.8.0. - There are also several front-ends available from the website. -\end_layout - -\begin_layout Subsection* -Why is encoding so slow compared to decoding? -\end_layout - -\begin_layout Standard -For most kinds of compression, encoding is inherently slower than decoding. - In the case of Speex, encoding consists of finding, for each vector of - 5 to 10 samples, the entry that matches the best within a codebook consisting - of 16 to 256 entries. - On the other hand, at decoding all that needs to be done is look up the - right entry in the codebook using the encoded index. - Since a lookup is much faster than a search, the decoder works much faster - than the encoder. -\end_layout - -\begin_layout Subsection* -Why is Speex so slow on my iPaq (or insert any platform without an FPU)? -\end_layout - -\begin_layout Standard -You probably didn't build Speex with the fixed-point option (--enable-fixed-poin -t). - Even if you did, not all modes have been ported to use fixed-point arithmetic, - so the code may be slowed down by a few float operations left (e.g. - in the wideband mode). -\end_layout - -\begin_layout Subsection* -I'm getting unusual background noise (hiss) when using libspeex in my applicatio -n. - How do I fix that? -\end_layout - -\begin_layout Standard -One of the causes could be scaling of the input speech. - Speex expects signals to have a -\begin_inset Formula $\pm2^{15}$ -\end_inset - - (signed short) dynamic range. - If the dynamic range of your signals is too small (e.g. - -\begin_inset Formula $\pm1.0$ -\end_inset - -), you will suffer important quantization noise. - A good target is to have a dynamic range around -\begin_inset Formula $\pm8000$ -\end_inset - - which is large enough, but small enough to make sure there's no clipping - when converting back to signed short. -\end_layout - -\begin_layout Subsection* -I get very distorted speech when using libspeex in my application. - What's wrong? -\end_layout - -\begin_layout Standard -There are many possible causes for that. - One of them is errors in the way the bits are manipulated. - Another possible cause is the use of the same encoder or decoder state - for more than one audio stream (channel), which produces strange effects - with the filter memories. - If the input speech has an amplitude close to -\begin_inset Formula $\pm2^{15}$ -\end_inset - -, it is possible that at decoding, the amplitude be a bit higher than that, - causing clipping when saving as 16-bit PCM. -\end_layout - -\begin_layout Subsection* -How does Speex compare to other proprietary codecs? -\end_layout - -\begin_layout Standard -It's hard to give precise figures since no formal listening tests have been - performed yet. - All I can say is that in terms of quality, Speex competes on the same ground - as other proprietary codecs (not necessarily the best, but not the worst - either). - Speex also has many features that are not present in most other codecs. - These include variable bit-rate (VBR), integration of narrowband and wideband, - as well as stereo support. - Of course, another area where Speex is really hard to beat is the quality/price - ratio. - Unlike many very expensive codecs, Speex is free and anyone may distribute - or modify it at will. -\end_layout - -\begin_layout Subsection* -Can Speex pass DTMF -\begin_inset LatexCommand index -name "DTMF" - -\end_inset - -? -\end_layout - -\begin_layout Standard -I guess it all depends on the bit-rate used. - Though no formal testing has yet been performed, I'd say is correctly at - 8 kbps and above. - Also, make sure you don't use the lowest complexity (see SPEEX_SET_COMPLEXITY - or --comp option), as it causes significant noise. -\end_layout - -\begin_layout Subsection* -Can Speex pass V.9x modem signals correctly? -\end_layout - -\begin_layout Standard -If I could do that I'd be very rich by now :-) Seriously, that would break - fundamental laws of information theory. -\end_layout - -\begin_layout Subsection* -What is your (Jean-Marc) relationship with the University of Sherbrooke - and how does Speex fit into that? -\end_layout - -\begin_layout Standard -I have completed my -\emph on -Ph.D. - -\emph default - at the University of Sherbrooke in 2005 in mobile robotics. - Although I did my master with the Sherbrooke speech coding group (in speech - enhancement, not coding), was no longer associated with them when developing - Speex. - It should -\series bold -not -\series default - be understood that they or the University of Sherbrooke have anything to - do with the Speex project. - Furthermore, Speex does not make use of any code or proprietary technology - developed in the Sherbrooke speech coding group. - -\end_layout - -\begin_layout Subsection* -CELP, ACELP -\begin_inset LatexCommand index -name "ACELP" - -\end_inset - -, what's the difference? -\end_layout - -\begin_layout Standard -CELP stands for -\begin_inset Quotes eld -\end_inset - -Code Excited Linear Prediction -\begin_inset Quotes erd -\end_inset - -, while ACELP stands for -\begin_inset Quotes eld -\end_inset - - -\emph on -Algebraic -\emph default - Code Excited Linear Prediction -\begin_inset Quotes erd -\end_inset - -. - That means ACELP is a CELP technique that uses an algebraic codebook represente -d as a sum of unit pulses, thus making the codebook search much more efficient. - This technique was invented at the University of Sherbrooke and is now - one of the most widely used form of CELP. - Unfortunately, since it is patented, it cannot be used in Speex. -\end_layout - -\begin_layout Standard - -\newpage - -\end_layout - -\begin_layout Chapter Sample code \begin_inset LatexCommand label name "sec:Sample-code" @@ -9622,7 +9273,11 @@ sampleenc.c \begin_layout Standard sampleenc takes a raw 16 bits/sample file, encodes it and outputs a Speex stream to stdout. - Note that the packing used is NOT compatible with that of speexenc/speexdec. + Note that the packing used is +\series bold +not +\series default + compatible with that of speexenc/speexdec. \end_layout \begin_layout Standard @@ -9641,7 +9296,11 @@ sampledec.c \begin_layout Standard sampledec reads a Speex stream from stdin, decodes it and outputs it to a raw 16 bits/sample file. - Note that the packing used is NOT compatible with that of speexenc/speexdec. + Note that the packing used is +\series bold +not +\series default + compatible with that of speexenc/speexdec. \end_layout \begin_layout Standard |