search for: speex_echo_playback

Displaying 20 results from an estimated 41 matches for "speex_echo_playback".

2012 Aug 26
1
stereo usage of the echo canceler
Hello all. A few questions on using speex's echo cancellation, for clarifying: 1) I assume that the echo_frame in this method: speex_echo_playback(echo_state, echo_frame) is just raw "pcm_s16le" type bits/data? I'm a bit new to all this... 2) I assume from this thread: http://lists.xiph.org/pipermail/speex-dev/2009-March/007151.html that speex_echo_playback and speex_echo_capture only work with "mono" input streams/...
2009 Mar 11
1
frame_size parameter
Hi Jean, Thank you for your reply. Ok... I'm gonna use 'samples per channel' everywhere I see 'samples'... but what about the 'speex_echo_playback' function ? it does the following loop: ... for (i=0;i<st->frame_size;i++) st->play_buf[st->play_buf_pos+i] = play[i]; ... So... if frame size is 'samples per channel' it will copy only half the play buffer since there are two channels interleaved (supposing the play...
2006 Sep 21
1
echo cancellation causes assertion
Hello, i'm adding echo cancellation to my voip application, but when i call speex_echo_capture() or speex_echo_playback() causes an assertion failed, it seens that there is a delete in any where. i've encapsulated echo canceller in a class that storage the state and simply call the functions: void EchoCanceller::Playback(short *echo_frame) { speex_echo_playback(echo_state, echo_frame); } void EchoCance...
2010 Sep 30
2
[SPAM] [BombData][alltestmode] Using Speex Echo Canceller
Hi Anton Thanks for the info... What if I use this function do I still need to sync the playback and capture? Assuming that the captured voice (*rec) already contains the echo which I need to cancel out... -------------------------------- void speex_echo_capture (SpeexEchoState *st, const spx_int16_t *rec, spx_int16_t *out) Parameters: st Echo canceller state rec signal
2009 Mar 10
2
frame_size parameter
...stions: if I use stereo input/output do I have to put the samples doubled ? For example... if I'm using 100 ms on mono 8khz I just pass 800 as 'frame_size', but if I switch on using stereo will I have to put 1600 samples to represent the same 100 ms? I'm looking at the code of 'speex_echo_playback' and I see the following snippet: ... for (i=0;i<st->frame_size;i++) st->play_buf[st->play_buf_pos+i] = play[i]; ... So... if my buffer is stereo and I put 800 samples as 'frame_size' the previous loop will just copy half of the 'play' buffer data (50 ms) or am...
2010 Jul 20
2
[SPAM] [BombData][alltestmode] Re: Speex Echo Cancellation
As for me - speex_echo_cancellation is a better choise. Try using it in capture thread instead of those speex_echo_capture and speex_echo_playback functions. And please, describe your problem in details. Cause the fact that you "didn get echo cancellation" doesn't mean you are doing smth wrong. Regards, Anton A. Shpakovsky -----Original Message----- From: speex-dev-bounces at xiph.org [mailto:speex-dev-bounces at xiph.org]...
2011 Apr 21
3
Acoustic echo cancellation
...in a buffer and queue them as a larger >> buffer >> >>> for playback. >> >>> On the send side, I read a large buffer (worth 4 packets) and send them >> out >> >>> over time 20ms apart. >> >>> >> >>> I tried using speex_echo_playback just when a 160-sample packet arrives >> from >> >>> the network, before coalescing and speex_echo_capture just before a >> packet >> >>> is sent out to the network but that doesn't seem to work properly >> (doesn't >> >>> cance...
2009 Jan 05
2
Echo cancellation and synchronization
Hi Jean-Marc and all others! I am having some troubles with the echo cancellation feature of speex in a voip project. I have two threads, one for sound input and one for sound output. In the output thread, I call speex_echo_playback(). or every frame sent to the sound card. In the input thread, I call speex_echo_capture() for every frame captured from the sound card. Also, I do encoding/decoding, networking etc. This all works fine on my MacBook. But when I run the same application on a linux machine I continuously receiv...
2011 Apr 19
1
Acoustic echo cancellation
...nd capture. So for >>> playback, I coalesce 4 packets in a buffer and queue them as a larger buffer >>> for playback. >>> On the send side, I read a large buffer (worth 4 packets) and send them out >>> over time 20ms apart. >>> >>> I tried using speex_echo_playback just when a 160-sample packet arrives from >>> the network, before coalescing and speex_echo_capture just before a packet >>> is sent out to the network but that doesn't seem to work properly (doesn't >>> cancel any echo). >> >> The most likely reason...
2010 Sep 30
0
[SPAM] [BombData][alltestmode] Re: [SPAM] [BombData][alltestmode] Using Speex Echo Canceller
Hi So in your case if you don't want to use speex_echo_cancellation than you should do next way: Save the playback frames (clean echo) within separate playback thread with speex_echo_playback func. Then use speex_echo_capture - it will remove the clean echo frame (saved with speex_echo_playback func) from const spx_int16_t *rec buffer (saved with speex_echo_capture) and you will get clean frame in "out" buffer. The sync is very important - because speex_echo_capture won&...
2011 Apr 21
0
Acoustic echo cancellation
...ame (160 samples) to identify the impulse sound. The time from when the sound enters the stack (before it is queued with the speaker) to the time when it comes out of the mic ready to go out, varies between 0.44 to 0.57 seconds. So I queue the far-end samples for 0.4 seconds, and then send them to speex_echo_playback. Also, I am using a filter length of 0.2 seconds (1600 samples). Each outgoing (near-end) sample coming from the mic is passed through speex_echo_capture to cancel the echo and the output is sent out of the device. Despite this, the cancellation does not seem to work. I have also tried using speex...
2010 Jul 20
1
[BombData][alltestmode] Re: [SPAM] [BombData][alltestmode] Re: Speex EchoCancellation
...echo_state_init(20, 320*10) - frame size should correspond to 20ms. At your sampling rate (16000hz) is should be 16K*0.02 = 320. The same I can notice about echo tail. 100ms: 16000*0.3 = 4800, not 3200 as you has. But that's not crucial I think. Just wanna you get the point. "Internally, speex_echo_playback() simply buffers the playback frame so it can be used by speex_echo_capture() to call speex_echo_cancel(). A side effect of using this alternate API is that the playback audio is delayed by two frames, which is the normal delay caused by the soundcard. When capture and playback are already synchron...
2011 Apr 22
0
Speex-dev Digest, Vol 83, Issue 17
...the >impulse sound. > >The time from when the sound enters the stack (before it is queued with the >speaker) to the time when it comes out of the mic ready to go out, varies >between 0.44 to 0.57 seconds. So I queue the far-end samples for 0.4 >seconds, and then send them to speex_echo_playback. Also, I am using a >filter length of 0.2 seconds (1600 samples). Each outgoing (near-end) sample >coming from the mic is passed through speex_echo_capture to cancel the echo >and the output is sent out of the device. > >Despite this, the cancellation does not seem to work. I hav...
2006 Nov 22
1
how does the echo canceller deal with playback/capture delays?
hello jean-marc and everybody, I keep getting no results when trying to use speex_echo_capture, speex_echo_playback and speex_echo_cancel in a multi-threaded application, as suggested in the manual. Though, the cancellation works properly when i use a file with human voice for far-end input and the same file with echo added in SoundForge for mic input. When i try to insert and remove silence between words modell...
2009 Jun 28
1
TI Davinci DM Serias
...ed these two the during the compiled a warning "I suppose you can have a [ARM4/ARM5E/Blackfin] that has float instructions?" 2. is there any available demos for the echo cancellation because I can get it work. I am using it with the API call "speex_echo_capture", and "speex_echo_playback" on different threads when doing so the CPU loads reaches 80% (instead pf 4%) and I always gets the messages: Auto-filling the buffer (your application is buggy and/or got xruns) Had to discard a playback frame (your application is buggy and/or got xruns( No playback frame available (yo...
2009 Sep 29
1
SPEEX_PREPROCESS_SET_ECHO_STATE produces heap corruption
Hi, when I use preprocessor with AEC, VC++ alerts me about heap corruption. I have protected speex_echo_playback, speex_echo_capture and speex_preprocess_run with mutexes, to avoid echo_state being used at the same time, but it still happens. Any help about this ussue? Thank you.
2011 Apr 16
0
Acoustic echo cancellation
...playback of 20ms. But the hardware requires aggregation for both playback and capture. So for playback, I coalesce 4 packets in a buffer and queue them as a larger buffer for playback. On the send side, I read a large buffer (worth 4 packets) and send them out over time 20ms apart. I tried using speex_echo_playback just when a 160-sample packet arrives from the network, before coalescing and speex_echo_capture just before a packet is sent out to the network but that doesn't seem to work properly (doesn't cancel any echo). So, in this scenario above, please recommend a good place to insert speex_echo_...
2011 Apr 18
0
Acoustic echo cancellation
...e requires aggregation for both playback and capture. So for > playback, I coalesce 4 packets in a buffer and queue them as a larger buffer > for playback. > On the send side, I read a large buffer (worth 4 packets) and send them out > over time 20ms apart. > > I tried using speex_echo_playback just when a 160-sample packet arrives from > the network, before coalescing and speex_echo_capture just before a packet > is sent out to the network but that doesn't seem to work properly (doesn't > cancel any echo). The most likely reason is that you didn't align the far-...
2011 Apr 18
0
Acoustic echo cancellation
...h playback and capture. So for *>>* playback, I coalesce 4 packets in a buffer and queue them as a larger buffer *>>* for playback. *>>* On the send side, I read a large buffer (worth 4 packets) and send them out *>>* over time 20ms apart. *>>* *>>* I tried using speex_echo_playback just when a 160-sample packet arrives from *>>* the network, before coalescing and speex_echo_capture just before a packet *>>* is sent out to the network but that doesn't seem to work properly (doesn't *>>* cancel any echo). *> The most likely reason is that you didn...
2006 Oct 27
2
Echo Canceller trouble in 1.2beta1
...ut_frame, echo_frame, output_frame, residue) where "input_frame" is as captured from mic and "echo_frame... was played from the speaker." Speex_echo_cancel calls these parameters (st, ref, echo, out, Yout). The name "ref" is confusing to me, but the implementation of speex_echo_playback() and speex_echo_capture() confirms that the "ref" argument is supposed to be the mixture of sound coming from the microphone and the "echo" argument is supposed to be whatever has been played out to the speaker. If I pass the arguments in the "right" order, I get gar...