home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: Multimed / Multimed.zip / talkx.zip / README < prev    next >
Text File  |  1994-11-08  |  9KB  |  263 lines

  1.  
  2. This is a text to speech system produced by integrating various pieces
  3. of code and tables of data, which are all (I believe) in the public domain.
  4.  
  5. The bulk of the intergration was done by myself, that is Nick Ing-Simmons.
  6. I can be reached via my employer at nik@tiuk.ti.com.
  7.  
  8. THIS PACKAGE HAS NO CONNECTION WITH TEXAS INSTRUMENTS; IT IS A PRIVATE
  9. PROJECT OF MY OWN.
  10.  
  11. Despite the E-mail address (which is via TI's US operation) I actually
  12. work in the UK.
  13.  
  14. Ideally you should have obtained and installed GNU gdbm (I use version 1.7.3).
  15. If you have it but cannot install it see below.
  16.  
  17. For best quality it is highly desirable to use one of the dictionaries
  18. suggested below.
  19.  
  20. The package now uses GNU autoconf-2.0 to build a configure script.
  21. The generic install instructions are in INSTALL, but basically 
  22. it works like this :
  23.  
  24. configure 
  25. make 
  26. make check 
  27. say --help
  28. say Something of your choice 
  29. make -n install  # see what it is going to do 
  30. make install     # copy program(s) to /usr/local/bin 
  31.  
  32. configure --help and INSTALL file explain configure options
  33. which may help.
  34.  
  35. To allow the package to be built when installer cannot install the 
  36. GNU gdbm package in the "normal" place you can specify a pathname 
  37. to the gdbm source directory as follows :
  38.  
  39. configure --with-gdbm=<path-to-gdbm>
  40.  
  41. e.g.
  42.  
  43. configure --with-gdbm=$HOME/gdbm
  44.  
  45. Currently there are the following drivers:
  46.  
  47. 1. Sun SPARCStations - written & tested by me (nik@tiuk.ti.com)
  48.    on SunOS4.1.3 and Solaris2.3
  49. 2. Linux - see README.linux
  50. 3. NeXT 
  51. 4. SGI - this builds on "mips-sgi-irix4.0.5H"
  52.    see README.sgi for (a bit) more detail.
  53.  
  54. 5. HPUX
  55.  
  56. 6. Any machine for which a nas/netaudio port exists.
  57.    And for which configure can find the include files and libraries.
  58.  
  59.    (Nas "net audio server" does for audio what X11 does for graphics
  60.     it is available from ftp.x.org:/contrib/audio/nas .)
  61.  
  62. Dictionaries:
  63.    THIS VERSION WILL NOT USE THE SAME DICTIONARY AS PREVIOUS VERSIONS.
  64.    The change was to allow at least one dictionary with a non-restrictive
  65.    copyright to be used. 
  66.  
  67.       Dictionaries convert words in "text" to phonemes in "arpabet"
  68.       symbols. The arpabet symbols are then "expanded" into an ASCII
  69.       representation of the IPA. The IPA representation is inherited
  70.       from the "Computer Usable Version of Oxford Advanced Learners 
  71.       Dictionary" (CUVOLAD). The CUVOLAD was used directly by previous 
  72.       releases of rsynth. CUVOLAD is available from Oxford Text Archive.
  73.  
  74.       Dictionary databases can be built from either of two ftp'able 
  75.       sources:
  76.    
  77.       1. The Carnegie Mellon Pronouncing Dictionary [cmudict.0.1] is Copyright
  78.          1993 by Carnegie Mellon University. Use of this dictionary, for any
  79.          research or commercial purpose, is completely unrestricted.  If you
  80.          make use of or redistribute this material, we would appreciate
  81.          acknowlegement of its origin.
  82.  
  83.          ftp://ftp.cs.cmu.edu:project/fgdata/dict
  84.               Latest seems to be cmudict.0.3.Z
  85.  
  86.       2. "beep" from 
  87.          ftp://svr-ftp.eng.cam.ac.uk/comp.speech/data
  88.               Latest seems to be beep-0.4.tar.gz
  89.  
  90.          This is a direct desendant of CUVOLAD (british pronounciation)  
  91.          (as used by previous releases of rsynth), and so 
  92.          has a more restrictive copyright than CMU dictionary. 
  93.  
  94.       dict.c looks for bDict.db by default. b is for british e.g. beep
  95.       I use aDict.db for CMU (american) dictionary.
  96.       You can then :
  97.  
  98.       say -d a schedule  # sked...
  99.       say -d b schedule  # shed...
  100.  
  101.       It is simplest to obtain dictionaries prior to configuring the 
  102.       package and tell it where the source are at configure time:
  103.  
  104.  
  105.       configure --with-aDict=../dict/cmudict.0.3 --with-bDict=../dict/beep-0.4
  106.  
  107.       If you have already built/installed the package you can 
  108.       gdbm from it as follows:
  109.  
  110.       mkdictdb main-dictionary-file bDict.db 
  111.       mv bDict.db /usr/local/lib 
  112.  
  113.       Expect a few messages from mkdictdb about words it does not like
  114.       in either dictionary.
  115.  
  116.  
  117. It should not be too hard to port it to other hardware.  For a discussion of
  118. these issues see PORTING.
  119.  
  120. Use say --help to get a list of command line options.
  121.  
  122. SPARCStation-10 can play audio at rates other than 8000Hz, so if -r is
  123. used with an acceptable rate it still plays.
  124. If you have '10 then "man 4 dbri" explains legal rates.
  125.  
  126.  
  127. The components (top down ) :
  128.  
  129.    say.c / say.h
  130.  
  131.       C main() function.
  132.       Initializes lower layers and then converts words from
  133.       command line or "stdin" to phonemes.
  134.       Some "normalization" of the text is performed, in particular
  135.       numbers can be represented as sequences of digits.
  136.  
  137.  
  138.    dict.c / dict.h
  139.  
  140.       As of this release uses a GNU "gdbm" database which has been 
  141.       pre-loaded with a pronounciation dictionary.
  142.  
  143.       
  144.    text.c / english.c / text.h
  145.  
  146.       An implementation of US Naval Research Laboratory rules
  147.       for converting english (american?) text to phonemes.
  148.  
  149.       Based on the version on the comp.speech archives, main changes
  150.       were in the encoding of the phonemes from the so called "arpabet"
  151.       to a more concise form used in the above dictionary.
  152.       This form (which is nmemonic if  you know the International Phonetic
  153.       Alphabet), is described in the dictionary documentation. It is
  154.       also very close to that described in the postings by Evan Kirshenbaum
  155.       (evan@hplerk.hpl.hp.com)  to sci.lang and alt.usage.english. (The
  156.       differences are in the vowels and are probably due to the differences
  157.       between Britsh and American english).
  158.  
  159.  
  160.    saynum.c
  161.  
  162.       Code for "saying" numbers derived from same source as above.
  163.       It has been modified to call the higher level routines recursively
  164.       rather producing phonemes directly. This will allow any systematic
  165.       changes (e.g. British vs American switch) to affect numbers without
  166.       having to change this module.
  167.  
  168.  
  169.    holmes.c / holmes.h / elements.c / elements.def
  170.  
  171.       My implementation of a phoneme to "vocal tract parameters" system
  172.       described by Holmes et. al. [1]
  173.  
  174.       The original used an Analogue Hardware synthesizer.
  175.  
  176.    nsynth.c / nsynth.h / def_pars.c
  177.  
  178.       My recoding of the version of the "Klatt" synthesizer, described
  179.       in Klatt [2]. I obtained C source code from Jon Iles who had
  180.       modified the version originally posted to  "comp.speech".
  181.       I have extensively re-coded it in my C style as opposed to Klatt's
  182.       "original" which showed its FORTRAN ancestry.
  183.  
  184.       In my (non-expert) opinion, the changes are extensive enough
  185.       to avoid any copyright on the original.
  186.  
  187.       Only as small subset of the functionality of the synthesizer is
  188.       used by the "holmes.c" driver.
  189.  
  190.     
  191.     hplay.c / hplay.h
  192.  
  193.       hplay.h describes a common interface.
  194.       hplay.c is a link to play/xxxplay.c
  195.  
  196.  
  197. Acknowledgements :
  198.  
  199. Particular thanks to  
  200.      Tony Robinson     ajr@eng.cam.ac.uk
  201.  
  202.      for providing FTP site for alpha testing, and telnet access to a
  203.      variety of machines.
  204.  
  205.    Many thanks to
  206.  
  207.      Axel Belinfante   Axel.Belinfante@cs.utwente.nl  (World Wide Web)
  208.  
  209.      Jon Iles          J.P.Iles@cs.bham.ac.uk
  210.  
  211.      Rob Hooft         hooft@EMBL-Heidelberg.de       (linux stuff)
  212.  
  213.      Thierry Excoffier exco@ligiahp3.univ-lyon1.fr    (playpipe for hpux)
  214.      Markus Gyger      mgyger@itr.ch                  (HPUX port)
  215.  
  216.      Ben Stuyts        ben@stuyts.nl                  (NeXT port)
  217.  
  218.      Stephen Hocking <sysseh@devetir.qld.gov.au>      (Preliminary Netaudio port)
  219.      Greg Renda      <greg@ncd.com>                   (Netaudio cleanup)
  220.      Tracey Bernath  <bernath@bnr.ca>                 (Netaudio testing)
  221.  
  222.      "Tom Benoist"   <ben@ifx.com>                    (SGI Port)
  223.      Andrew Anselmo  <anselmo@ERXSG.rl.plh.af.mil>    (SGI testing)
  224.      Mark Hanning-Lee <markhl@iris-355.jpl.nasa.gov>  (SGI testing)
  225.  
  226.    for assisting me in puting this package together.
  227.  
  228.  
  229. References :
  230.  
  231.    [1] Holmes J. N., Mattingly I, and Shearme J. (1964)
  232.        "Speech Synthesis by Rule" , Language Speech 7, 127-143
  233.  
  234.    [2] Dennis H. Klatt  (1980)
  235.        "Software for a Cascade/Parallel Formant Synthesizer",
  236.        J. Acoust. Soc. Am. 67(3), March 1980.
  237.  
  238.  
  239. Sources :
  240.  
  241. OXFORD TEXT ARCHIVE
  242.  
  243. The Oxford Text Archive has for several years maintained copies of several
  244. machine-readable dictionaries along with its extensive (if
  245. unsystematic) collections of other machine-readable texts. This document
  246. gives some further details of the various dictionaries available, and
  247. summarises the conditions under which copies of them are currently
  248. distributed.
  249.  
  250. The Oxford Text Archive Shortlist  (available on request via electronic
  251. mail and by FTP) gives up to date brief details of all texts held in
  252. the Archive. Send electronic mail to ARCHIVE@VAX.OXFORD.AC.UK. For
  253. anonymous FTP, look in the directory ota on ota.ox.ac.uk (129.67.1.165)
  254.  
  255.  
  256. Internet newsgroups :
  257.  
  258. comp.speech and its archive on svr-ftp.eng.cam.ac.uk
  259.   (Many of starting point sources).
  260.                                       
  261. sci.lang
  262.   (For ASCII IPA)
  263.