Barcode Vocalization Application (BVA)

From: Alan Dechert <adechert_at_earthlink_dot_net>
Date: Thu Sep 25 2003 - 10:21:00 CDT

We need to someone to take on the barcode vocalization application (BVA). I
don't think this is terribly difficult: someone should be able to knock this
out pretty quickly.

We haven't talked about the architecture for this yet so I'd like to suggest
one now.

Say we record wav files representing each of the possible 116 selections.
We could number them 1.wav, 2.wav, ... 116.wav. So 1.wav would say, "George
Washington for president and Abraham Lincoln Vice-President, Republican
Party." 10.wav would say, "For United States Senate, Lucy Stone,
Libertarian Party" 54.wav would say, "For County Commission, David Packard
ranked second." And so on.

In addition, we should record another 13 wav files, one for each contest ...
say np1.wav, np2.wav, ...np13.wav. The "np" files would say, "No
prefercence indicated." So, np1.wav would say, "For president and vice
president, no preference indicated." Np2.wav would say, "For U.S. Senator,
no preference indicated." And so on.

For the demo, write-ins would be indicated without the actual name that was
written in. So, if bit 16 is selected, 16.wav would be played, which would
say, "For U.S. Senate, a write-in candidate was indicated." In the
production system, we may or may not say the write-in -- probably by
spelling it out saying each letter. For the demo, we won't worry about who
was written in.

The interface on the barcode vocalization machine (BVM) would be very simple
for the person attending the machine. The BVA would start and have a screen
that says "NO READ" while awaiting input from the scanner. When input is
received, the string would be checked for length. I mentioned that it's
possible (although very rare) to get some spurious characters from the
scanner. So we want to verify that the string is 39 digits long -- that's
35 digits for the decimal number representing the selections and 4 digits
for the ballot number. When the 39-character string is accepted, the screen
changes to say "READING."

The application then extracts the 35 digit decimal integer and translates
that to the 116 digit binary number. Then we parse the bits as follows. If
all of the first 8 bits are zero, then we play np1.wav, otherwise we play
the wav file that corresponds to the selected candidate (pair, actually, in
this first race). So if the third bit was "1," then we'd play 3.wav which
would say, "Rachel Carson for President and John Muir, Vice President, Green
Party." Then we look at bits 9-16 for the second contest, ... and so on.

That's about it. The only other thing is that maybe for the County
Commission race, when analyzing the bits for this race, we'd probably sort
the selections by ranking. So if David Packard was ranked second and Gordon
Moore was first, we'd play 93.wav ("For County Commissioner, Gordon Moore,
ranked first") and then 54.wav ("For County Commissioner, David Packard,
ranked second").

To complete the application, we need a utility to play .wav files. It
should not be difficult to find a suitable program. I don't know if we can
find an open source GPL program for this but I don't think this is
necessary. I remember something like play.exe included with the first
SoundBlaster card I bought around 12 years ago.

The attendant should be able to cancel the playback by hitting Esc (or some
other key) so that if the voter takes off the headphones before it's done
playing the wav files, others cannot hear the remaining selections being

After the wav files are finished playing, the screen would revert to "NO

Does this sound okay?

-- Alan D.
= The content of this message, with the exception of any external
= quotations under fair use, are released to the Public Domain
Received on Tue Sep 30 23:17:08 2003

This archive was generated by hypermail 2.1.8 : Tue Sep 30 2003 - 23:17:09 CDT