From: brennan@hal.com (Dave Brennan)
Newsgroups: comp.speech,comp.sys.apple2
Subject: Speech synthesis and voice recognition on the Apple 2
Date: 7 Jan 93 17:21:49 GMT
Organization: HaL Computer Systems, Austin, TX
NNTP-Posting-Host: hysteria.hal.com

My Apple //e has been idle for some time, but I've been considering brining
it out of retirement to play around with some speech synthesis and voice
recognition and possibly connect it to my Unix machine with a serial line
and use it as a dedicated speech I/O machine.

I've got an Echo II speech synthesizer and Lis'ner 1000 speech recognition
board (from MicroMint).  Both are about 6 year old technology, but may be
good enough to get the job done.  I'm wondering if anyone has any experience
programming either of these beasties?  Both come with user-level programs
and some machine language drivers for Basic, which isn't going to be
sufficient for what I want to do.  I also know that both don't seem to work
at the same time, but I don't remember why.  (They probably load their
drivers in the same location, or try to use the same page 0 addresses.)

Ideally I'd like to be able to hack together a program (in assembler) that
could drive these two boards and communicate over the serial port to another
computer.  I was hoping that since they are both old enough now it might
even be possible to get my hands on some of the original source code for the
drivers for the boards, but I haven't tried to contact the manufactures (are
either of them still around).  I know that the Lis'ner 1000 design appeared
in Steve Ciarcia "Circuit Cellar" column in Byte, November 1984.  He decided
to build and sell them as well (I bought my board from him directly).  I
could always disassemble the drivers for both and figure out what's going
on, but this is a last resort.

The Lis'ner 1000 could be a lot of fun to hack around with.  The board uses
a General Instrument SP1000 voice-recognition chip to do liner predictive
coding (LPC).  Is LPC still a valid technology for speech recognition?  One
of the big "selling points" for the Lis'ner was that the board did the LPC
half of the recognition and the software did the job of deciding what word
was spoken.  The idea was that as speech recognition technology improved,
one could simply replace the software and get better recognition
capabilities.  I still have the original software, and have no idea if there
were ever any improvements.  Does anyone have some good references on
recognition algorithms which are based on LPC encoding of speech?

The SP1000 could also do "reverse LPC," that is, given the LPC coefficients,
it would generate speech.  The Byte article said:

  Typically, these coefficients are computer on a minicomputer and
  stored as files to be loaded into the microprocessor's memory.  
  Eventually, General Instrument intends to supply an allophone set
  that will let the user synthesize any word using a text-to-speech
  algorithm or a dictionary table.

In fact, the board came with a demo program that generated human sounding
speech from sample coefficient data from General Instrument.  I don't
know if they ever got around to creating that allophone set.  It also seems
like if the input for recognition is the LPC coefficients, it should be
possible to save them, then feed them back to the chip again to reproduce
what was captured, but this isn't mentioned in the article anywhere.  The
idea is pretty obvious, but I'm no expert, and there must be some reason
that it isn't mentioned.

I guess that's enough for now.  
Let me know if you have any comments, help, pointers, etc.  I can post
more information if anyone is interested.

--
Dave Brennan                                      HaL Computer Systems
brennan@hal.com                                         (512) 794-2855