Tay YueWeng
2005-Apr-18 08:11 UTC
[Speex-dev] speex voice seems to be bit breaking over long distance.
Hi, Ok, what you suggest sound logical to me. Currently, I have done a small trick to prevent this problem. What I did is that whenever windows request a voice packet from me and if I do not have the voice packet, I repeat the previous packet. Hence, all the breaking portion is filled with previous packet. This trick seems to work so far. I am not sure what is the side effect. I think jitter buffering is more correct way to solve this problem but I think this is not so easy. Is there got any source code to reference from? Regards, YueWeng --- "Kleijn, J.S. de" <J.S.d.Kleijn@student.tue.nl> wrote:> Hi, > > You should implement a jitter buffer, this buffers > the audio to prevent the 'breaking'. > > My VoIP application called VoIPerized has a jitter > buffer. You can try it to see if you then don't > experience the breaking of the voice. > > Greetings Jeroen de Kleijn > > -----Oorspronkelijk bericht----- > Van: speex-dev-bounces@xiph.org namens Tay YueWeng > Verzonden: ma 18-4-2005 11:28 > Aan: speex-dev@xiph.org > CC: > Onderwerp: [Speex-dev] speex voice seems to be bit > breaking over long distance. > > > > Dear all, > I have implemented speex. Under LAN environment, > everything is working fine. However, when the > source > and destination is about 20 hrs away, with ping > response time of about 800ms, the voice is > breaking. > Breaking means you can not hear a smooth voice. > Like > the voice is being "chopped" into many pieces. > > The amount of packet lost is less than 10%. I have > tried 8KHz, 16KHz, 32KHz. The bigger it gets, the > more > lousy the quality. I believe I have enough > bandwidth > since the packet lost is less than 10%. The only > factor that could affect the quality is may be > delayed. > > Any one have any idea of what is wrong? > > Regards, > YueWeng > > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam > protection around > http://mail.yahoo.com > _______________________________________________ > Speex-dev mailing list > Speex-dev@xiph.org > http://lists.xiph.org/mailman/listinfo/speex-dev > > >__________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
Steve Kann
2005-Apr-18 08:32 UTC
[Speex-dev] speex voice seems to be bit breaking over long distance.
Tay YueWeng wrote:>Hi, > >Ok, what you suggest sound logical to me. Currently, I >have done a small trick to prevent this problem. What >I did is that whenever windows request a voice packet >from me and if I do not have the voice packet, I >repeat the previous packet. Hence, all the breaking >portion is filled with previous packet. This trick >seems to work so far. I am not sure what is the side >effect. > >I think jitter buffering is more correct way to solve >this problem but I think this is not so easy. Is there >got any source code to reference from? > > >There's a jitterbuffer included in libspeex. There's also an implementation you can look at as part of asterisk and iaxclient (http://cvs.sourceforge.net/viewcvs.py/iaxclient/iaxclient/lib/) -SteveK
Jean-Marc Valin
2005-Apr-18 09:30 UTC
[Speex-dev] speex voice seems to be bit breaking over long distance.
> Ok, what you suggest sound logical to me. Currently, I > have done a small trick to prevent this problem. What > I did is that whenever windows request a voice packet > from me and if I do not have the voice packet, I > repeat the previous packet. Hence, all the breaking > portion is filled with previous packet. This trick > seems to work so far. I am not sure what is the side > effect.Actually, Speex has Packet Loss Concealment (PLC) builtin. If a packet is missing, instead of repeating the previous one, just try decoding by passing NULL instead of the SpeexBits struct.> I think jitter buffering is more correct way to solve > this problem but I think this is not so easy. Is there > got any source code to reference from?Look for the speex_jitter.h header. Jean-Marc> Regards, > YueWeng > > --- "Kleijn, J.S. de" <J.S.d.Kleijn@student.tue.nl> > wrote: > > Hi, > > > > You should implement a jitter buffer, this buffers > > the audio to prevent the 'breaking'. > > > > My VoIP application called VoIPerized has a jitter > > buffer. You can try it to see if you then don't > > experience the breaking of the voice. > > > > Greetings Jeroen de Kleijn > > > > -----Oorspronkelijk bericht----- > > Van: speex-dev-bounces@xiph.org namens Tay YueWeng > > Verzonden: ma 18-4-2005 11:28 > > Aan: speex-dev@xiph.org > > CC: > > Onderwerp: [Speex-dev] speex voice seems to be bit > > breaking over long distance. > > > > > > > > Dear all, > > I have implemented speex. Under LAN environment, > > everything is working fine. However, when the > > source > > and destination is about 20 hrs away, with ping > > response time of about 800ms, the voice is > > breaking. > > Breaking means you can not hear a smooth voice. > > Like > > the voice is being "chopped" into many pieces. > > > > The amount of packet lost is less than 10%. I have > > tried 8KHz, 16KHz, 32KHz. The bigger it gets, the > > more > > lousy the quality. I believe I have enough > > bandwidth > > since the packet lost is less than 10%. The only > > factor that could affect the quality is may be > > delayed. > > > > Any one have any idea of what is wrong? > > > > Regards, > > YueWeng > > > > __________________________________________________ > > Do You Yahoo!? > > Tired of spam? Yahoo! Mail has the best spam > > protection around > > http://mail.yahoo.com > > _______________________________________________ > > Speex-dev mailing list > > Speex-dev@xiph.org > > http://lists.xiph.org/mailman/listinfo/speex-dev > > > > > > > > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around > http://mail.yahoo.com > _______________________________________________ > Speex-dev mailing list > Speex-dev@xiph.org > http://lists.xiph.org/mailman/listinfo/speex-dev >-- Jean-Marc Valin <Jean-Marc.Valin@USherbrooke.ca> Universit? de Sherbrooke
Good day. Some suggestions. 1. I think it would be useful to add support of "seekable streams" to Speex API. It seems many developers need functions like: GetDuration(), SeekToTime(...),... Something like VorbisFile for Ogg Vorbis. 2. It would be useful to add some samples on working with Speex files. E.g. something like vcut for Ogg Vorbis. Vitaly.