[xiph-commits] r13991 - trunk/speex/doc

jm at svn.xiph.org jm at svn.xiph.org
Mon Oct 15 16:06:26 PDT 2007


Author: jm
Date: 2007-10-15 16:06:26 -0700 (Mon, 15 Oct 2007)
New Revision: 13991

Modified:
   trunk/speex/doc/manual.lyx
Log:
Moved FAQ to the wiki


Modified: trunk/speex/doc/manual.lyx
===================================================================
--- trunk/speex/doc/manual.lyx	2007-10-15 17:11:03 UTC (rev 13990)
+++ trunk/speex/doc/manual.lyx	2007-10-15 23:06:26 UTC (rev 13991)
@@ -9242,355 +9242,6 @@
 
 \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 @@
 \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 @@
 \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



More information about the commits mailing list