In a similar vein, in 1982, I made a speech recognition program for the 
TI 99/4 home computer using a non-linear predictive algorithm to extract 
parameters from the cassette tape port.

Buoyed by earlier success with a 1-bit oversampling algorithm for 
recording and playback of speech, I tried parameter extraction in a 
univector phase space, with a single-bit quantized value.  I introduced 
a primitive operator into Logo to extract this parameter using a 
sample-and-hold algorithm.  The algorithm sampled the cassette input 
port, and held until the extracted parameter reached a "1" state, and 
then returned.

The next level of decoding logic used a genetically-developed Hidden 
Markov Model with a single-level probability chain.  Upon return from 
the sample-and-hold, the Turtle would execute the next command in 
sequence, starting with "Forward 100" followed by "right 90", followed 
by "clearscreen" and then "square."

In training, I would speak the commands "forward," "right", 
"clearscreen," and "square."  the experimental subject would then issue 
the next command, which would unfortunately fail due to the lack of node 
probabilities assigned to this state in the HMM.  Through testing, I 
found that high probability could be assigned to "clearscreen" so I 
extended the HMM with a single node for clearscreen.  On a hunch, I 
added "square" as the terminal node.

I demonstrated the results to one of my professors, and every time I 
spoke, it would execute the command flawlessly.  At the end, I said, 
"clearscreen," and professor nodded sagely, but with tongue in cheek.  
Then he said, "Now make it draw a square again."  I said "square," and 
the turtle performed flawlessly, and earning me the grudging respect of 
my betters.

Never underestimate the power of a Hidden Markov Model, even one with no 
branches.

Leigh/WA5ZNU

Reply via email to