[Speex-dev] SPEEX on iPhone ?

Vincent Burel vincent.burel at vb-audio.com
Sat Nov 15 04:46:20 PST 2008


  ----- Original Message ----- 
  From: Keith Kyzivat 
  To: Vincent Burel 
  Cc: Alexander Chemeris ; speex-dev at xiph.org ; Jean-Marc Valin 
  Sent: Friday, November 14, 2008 3:34 PM
  Subject: Re: [Speex-dev] SPEEX on iPhone ?





  On Fri, Nov 14, 2008 at 3:57 AM, Vincent Burel <vincent.burel at vb-audio.com> wrote:

    > Speech compression algorithms always are tunned to particular freq,

    > else they would take tons of time. That's because they use knowledge
    > that speech pitch (and other params) lies in well specified regions.
    > Thus if you feed algorithm with wrong freq, you'll fool it and it might
    > even not detect speech at all.


    Do you mean that speex is working at 44.1 Khz like at 32Khz without
    samplerate conversion ?

    It seems you suggest that working with 44.1 Khz signal instead of 32Khz
    (wich is the native samplingrate for the ultra -wide-band mode as far as i
    understand) ask for more CPU load. Since YOU have already worked with SPEEX,
    do you know how much CPU load it takes ? 10% more ? 50% more ?


  Standard sample rate used with speex is 8kHz.
  Speex wideband uses 16kHz
  Speex ultra-wideband uses 32kHz


  Many speech applications use use just the standard 8kHz speex mode.


  What Alex is saying is, you'll (probably) want to record from sound card at 44.1kHz or 48kHz (depending on native rate of sound card-- which isn't always easy to find out), then use a software resampler like speexdsp provides (but any implementation will do) to resample the data down to your target sample rate for speex (8kHz for standard speex, 16kHz for wb, 32kHz for uwb).  Then push it through speex routines, send it where it needs to be, decode with speex routines, then resample it back up to 44.1/48kHz, and play it out at the destination end.


  This of course, presumes that your audio source and sink are provided by the myriad of sound cards that have been designed for Windows, and are supported by other OSes.
  Basically, sound cards these days are designed to work with only one or two sample rates, and their drivers do the resampling to get it to target/destination sample rate.  Quite a few years back (so some google research suggests), Microsoft disseminated some faulty resampling reference code that just got integrated with a lot of sound card drivers, and exists to this day (so they say -- take this with a grain of salt though).  One thing I can be sure of (I have seen), is that if you resample the data to the sound card's native sample rate (which, I think it can be safe that most all sound cards use 48kHz or 44.1kHz), latency (definitely) and jitter(maybe?) goes down pretty significantly.


Well, thanks for your reply about sound card... but it was not really the question. First, i remind that i already use SPEEX at 44.1 Khz without converting signal to native 32Khz, and it works very well. So now i would like to get reply to my both original questions if possible :

1- Does SPEEX is doing the down/upsampling when working with 44.1Khz signal or does it process this signal as it was 32Khz ?

1- if i setup SPEEX in 32Khz and do the down/upsampling myself, what does it bring ? better quality ? much CPU performance ? how much ?

Thanks by advance.
Regards 
Vincent Burel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20081115/344d4d3c/attachment.htm 


More information about the Speex-dev mailing list