diff intercom/aec_test.txt @ 2:13be24d74cd2

import intercom-0.4.1
author Peter Meerwald <pmeerw@cosy.sbg.ac.at>
date Fri, 25 Jun 2010 09:57:52 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/intercom/aec_test.txt	Fri Jun 25 09:57:52 2010 +0200
@@ -0,0 +1,54 @@
+/***************************************************************
+A.5 Test source code
+***************************************************************/
+
+The microphone and loudspeaker signals have to be synchronized on a
+sample-to-sample basis to make acoustic echo cancellation working.
+An AC97 conformal on-board soundcard in a Personal Computer can be set
+in a special stereo mode: The left channnel records microphone signal
+and the right channel records loudspeaker signal.
+
+To set-up a Linux PC with ALSA sound system, electret microphone like 
+Labtec Verse 333 connected to Mic in and loudspeaker connected to right
+Line out enter:
+
+  amixer -q set 'Master',0 70% unmute
+  amixer -q set 'PCM',0 70% unmute
+  amixer -q set 'Line',0 0% mute
+  amixer -q set 'CD',0 0% mute
+  amixer -q set 'Mic',0 0% mute
+  amixer -q set 'Video',0 0% mute
+  amixer -q set 'Phone',0 0% mute
+  amixer -q set 'PC Speaker',0 0% mute
+  amixer -q set 'Aux',0 0% mute
+  amixer -q set 'Capture',0 50%,0%
+  amixer -q set 'Mic Boost (+20dB)',0 1
+  amixer -q cset iface=MIXER,name='Capture Source' 0,5
+  amixer -q cset iface=MIXER,name='Capture Switch' 1
+
+To test the acoustic echo cancellation we simulate a real telephone
+conversation in 5 steps: 
+  (1) record far-end speaker,
+  (2) perform acoustic echo cancellation (this should change nothing)
+  (3) playback far-end speaker and at the same time record near-end speaker
+  (4) perform acoustic echo cancellation
+  (5) playback near-end speaker (far-end speech should be cancelled)
+  
+# To compile the test program aec_test read file aec_test.cpp.
+  
+# To record 10 seconds of speech into the file b.raw enter:
+arecord -c 2 -t raw -f S16_LE -r 16000 -d 10 >b.raw
+  
+# To perform AEC at the far-end enter:
+./aec_test <b.raw >b1.raw
+
+# To playback file b1.raw and simultaneously record b2.raw enter both 
+# commands in one go:
+aplay -c 2 -t raw -f S16_LE -r 16000 b1.raw &
+arecord -c 2 -t raw -f S16_LE -r 16000 -d 10 >b2.raw
+  
+# To perform AEC at the near-end enter:
+./aec_test <b2.raw >b3.raw
+
+# To playback the echo-cancelled near-end enter:
+aplay -c 2 -t raw -f S16_LE -r 16000 b3.raw

Repositories maintained by Peter Meerwald, pmeerw@pmeerw.net.