Dear all: I have tested AEC provided by speex.But I find it doesn't work! I use file model which means the ref signal and echo signal is pre-recorded.the program is as follows: insigfile = fopen("sig.pcm", "rb"); inreffile = fopen("ref.pcm", "rb"); outfile = fopen("out.pcm", "wb"); st = speex_echo_state_init(NN, 6*NN); while((fread(echo_buf, 2, NN, insigfile) == NN) && (fread(ref_buf, 2, NN, inreffile) == NN)){ { speex_echo_cancel(st, echo_buf, ref_buf, e_buf, noise); fwrite(e_buf, 2 ,NN, outfile); } } speex_echo_state_destroy(st); I check the out file and find that the out file still remains echo signal.The two files are recorded using two machines one plays and another records.so there is no DTD problems. By the way,I find the mdf.c has different versions.Which one is better? Best Regards, Som __________________________________________________ ??????????????? http://cn.mail.yahoo.com