okay that questioned is answered, thank you. I am interested in using speex in a VOIP application. do i need to put it in into the ogg contianer format in order to encode/decode and send it? or will it work "as is"? if the latter then: "the packet is larger than the allocated buffer" message: whats your recomendaton for fixing that? i was thinking simply getting the size of the frame and using the speex_bits_init_buffer() function to create a bigger buffer. However i want to keep latency in mind and make them as small as possible. i apologise if the questions seem simple but i've working at this for sevreal days and i'm a little stump. a indication in the right direction would be helpful. thank you in advance, greg Jean-Marc Valin <jean-marc.valin@usherbrooke.ca> wrote: > does this have anything to do with the message on the example code:> "the packing used is not compatible with speexenc/speexdec" i know it > may sound stupid but it is my first time using speex lib. as well i > had assumed this was so and tweaked the decoder code to decode the > same file that the example encode code made, but i get a "packet is > larger than allocated buffer could not resize buffer, truncating > input" message.Well, the note says it all. It's just not compatible. speexenc/dec pack Speex data into an Ogg container, while the sampleenc/dec code just creates an incompatible ad-hoc format just to demonstrate how to use Speex (without bothering with the heavy Ogg code). Jean-Marc --------------------------------- Building a website is a piece of cake. Yahoo! Small Business gives you all the tools to get online. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20070524/fe893250/attachment.html
HI, I am also working on VOIP application. Now the speexenc.exe is used to encode a wav/raw file. However, in real time voice communication, the voice keep recording from the microphone and how can we employ speex to compress the voice and send over the network? Thanks Quoting Greg <caroundw5h@yahoo.com>:> okay that questioned is answered, thank you. > > I am interested in using speex in a VOIP application. do i need to put it in > into > the ogg contianer format in order to encode/decode and send it? or will it > work > "as is"? if the latter then: > > "the packet is larger than the allocated buffer" message: whats your > recomendaton for fixing that? i was thinking simply getting the size of the > frame > and using the speex_bits_init_buffer() function to create a bigger buffer. > However i > want to keep latency in mind and make them as small as possible. > > i apologise if the questions seem simple but i've working at this for sevreal > days > and i'm a little stump. a indication in the right direction would be helpful. > > thank you in advance, > greg > > > > > > Jean-Marc Valin <jean-marc.valin@usherbrooke.ca> wrote: > does this have > anything to do with the message on the example code: > > "the packing used is not compatible with speexenc/speexdec" i know it > > may sound stupid but it is my first time using speex lib. as well i > > had assumed this was so and tweaked the decoder code to decode the > > same file that the example encode code made, but i get a "packet is > > larger than allocated buffer could not resize buffer, truncating > > input" message. > > Well, the note says it all. It's just not compatible. speexenc/dec pack > Speex data into an Ogg container, while the sampleenc/dec code just > creates an incompatible ad-hoc format just to demonstrate how to use > Speex (without bothering with the heavy Ogg code). > > Jean-Marc > > > > --------------------------------- > Building a website is a piece of cake. > Yahoo! Small Business gives you all the tools to get online.
For a streaming application like VOIP, you collect 20 ms of samples, feed this through the encoder, stick it in an RTP packet, and send if over the network. On the receive side you feed packets through a jitter buffer to the decoder, and then copy the output audio to your output device. Speex runs efficiently on most compilers, so the real-time requirement is not a big deal, as long as you know how to do this with your operating system (if you have one). You do not need Ogg containers for something like this, just search the archives for RTP references and you will find much more. Look at the SpeexClient application provided in the source tree, and at the testenc examples in the libspeex directory. The Speex part of things is pretty easy (thanks to Jean-Marc). It is the audio interface for your specific platform and the call setup protocals (e.g. SIP) where the real work is. If you identify the specific hardware/software platform that you plan to use, then someone may be able to point you to examples for the audio interface software. - Jim ----- Original Message ----- From: <alex@gorex.com.hk> To: "Greg" <caroundw5h@yahoo.com> Cc: <greg@mytantrum.com>; <speex-dev@xiph.org>; "Jean-Marc Valin" <jean-marc.valin@usherbrooke.ca> Sent: Thursday, May 24, 2007 11:30 PM Subject: Re: [Speex-dev] Re: compatibility issues.> HI, > I am also working on VOIP application. > Now the speexenc.exe is used to encode a wav/raw file. However, in real > time > voice communication, the voice keep recording from the microphone and how > can > we employ speex to compress the voice and send over the network? > > Thanks > Quoting Greg <caroundw5h@yahoo.com>: > >> okay that questioned is answered, thank you. >> >> I am interested in using speex in a VOIP application. do i need to put it >> in >> into >> the ogg contianer format in order to encode/decode and send it? or will >> it >> work >> "as is"? if the latter then: >> >> "the packet is larger than the allocated buffer" message: whats your >> recomendaton for fixing that? i was thinking simply getting the size of >> the >> frame >> and using the speex_bits_init_buffer() function to create a bigger >> buffer. >> However i >> want to keep latency in mind and make them as small as possible. >> >> i apologise if the questions seem simple but i've working at this for >> sevreal >> days >> and i'm a little stump. a indication in the right direction would be >> helpful. >> >> thank you in advance, >> greg >> >> >> >> >> >> Jean-Marc Valin <jean-marc.valin@usherbrooke.ca> wrote: > does this have >> anything to do with the message on the example code: >> > "the packing used is not compatible with speexenc/speexdec" i know it >> > may sound stupid but it is my first time using speex lib. as well i >> > had assumed this was so and tweaked the decoder code to decode the >> > same file that the example encode code made, but i get a "packet is >> > larger than allocated buffer could not resize buffer, truncating >> > input" message. >> >> Well, the note says it all. It's just not compatible. speexenc/dec pack >> Speex data into an Ogg container, while the sampleenc/dec code just >> creates an incompatible ad-hoc format just to demonstrate how to use >> Speex (without bothering with the heavy Ogg code). >> >> Jean-Marc >> >> >> >> --------------------------------- >> Building a website is a piece of cake. >> Yahoo! Small Business gives you all the tools to get online. > > > > _______________________________________________ > Speex-dev mailing list > Speex-dev@xiph.org > http://lists.xiph.org/mailman/listinfo/speex-dev >
hi Alex, i used portAudiov18 to capture the voice its very easy to use. the speex client does give and example of capturing and encoding/decoding in real time. Although that is not what i'm doing right now perhaps it'll be of some help to you. http://svn.xiph.org/trunk/speex/speexclient/ alex@gorex.com.hk wrote: HI, I am also working on VOIP application. Now the speexenc.exe is used to encode a wav/raw file. However, in real time voice communication, the voice keep recording from the microphone and how can we employ speex to compress the voice and send over the network? Thanks Quoting Greg :> okay that questioned is answered, thank you. > > I am interested in using speex in a VOIP application. do i need to put it in > into > the ogg contianer format in order to encode/decode and send it? or will it > work > "as is"? if the latter then: > > "the packet is larger than the allocated buffer" message: whats your > recomendaton for fixing that? i was thinking simply getting the size of the > frame > and using the speex_bits_init_buffer() function to create a bigger buffer. > However i > want to keep latency in mind and make them as small as possible. > > i apologise if the questions seem simple but i've working at this for sevreal > days > and i'm a little stump. a indication in the right direction would be helpful. > > thank you in advance, > greg > > > > > > Jean-Marc Valin wrote: > does this have > anything to do with the message on the example code: > > "the packing used is not compatible with speexenc/speexdec" i know it > > may sound stupid but it is my first time using speex lib. as well i > > had assumed this was so and tweaked the decoder code to decode the > > same file that the example encode code made, but i get a "packet is > > larger than allocated buffer could not resize buffer, truncating > > input" message. > > Well, the note says it all. It's just not compatible. speexenc/dec pack > Speex data into an Ogg container, while the sampleenc/dec code just > creates an incompatible ad-hoc format just to demonstrate how to use > Speex (without bothering with the heavy Ogg code). > > Jean-Marc > > > > --------------------------------- > Building a website is a piece of cake. > Yahoo! Small Business gives you all the tools to get online.--------------------------------- Food fight? Enjoy some healthy debate in the Yahoo! Answers Food & Drink Q&A. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20070525/c38614d6/attachment.htm