Mercurial > hg > audiostuff
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 1:9cadc470e3da | 2:13be24d74cd2 |
|---|---|
| 1 /*************************************************************** | |
| 2 A.5 Test source code | |
| 3 ***************************************************************/ | |
| 4 | |
| 5 The microphone and loudspeaker signals have to be synchronized on a | |
| 6 sample-to-sample basis to make acoustic echo cancellation working. | |
| 7 An AC97 conformal on-board soundcard in a Personal Computer can be set | |
| 8 in a special stereo mode: The left channnel records microphone signal | |
| 9 and the right channel records loudspeaker signal. | |
| 10 | |
| 11 To set-up a Linux PC with ALSA sound system, electret microphone like | |
| 12 Labtec Verse 333 connected to Mic in and loudspeaker connected to right | |
| 13 Line out enter: | |
| 14 | |
| 15 amixer -q set 'Master',0 70% unmute | |
| 16 amixer -q set 'PCM',0 70% unmute | |
| 17 amixer -q set 'Line',0 0% mute | |
| 18 amixer -q set 'CD',0 0% mute | |
| 19 amixer -q set 'Mic',0 0% mute | |
| 20 amixer -q set 'Video',0 0% mute | |
| 21 amixer -q set 'Phone',0 0% mute | |
| 22 amixer -q set 'PC Speaker',0 0% mute | |
| 23 amixer -q set 'Aux',0 0% mute | |
| 24 amixer -q set 'Capture',0 50%,0% | |
| 25 amixer -q set 'Mic Boost (+20dB)',0 1 | |
| 26 amixer -q cset iface=MIXER,name='Capture Source' 0,5 | |
| 27 amixer -q cset iface=MIXER,name='Capture Switch' 1 | |
| 28 | |
| 29 To test the acoustic echo cancellation we simulate a real telephone | |
| 30 conversation in 5 steps: | |
| 31 (1) record far-end speaker, | |
| 32 (2) perform acoustic echo cancellation (this should change nothing) | |
| 33 (3) playback far-end speaker and at the same time record near-end speaker | |
| 34 (4) perform acoustic echo cancellation | |
| 35 (5) playback near-end speaker (far-end speech should be cancelled) | |
| 36 | |
| 37 # To compile the test program aec_test read file aec_test.cpp. | |
| 38 | |
| 39 # To record 10 seconds of speech into the file b.raw enter: | |
| 40 arecord -c 2 -t raw -f S16_LE -r 16000 -d 10 >b.raw | |
| 41 | |
| 42 # To perform AEC at the far-end enter: | |
| 43 ./aec_test <b.raw >b1.raw | |
| 44 | |
| 45 # To playback file b1.raw and simultaneously record b2.raw enter both | |
| 46 # commands in one go: | |
| 47 aplay -c 2 -t raw -f S16_LE -r 16000 b1.raw & | |
| 48 arecord -c 2 -t raw -f S16_LE -r 16000 -d 10 >b2.raw | |
| 49 | |
| 50 # To perform AEC at the near-end enter: | |
| 51 ./aec_test <b2.raw >b3.raw | |
| 52 | |
| 53 # To playback the echo-cancelled near-end enter: | |
| 54 aplay -c 2 -t raw -f S16_LE -r 16000 b3.raw |
