I’ve setup a module to capture audio from the microphone and then stream
it over the net to others. I would just like to enhance performance but
I can’t find any *simple* compression schemes. I would just like
something to: compress() and decompress() or possibly filter()
unfilter(). Preferably I’m looking for lossless compression. The current
voice-over-IP compression technologies are poor quality and their
packages are way to bloated with useless features (ex: Open H323).
Currently I find 8000Hz at 8bits per sample (8KB/sec) an acceptable
quality, yet it’s a bit demanding for the slower connections. While I
tried converting it to 4000Hz to reduce the requirements, I’d like to
know if there’s some sort of cool compression technique I can apply to
the 8000Hz sample to produce a 4000Hz or lower sample and then filter it
back to 8000Hz on the other size. I wish the MP3 Pro technology was open
domain, but alas…
If I can crunch it down to about 3KB/sec, I think that would be great.
Please log in or register to post a reply.
did you look into the SIP voice over ip protocol ? i’m hearing that
german telecom is switching their whole system to that protocol… i
haven’t read a lot about it though
Yeah, I looked at quite a few protocols. The G series, H series, and
SIP. I’m not interested in protocols since I have my own and I don’t
need to adopt a standard at this time. I’m interested in the compression
or filtering techniques that can help reduce my 8000Hz sample down to a
4000Hz or smaller sample which can later be reconstructed and played.
Even 4KB/sec is a bit demanding, but I could easily offer an option to
go as low as 1KB/sec for those unable to handle any more.
Currently most of these protocols use a linear prediction scheme, but
that’s the core cause of all the scratchy, garbled up voice problems you
hear in games like Halflife or regular VoIP programs. MP3 Pro deals with
such a situation perfectly. It uses a technique called Spectral Band
Replication to restore high frequency components back into the wav
stream. It even supports quality as low as 18kbps, which is more than
ideal for lower end connections. But those damn licensing issues just
tick me off. If there’s a similar technique that I can use, that would
speex is an open source codec for speech-compression, but i haven’t ever
looked at it/used it in code, so no clue how easy or difficult it is to
it’s the voice-equivalent of ogg vorbis (it’s another ogg format.. :D).
www..speex.org i think.
Wow, thanks dave. I believe this is exactly what I’m looking for. The
quality is surprisingly good for 8kbps and the code is not bloated down