[Speex-dev] To CELP or not to CELP ... at higher bitrates

Steve Gibson steve at grc.com
Fri Oct 28 21:13:22 PDT 2005


I am building a tool for producing the highest possible quality Internet 
interviews for "podcasting" applications.  The goal is to produce a perfect 
recording of an interview or conference -- and giving the participants a 
glitch-free experience is secondary.

My approach, therefore, is to build a Windows "wave" file asynchronously by 
using a streaming retransmission protocol to request the retransmission of 
any lost packets from a short-term history buffer maintained by each 
sender, thus "filling in any gaps" after the fact.  In this way we can 
guarantee that a perfect recording will always result.

Being able to tolerate lost or delayed packets in the interactive exchange 
(since they will be filled-in later) means that the system can operate with 
a shallower jitter-buffer to minimize the interactive delay, and the 
professional participants can simply ignore any late or lost frames since 
they will know that those will be handled in the final recording.

With that bit of background, my question is:

Since the resulting recorded quality is the ONLY concern, and since we can 
stipulate that all parties will always have access to broadband-scale 
connectivity, does using a CELP-based codec such as Speex make the most 
sense in this application?

I would be running Speex in ultra-wideband with 32 or 48 kHz sampling and 
its bitrate completely open-ended and upwards of 44 kbps ... but higher bit 
rates (of several hundred kbps) would also be readily available to this 

Given that we really don't need the compression levels offered by advanced 
CELP speech encoding, does it still make the most sense to use Speex, or 
would we be better served to use some other codec -- perhaps such as mp2 or 
mp3 -- at higher bitrates?

Do you have any guidelines you could share?


More information about the Speex-dev mailing list