summaryrefslogtreecommitdiffstats
path: root/baseline/source/audiobeam/README
diff options
context:
space:
mode:
Diffstat (limited to 'baseline/source/audiobeam/README')
-rw-r--r--baseline/source/audiobeam/README86
1 files changed, 86 insertions, 0 deletions
diff --git a/baseline/source/audiobeam/README b/baseline/source/audiobeam/README
new file mode 100644
index 0000000..e228eda
--- /dev/null
+++ b/baseline/source/audiobeam/README
@@ -0,0 +1,86 @@
1Readme file for Oxygen beamforming source code distribution
2-----------------------------------------------------------
3
4This is a very very beta distribution of beamforming source code from
5MIT LCS.
6
7There is only one source file, main.c, and one header file,
8main.h. You can compile everything using the Makefile included in the
9distribution.
10
11The input to the program is a text file containing floating
12point values for the signal read on each of the microphones. For n
13microphones, each line of the text files represents a temporal sample
14and should contain n floating point values separated by spaces, e.g.:
15
16-1.8569790e-004 -9.0919049e-004 3.6711283e-004 -1.0073081e-005 ...
17
18There are several modes of operation for the program:
19
201. The most basic mode is to process the microphone data and to
21calculate the output based on one beam focused on a particular point
22in space. The coordinates for the microphones and the focus point are
23specified inside main.c (eventually to be moved to a separate file).
24
252. Far field search mode. This mode assumes a far-field source (which
26means we have a planar wavefront) and a linear array, and sweeps over
27180 degrees in the plane of the array. The microphone coordinates are
28specified in main.c, and the NUM_ANGLES constant defines how many
29angle values should be tested (a value of 180 means one beam per each
30degree). The energy of the signal over a particular window
31(ANGLE_ENERGY_WINDOW_SIZE) is computed for each beam. The direction
32with maximum energy is considered the direction that the speech signal
33is coming from, and is printed out by the program.
34
353. Near-field hill climbing mode. This mode accepts a starting
36coordinate and attempts to "hill-climb" through the space seeking the
37maximum energy. Each of the x, y, and z coordinates are perturbed in
38the positive and negative directions at each time interval
39(GRID_ENERGY_WINDOW_SIZE) by a step size (GRID_STEP_SIZE). This
40perturbation, along with the original coordinate, produces seven
41coordinates to be tested. The direction with the maximum energy
42replaces the current reference coordinate. For instance, if we have a
43starting reference coordinate of (1,1,0) and our step size is 0.01, we
44will evaluate the energy for the following seven beams:
45
46(1,1,0)
47(0.99,1,0)
48(1.01,1,0)
49(1,0.99,0)
50(1,1.01,0)
51(1,1,-0.01)
52(1,1,0.01)
53
54Now let's say the beam (1,1.01,0) has the maximum energy; then this
55coordinate will replace the original reference coordinate of (1,1,0).
56
57For methods 2, and 3, we are not outputting anything to disk, we are
58just printing the result. This is because we have just started to work
59with these methods, and have not applied them in real systems. This
60code is currently being ported to RAW.
61
62To get a list of parameters for the delay_and_sum executable that is
63generated when the source is compiled, just type ./delay_and_sum .
64
65There is some sample data included with the program, in the data
66directory. There is some data for a near-field and far-field
67source. The README.txt file in each directory specifies the microphone
68and source position. The data1 file, when processed with a beamformer
69aligned in the proper direction should produce something like a sinc
70function (see
71http://ccrma-www.stanford.edu/~jos/Interpolation/sinc_function.html).
72
73The data2 file should produce an audio signal of a woman saying "the
74simplest method". If the beamformer is aligned properly, the noise
75should be reduced significantly over the source signal from only one
76of the microphones (use print_datafile.pl to isolate one
77microphone). You can convert the data file that the program produces
78to wave files using sox.
79
80
81
82
83
84---------------------------------
85Eugene Weinstein
86ecoder@mit.edu \ No newline at end of file