venkatram mustoor
2007-Feb-13 04:49 UTC
[Speex-dev] Re: Speex-dev Digest, Vol 33, Issue 10
Hi All, I am trying to cross compile speex-1.1.12 to powerpc-405, i get a error after the make, speexec.lo error, please help me how to get rid of this error. On 2/9/07, speex-dev-request@xiph.org <speex-dev-request@xiph.org> wrote:> Send Speex-dev mailing list submissions to > speex-dev@xiph.org > > To subscribe or unsubscribe via the World Wide Web, visit > http://lists.xiph.org/mailman/listinfo/speex-dev > or, via email, send a message with subject or body 'help' to > speex-dev-request@xiph.org > > You can reach the person managing the list at > speex-dev-owner@xiph.org > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of Speex-dev digest..." > > > Today's Topics: > > 1. Re: AEC and resample question (Jim Crichton) > 2. Re: AEC and resample question (Jean-Marc Valin) > 3. Speex port to Coldfire or Equivalent (Larry W. Koos) > 4. speex in C# please help (Mohammed Ibrahim) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Thu, 8 Feb 2007 16:27:28 -0500 > From: "Jim Crichton" <jim.crichton@comcast.net> > Subject: Re: [Speex-dev] AEC and resample question > To: <jtrantow@ieee.org>, <speex-dev@xiph.org> > Message-ID: <00b601c74bc7$ef43c6c0$7100a8c0@Jimlaptop2> > Content-Type: text/plain; format=flowed; charset="iso-8859-1"; > reply-type=original > > Jerry, > > Looking at the paper that you referenced (which I have seen before), the > example shows an AEC on the microphone/speaker side and an LEC on the > ISDN/PSTN side, and an Adaptive Interpolator in the middle. The add/drop > sample approach is just a simple adaptive interpolator, and, as you say, it > has nothing to do with the echo path delay. > > As long as you are behind the AEC/microphone/speaker combination, it seems > like dropping or repeating samples should not affect the echo canceller at > all. However, you are introducing phase jumps in the audio, and maybe that > disrupts the frequency-domain echo canceller that Speex is using. > > Cutting and pasting speech files would create similar phase jumps. > Jean-Marc, would you expect this to give the echo canceller any trouble? > > If this is really an issue, instead of adaptive resampling, you could try to > make the changes when the energy is low. But the decision logic might not > be any simpler than the resampler. > > - Jim > > > ----- Original Message ----- > From: "Jerry Trantow" <jtrantow@ieee.org> > To: <speex-dev@xiph.org> > Sent: Thursday, February 08, 2007 1:08 PM > Subject: [Speex-dev] AEC and resample question > > > I understand that the capture/playback signals need to be sync'd for an AEC > to adapt. I'm a little bit confused on the requirements of synchronous > sampling between the near end (mic/speaker) and the far end (phone line). I > have an embedded DSP system with mic and speaker getting 1msec packets > containing 8 samples. We can watch the DSP and ISDN clock frames drift and > every few minutes we will drop or reuse a packet of samples. > > According to "Echo Cancellation Demystified" by Alexey Frunze > http://www.spiritdsp.com/pdf/article_4.pdf (see section "Incorrect Codec > Synchronization") dropping or reusing samples isn't a viable solution since > it abruptly changes the echo path delay. If I am dropping/reusing far end > (phone line/ISDN) samples before they go out the speaker and after the mic, > I don't understand why this has anything to do with the echo path. > > The solution in the paper is to put an adaptive SRC between the phone codec > and mic/speaker codec. > > This must be a common situation. I'm curious how people are implementing > speex and the AEC? Is there any benefit to resample? Is the speex resample > code suitable for adjusting the sample rates that only differ by clock > crystal tolerances? > > > _______________________________________________ > Speex-dev mailing list > Speex-dev@xiph.org > http://lists.xiph.org/mailman/listinfo/speex-dev > > > > > ------------------------------ > > Message: 2 > Date: Fri, 09 Feb 2007 09:35:26 +1100 > From: Jean-Marc Valin <jean-marc.valin@usherbrooke.ca> > Subject: Re: [Speex-dev] AEC and resample question > To: jtrantow@ieee.org > Cc: speex-dev@xiph.org > Message-ID: <45CBA5AE.9030903@usherbrooke.ca> > Content-Type: text/plain; charset=ISO-8859-1 > > > > Jerry Trantow a ?crit : > > I understand that the capture/playback signals need to be sync'd for an AEC > > to adapt. I'm a little bit confused on the requirements of synchronous > > sampling between the near end (mic/speaker) and the far end (phone line). I > > have an embedded DSP system with mic and speaker getting 1msec packets > > containing 8 samples. We can watch the DSP and ISDN clock frames drift and > > every few minutes we will drop or reuse a packet of samples. > > The only requirement for sync is between the near-end capture and > playback. outside of that, you can do pretty much whatever you like. > > > According to "Echo Cancellation Demystified" by Alexey Frunze > > http://www.spiritdsp.com/pdf/article_4.pdf (see section "Incorrect Codec > > Synchronization") dropping or reusing samples isn't a viable solution since > > it abruptly changes the echo path delay. If I am dropping/reusing far end > > (phone line/ISDN) samples before they go out the speaker and after the mic, > > I don't understand why this has anything to do with the echo path. > > > > The solution in the paper is to put an adaptive SRC between the phone codec > > and mic/speaker codec. > > All of that is only about differences between the capture and playback > clocks. > > > This must be a common situation. I'm curious how people are implementing > > speex and the AEC? Is there any benefit to resample? Is the speex resample > > code suitable for adjusting the sample rates that only differ by clock > > crystal tolerances? > > The resampler I have is actually designed to be able to do that type of > this. But in your case it's overkill, just keep on discarding samples > (or better, doing a bit of smoothing) and you should be fine. > > Sorry about the confusion. > > Jean-Marc > > > ------------------------------ > > Message: 3 > Date: Thu, 08 Feb 2007 09:08:00 -0500 > From: "Larry W. Koos" <larry@koostech.com> > Subject: [Speex-dev] Speex port to Coldfire or Equivalent > To: speex-dev@xiph.org > Message-ID: <45CB2EC0.5050703@koostech.com> > Content-Type: text/plain; charset="us-ascii" > > An HTML attachment was scrubbed... > URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20070208/8d58621c/attachment.htm > -------------- next part -------------- > A non-text attachment was scrubbed... > Name: ktsLogoNew.jpg > Type: image/jpeg > Size: 8000 bytes > Desc: not available > Url : http://lists.xiph.org/pipermail/speex-dev/attachments/20070208/8d58621c/ktsLogoNew.jpg > > ------------------------------ > > Message: 4 > Date: Thu, 8 Feb 2007 17:36:40 +0200 > From: "Mohammed Ibrahim" <snouto@gmail.com> > Subject: [Speex-dev] speex in C# please help > To: <speex-dev@xiph.org> > Message-ID: <000601c74b96$ef707250$0201a8c0@robtronix> > Content-Type: text/plain; charset="windows-1256" > > hello guys this is my code for the C# wrapper. > ================================> using System; > > using System.Runtime.InteropServices; > > using System.IO; > > namespace Speex > > { > > ///<summary> > > ///the following class is the win32 SPEEX API that retrieve > > ///methods and structures from the libspeex file > > ///</summary> > > public unsafe class Speex_win32 > > { > > #region Speex Constants > > //global speex file that contains the api(s) > > public const string libpath = "libspeex.dll"; > > public const int Frame_Size = 160; > > public const int Max_Frame_Size = 2000; > > public const int Speex_Get_Frame_Size = 3; > > public const int Speex_Set_Quality = 4; > > public const int Speex_nb_Mode = 3; > > //create the structure that will hold the speexbits > > public struct SpeexBits > > { > > public char *chars; /* "raw" data */ > > public int nbBits; /* Total number of bits stored in thestream*/ > > public int charPtr; /* Position of the byte "cursor" */ > > public int bitPtr; /* Position of the bit "cursor" within thecurrent char */ > > public int owner; /* Does the struct "own" the "raw" buffer(member "chars") */ > > public int overflow; /* Set to one if we try to read past thevalid data */ > > public int buf_size; /* Allocated size for buffer */ > > public int reserved1; /* Reserved for future use */ > > public void *reserved2; /* Reserved for future use */ > > } > > [StructLayout(LayoutKind.Sequential)] > > public struct SpeexMode > > { > > public void *mode; > > public IntPtr query; > > public char *modename; > > public int modeid; > > public int bitstream_version; > > public IntPtr enc_init; > > public IntPtr enc_destroy; > > public IntPtr enc; > > public IntPtr dec_init; > > public IntPtr dec_destroy; > > public IntPtr dec; > > public IntPtr enc_ctl; > > public IntPtr dec_ctl; > > } > > #endregion > > #region Exported Methods > > [DllImport(libpath)] > > public static extern void *speex_encoder_init(ref SpeexMode modein); > > [DllImport(libpath,EntryPoint="speex_lib_get_mode")] > > public static extern IntPtr speex_lib_get_mode (int modein); > > [DllImport(libpath)] > > public static extern int speex_encoder_ctl(void *state , int request , void *ptr); > > [DllImport(libpath)] > > public static extern int speex_encoder_settings(void *state , int complexity , int samplingrate,int quality , int bitrate); > > [DllImport(libpath)] > > public static extern int speex_encoder_int(void *state , short *input , SpeexBits *bits); > > //exported bit operation methods > > [DllImport(libpath)] > > public static extern void speex_bits_init(SpeexBits *bits); > > [DllImport(libpath)] > > public static extern int speex_bits_write(SpeexBits *bits , IntPtr bytes , int Max_length); > > [DllImport(libpath)] > > public static extern int speex_bits_reset(SpeexBits *bits); > > [DllImport(libpath)] > > public static extern void *speex_decoder_init(int modein); > > [DllImport(libpath)] > > public static extern int speex_decoder_ctl(void *state , int request , void *ptr); > > [DllImport(libpath)] > > public static extern int speex_decoder_int(void *state , short *input , SpeexBits *bits); > > #endregion > > } > > } > > > > when i call the speex_lib_get_mode(int modein); > > in my managed code i have an exception with the message "unable to find an entrypoint for the speex_lib_get_mode in the libspeex.dll file" > > please help is there anything something wrong in my wrapper please help or correct my file please. > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20070208/9ba521bb/attachment.htm > > ------------------------------ > > _______________________________________________ > Speex-dev mailing list > Speex-dev@xiph.org > http://lists.xiph.org/mailman/listinfo/speex-dev > > > End of Speex-dev Digest, Vol 33, Issue 10 > ***************************************** >
Could you be less specific please? Jean-Marc venkatram mustoor a ?crit :> Hi All, > > I am trying to cross compile speex-1.1.12 to powerpc-405, > > i get a error after the make, speexec.lo error, > please help me how to get rid of this error. > > > On 2/9/07, speex-dev-request@xiph.org <speex-dev-request@xiph.org> wrote: >> Send Speex-dev mailing list submissions to >> speex-dev@xiph.org >> >> To subscribe or unsubscribe via the World Wide Web, visit >> http://lists.xiph.org/mailman/listinfo/speex-dev >> or, via email, send a message with subject or body 'help' to >> speex-dev-request@xiph.org >> >> You can reach the person managing the list at >> speex-dev-owner@xiph.org >> >> When replying, please edit your Subject line so it is more specific >> than "Re: Contents of Speex-dev digest..." >> >> >> Today's Topics: >> >> 1. Re: AEC and resample question (Jim Crichton) >> 2. Re: AEC and resample question (Jean-Marc Valin) >> 3. Speex port to Coldfire or Equivalent (Larry W. Koos) >> 4. speex in C# please help (Mohammed Ibrahim) >> >> >> ---------------------------------------------------------------------- >> >> Message: 1 >> Date: Thu, 8 Feb 2007 16:27:28 -0500 >> From: "Jim Crichton" <jim.crichton@comcast.net> >> Subject: Re: [Speex-dev] AEC and resample question >> To: <jtrantow@ieee.org>, <speex-dev@xiph.org> >> Message-ID: <00b601c74bc7$ef43c6c0$7100a8c0@Jimlaptop2> >> Content-Type: text/plain; format=flowed; charset="iso-8859-1"; >> reply-type=original >> >> Jerry, >> >> Looking at the paper that you referenced (which I have seen before), the >> example shows an AEC on the microphone/speaker side and an LEC on the >> ISDN/PSTN side, and an Adaptive Interpolator in the middle. The add/drop >> sample approach is just a simple adaptive interpolator, and, as you >> say, it >> has nothing to do with the echo path delay. >> >> As long as you are behind the AEC/microphone/speaker combination, it >> seems >> like dropping or repeating samples should not affect the echo >> canceller at >> all. However, you are introducing phase jumps in the audio, and maybe >> that >> disrupts the frequency-domain echo canceller that Speex is using. >> >> Cutting and pasting speech files would create similar phase jumps. >> Jean-Marc, would you expect this to give the echo canceller any trouble? >> >> If this is really an issue, instead of adaptive resampling, you could >> try to >> make the changes when the energy is low. But the decision logic might >> not >> be any simpler than the resampler. >> >> - Jim >> >> >> ----- Original Message ----- >> From: "Jerry Trantow" <jtrantow@ieee.org> >> To: <speex-dev@xiph.org> >> Sent: Thursday, February 08, 2007 1:08 PM >> Subject: [Speex-dev] AEC and resample question >> >> >> I understand that the capture/playback signals need to be sync'd for >> an AEC >> to adapt. I'm a little bit confused on the requirements of synchronous >> sampling between the near end (mic/speaker) and the far end (phone >> line). I >> have an embedded DSP system with mic and speaker getting 1msec packets >> containing 8 samples. We can watch the DSP and ISDN clock frames >> drift and >> every few minutes we will drop or reuse a packet of samples. >> >> According to "Echo Cancellation Demystified" by Alexey Frunze >> http://www.spiritdsp.com/pdf/article_4.pdf (see section "Incorrect Codec >> Synchronization") dropping or reusing samples isn't a viable solution >> since >> it abruptly changes the echo path delay. If I am dropping/reusing far >> end >> (phone line/ISDN) samples before they go out the speaker and after the >> mic, >> I don't understand why this has anything to do with the echo path. >> >> The solution in the paper is to put an adaptive SRC between the phone >> codec >> and mic/speaker codec. >> >> This must be a common situation. I'm curious how people are implementing >> speex and the AEC? Is there any benefit to resample? Is the speex >> resample >> code suitable for adjusting the sample rates that only differ by clock >> crystal tolerances? >> >> >> _______________________________________________ >> Speex-dev mailing list >> Speex-dev@xiph.org >> http://lists.xiph.org/mailman/listinfo/speex-dev >> >> >> >> >> ------------------------------ >> >> Message: 2 >> Date: Fri, 09 Feb 2007 09:35:26 +1100 >> From: Jean-Marc Valin <jean-marc.valin@usherbrooke.ca> >> Subject: Re: [Speex-dev] AEC and resample question >> To: jtrantow@ieee.org >> Cc: speex-dev@xiph.org >> Message-ID: <45CBA5AE.9030903@usherbrooke.ca> >> Content-Type: text/plain; charset=ISO-8859-1 >> >> >> >> Jerry Trantow a ?crit : >> > I understand that the capture/playback signals need to be sync'd for >> an AEC >> > to adapt. I'm a little bit confused on the requirements of synchronous >> > sampling between the near end (mic/speaker) and the far end (phone >> line). I >> > have an embedded DSP system with mic and speaker getting 1msec packets >> > containing 8 samples. We can watch the DSP and ISDN clock frames >> drift and >> > every few minutes we will drop or reuse a packet of samples. >> >> The only requirement for sync is between the near-end capture and >> playback. outside of that, you can do pretty much whatever you like. >> >> > According to "Echo Cancellation Demystified" by Alexey Frunze >> > http://www.spiritdsp.com/pdf/article_4.pdf (see section "Incorrect >> Codec >> > Synchronization") dropping or reusing samples isn't a viable >> solution since >> > it abruptly changes the echo path delay. If I am dropping/reusing >> far end >> > (phone line/ISDN) samples before they go out the speaker and after >> the mic, >> > I don't understand why this has anything to do with the echo path. >> > >> > The solution in the paper is to put an adaptive SRC between the >> phone codec >> > and mic/speaker codec. >> >> All of that is only about differences between the capture and playback >> clocks. >> >> > This must be a common situation. I'm curious how people are >> implementing >> > speex and the AEC? Is there any benefit to resample? Is the speex >> resample >> > code suitable for adjusting the sample rates that only differ by clock >> > crystal tolerances? >> >> The resampler I have is actually designed to be able to do that type of >> this. But in your case it's overkill, just keep on discarding samples >> (or better, doing a bit of smoothing) and you should be fine. >> >> Sorry about the confusion. >> >> Jean-Marc >> >> >> ------------------------------ >> >> Message: 3 >> Date: Thu, 08 Feb 2007 09:08:00 -0500 >> From: "Larry W. Koos" <larry@koostech.com> >> Subject: [Speex-dev] Speex port to Coldfire or Equivalent >> To: speex-dev@xiph.org >> Message-ID: <45CB2EC0.5050703@koostech.com> >> Content-Type: text/plain; charset="us-ascii" >> >> An HTML attachment was scrubbed... >> URL: >> http://lists.xiph.org/pipermail/speex-dev/attachments/20070208/8d58621c/attachment.htm >> >> -------------- next part -------------- >> A non-text attachment was scrubbed... >> Name: ktsLogoNew.jpg >> Type: image/jpeg >> Size: 8000 bytes >> Desc: not available >> Url : >> http://lists.xiph.org/pipermail/speex-dev/attachments/20070208/8d58621c/ktsLogoNew.jpg >> >> >> ------------------------------ >> >> Message: 4 >> Date: Thu, 8 Feb 2007 17:36:40 +0200 >> From: "Mohammed Ibrahim" <snouto@gmail.com> >> Subject: [Speex-dev] speex in C# please help >> To: <speex-dev@xiph.org> >> Message-ID: <000601c74b96$ef707250$0201a8c0@robtronix> >> Content-Type: text/plain; charset="windows-1256" >> >> hello guys this is my code for the C# wrapper. >> ================================>> using System; >> >> using System.Runtime.InteropServices; >> >> using System.IO; >> >> namespace Speex >> >> { >> >> ///<summary> >> >> ///the following class is the win32 SPEEX API that retrieve >> >> ///methods and structures from the libspeex file >> >> ///</summary> >> >> public unsafe class Speex_win32 >> >> { >> >> #region Speex Constants >> >> //global speex file that contains the api(s) >> >> public const string libpath = "libspeex.dll"; >> >> public const int Frame_Size = 160; >> >> public const int Max_Frame_Size = 2000; >> >> public const int Speex_Get_Frame_Size = 3; >> >> public const int Speex_Set_Quality = 4; >> >> public const int Speex_nb_Mode = 3; >> >> //create the structure that will hold the speexbits >> >> public struct SpeexBits >> >> { >> >> public char *chars; /* "raw" data */ >> >> public int nbBits; /* Total number of bits stored in thestream*/ >> >> public int charPtr; /* Position of the byte "cursor" */ >> >> public int bitPtr; /* Position of the bit "cursor" within thecurrent >> char */ >> >> public int owner; /* Does the struct "own" the "raw" buffer(member >> "chars") */ >> >> public int overflow; /* Set to one if we try to read past thevalid >> data */ >> >> public int buf_size; /* Allocated size for buffer */ >> >> public int reserved1; /* Reserved for future use */ >> >> public void *reserved2; /* Reserved for future use */ >> >> } >> >> [StructLayout(LayoutKind.Sequential)] >> >> public struct SpeexMode >> >> { >> >> public void *mode; >> >> public IntPtr query; >> >> public char *modename; >> >> public int modeid; >> >> public int bitstream_version; >> >> public IntPtr enc_init; >> >> public IntPtr enc_destroy; >> >> public IntPtr enc; >> >> public IntPtr dec_init; >> >> public IntPtr dec_destroy; >> >> public IntPtr dec; >> >> public IntPtr enc_ctl; >> >> public IntPtr dec_ctl; >> >> } >> >> #endregion >> >> #region Exported Methods >> >> [DllImport(libpath)] >> >> public static extern void *speex_encoder_init(ref SpeexMode modein); >> >> [DllImport(libpath,EntryPoint="speex_lib_get_mode")] >> >> public static extern IntPtr speex_lib_get_mode (int modein); >> >> [DllImport(libpath)] >> >> public static extern int speex_encoder_ctl(void *state , int request , >> void *ptr); >> >> [DllImport(libpath)] >> >> public static extern int speex_encoder_settings(void *state , int >> complexity , int samplingrate,int quality , int bitrate); >> >> [DllImport(libpath)] >> >> public static extern int speex_encoder_int(void *state , short *input >> , SpeexBits *bits); >> >> //exported bit operation methods >> >> [DllImport(libpath)] >> >> public static extern void speex_bits_init(SpeexBits *bits); >> >> [DllImport(libpath)] >> >> public static extern int speex_bits_write(SpeexBits *bits , IntPtr >> bytes , int Max_length); >> >> [DllImport(libpath)] >> >> public static extern int speex_bits_reset(SpeexBits *bits); >> >> [DllImport(libpath)] >> >> public static extern void *speex_decoder_init(int modein); >> >> [DllImport(libpath)] >> >> public static extern int speex_decoder_ctl(void *state , int request , >> void *ptr); >> >> [DllImport(libpath)] >> >> public static extern int speex_decoder_int(void *state , short *input >> , SpeexBits *bits); >> >> #endregion >> >> } >> >> } >> >> >> >> when i call the speex_lib_get_mode(int modein); >> >> in my managed code i have an exception with the message "unable to >> find an entrypoint for the speex_lib_get_mode in the libspeex.dll file" >> >> please help is there anything something wrong in my wrapper please >> help or correct my file please. >> -------------- next part -------------- >> An HTML attachment was scrubbed... >> URL: >> http://lists.xiph.org/pipermail/speex-dev/attachments/20070208/9ba521bb/attachment.htm >> >> >> ------------------------------ >> >> _______________________________________________ >> Speex-dev mailing list >> Speex-dev@xiph.org >> http://lists.xiph.org/mailman/listinfo/speex-dev >> >> >> End of Speex-dev Digest, Vol 33, Issue 10 >> ***************************************** >> > _______________________________________________ > Speex-dev mailing list > Speex-dev@xiph.org > http://lists.xiph.org/mailman/listinfo/speex-dev > >