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

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