$Id: README,v 1.4 1994/02/24 15:03:05 a904209 Exp a904209 $
$Log: README,v $
# Revision 1.4  1994/02/24  15:03:05  a904209
# Added contributed linux, NeXT and SGI ports.
#
# Revision 1.3  93/11/18  16:28:57  a904209
# Migrated nsyth.c towards Jon's scheme - merge still incomplete
# 
# Revision 1.3  93/11/16  14:00:21  a904209
# Add IDs and merge Jon's klatt sources - incomplete
# 
# Revision 1.2  93/11/16  14:32:36  a904209
# Added RCS Ids, partial merge of Jon's new klatt/parwave

This is a text to speech system produced by integrating various pieces
of code and tables of data, which are all (I believe) in the public domain.

The bulk of the intergration was done by myself, that is Nick Ing-Simmons.
I can be reached via my employer at nicki@lobby.ti.com.

THIS PACKAGE HAS NO CONNECTION WITH TEXAS INSTRUMENTS; IT IS A PRIVATE
PROJECT OF MY OWN.

Despite the E-mail address (which is via TI's US operation) I actually
work in the UK.

Currently there are the following drivers:

1. Sun SPARCStations - written & tested by me (nicki@lobby.ti.com)
2. Linux - see README.linux
3. Quick-fix port to SGI machines 

It should not be too hard to port it to other hardware.  For a discussion of
these issues see INSTALL.


The components (top down ) :

   say.c / say.h

      C main() function.
      Initializes lower layers and then converts words from
      command line or "stdin" to phonemes.
      Some "normalization" of the text is performed, in particular
      numbers can be represented as sequences of digits.


   dict.c / dict.h

      A naive interface to the CUVOALD  (Computer  Usable Version of the Oxford
      Advanced Learner's Dictionary).
      This dictionary is further documented in "text710.doc", which also
      describes is copyright status. If you can abide by the copyright terms
      it can be obtained by anonymous FTP from the "Oxford Text Archive"
      (see below).

      You will need to change the pathname at the top of "dict.c".

      (Rob Hooft did some statistics:
       57000 of the 70000 words in the dictionary are pronounced differently 
       when the dictionary is present...
       Sometime "someone" should look at improving the rules
       a bit, and making an exception-list to save disk space.
      )

   text.c / english.c / text.h

      An implementation of US Naval Research Laboratory rules
      for converting english (american?) text to phonemes.

      Based on the version on the comp.speech archives, main changes
      were in the encoding of the phonemes from the so called "arpabet"
      to a more concise form used in the above dictionary.
      This form (which is nmemonic if  you know the International Phonetic
      Alphabet), is described in the dictionary documentation. It is
      also very close to that described in the postings by Evan Kirshenbaum
      (evan@hplerk.hpl.hp.com)  to sci.lang and alt.usage.english. (The
      differences are in the vowels and are probably due to the differences
      between Britsh and American english).


   saynum.c

      Code for "saying" numbers derived from same source as above.
      It has been modified to call the higher level routines recursively
      rather producing phonemes directly. This will allow any systematic
      changes (e.g. British vs American switch) to affect numbers without
      having to change this module.


   holmes.c / holmes.h / elements.c / elements.def

      My implementation of a phoneme to "vocal tract parameters" system
      described by Holmes et. al. [1]

      The original used an Analogue Hardware synthesizer.

   parwave.c / parwave.h / def_pars.c

      My recoding of the version of the "Klatt" synthesizer, described
      in Klatt [2]. I obtained C source code from Jon Iles who had
      modified the version originally posted to  "comp.speech".
      I have extensively re-coded it in my C style as opposed to Klatt's
      "original" which showed its FORTRAN ancestry.

      In my (non-expert) opinion, the changes are extensive enough
      to avoid any copyright on the original.

      Only as small subset of the functionality of the synthesizer is
      used by the "holmes.c" driver.

    hplay.c / hplay.h

      The driver for SPARCStations. It assumes that the (optional)
      package /usr/demo/SOUND has been installed.


Acknowledgements :

   Many thanks to

     Jon Iles          J.P.Iles@cs.bham.ac.uk

     Tony Robinson     ajr@eng.cam.ac.uk

     Rob Hooft         hooft@EMBL-Heidelberg.de  (linux stuff)

     Axel Belinfante   Axel.Belinfante@cs.utwente.nl  (World Wide Web)
     

   for assisting me in puting this package together.


References :

   [1] Holmes J. N., Mattingly I, and Shearme J. (1964)
       "Speech Synthesis by Rule" , Language Speech 7, 127-143

   [2] Dennis H. Klatt  (1980)
       "Software for a Cascade/Parallel Formant Synthesizer",
       J. Acoust. Soc. Am. 67(3), March 1980.




Sources :


OXFORD TEXT ARCHIVE

The Oxford Text Archive has for several years maintained copies of several
machine-readable dictionaries along with its extensive (if
unsystematic) collections of other machine-readable texts. This document
gives some further details of the various dictionaries available, and
summarises the conditions under which copies of them are currently
distributed.

The Oxford Text Archive Shortlist  (available on request via electronic
mail and by FTP) gives up to date brief details of all texts held in
the Archive. Send electronic mail to ARCHIVE@VAX.OXFORD.AC.UK. For
anonymous FTP, look in the directory ota on ota.ox.ac.uk (129.67.1.165)


Internet newsgroups :

comp.speech and its archive on svr-ftp.eng.cam.ac.uk
  (Many of starting point sources).
                                      
sci.lang
  (For ASCII IPA)
