home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / files / program / c_say / readme.say < prev    next >
Text File  |  1993-10-23  |  3KB  |  98 lines

  1.         A talking C function
  2.         ~~~~~~~~~~~~~~~~~~~~
  3.  
  4. From SPEAK2.TOS by A.D.BEVERIDGE & M.N.DAY
  5. C interface by S.ROUX  december 90.
  6.  
  7. PRESENTATION
  8. ~~~~~~~~~~~~
  9.     The purpose of this function is to provide an easy access
  10.   to the speech synthesizer from a C program.
  11.     The function uses timer A interrupt, so the program is not blocked
  12.   and can continue processing while the computer speaks. (like the Xbios 32
  13.   Dosound function.)
  14.     This code was extracted in the file SPEAK2.TOS.
  15.  
  16. FUNCTIONS DESCRIPTION
  17. ~~~~~~~~~~~~~~~~~~~~~
  18.  
  19.   int say(mode, buffer)
  20.     int mode; char *buffer;
  21.  
  22.     mode = 0 ->    immediate return, silence at end of sentence.
  23.     mode = 1 ->    wait the end of voice before returning.
  24.     mode = 2 ->    immediate return, no silence at end of sentence.
  25.     mode = 3 ->    tests if voice is active.
  26.  
  27.     buffer = list of phonemes , terminated by '\0' -> normal speaking.
  28.     buffer = NULL -> no speaking (useful with mode 1)
  29.     buffer = ""   -> repeat previous sentence.
  30.  
  31.      The function always waits the end of the previous sentence
  32.     before speaking.
  33.        If the buffer contains invalid phonemes, no voice is output
  34.     and the function immediatly returns non zero. Depending on the mode,
  35.     the function waits or not the end of sentence before returning 0.
  36.      In mode 3, the function returns 1 if the voice is active,
  37.     0 otherwise (in this mode, the `buffer' parameter is not used).
  38.  
  39.  
  40.   int set_pitch(int val);
  41.  
  42.     Set the tonality of the voice. value can lay from 48 to 199.
  43.     48 : shrill    80: normal    199: bass
  44.  
  45.  
  46.   int set_rate(int val);
  47.  
  48.     set the speed of the voice. values : 20 .. 199 
  49.     20: fast    80: normal   199: slow
  50.  
  51.   char say_copyright[]
  52.     Address of a character string hidden in the object file.
  53.     use: printf("%s", say_copyright);
  54.     or     Cconws(say_copyright);
  55.  
  56.  
  57. SENTENCE SYNTAX
  58. ~~~~~~~~~~~~~~~
  59.  
  60.       The buffer passed in parameter to say() is ascii text,
  61.    using the folowing phonemes:
  62.  
  63.    EY   AY   OY   OW   WX   YX   AE   IY   ER   AO   UX   UH   AH   AA   OH 
  64.    AX   IX   IH   EH   DH   ZH   CH   CH   LX   RX   SH   NX   TH   /H   V  
  65.    Z    J    L    R    W    Y    Q    P    T    K    B    D    G    M    N  
  66.    F    S    -    ?    .         UL   UM   UN   IL   IM   IN 
  67.  
  68.     Each phoneme can be followed by a number from 1 to 9, modifying the
  69.   tone of the voice. ex: AY2, UX4
  70.     The modifiers `>' or `<' make the phoneme longer or shorter.
  71.     These 2 types of modifiers (1..9, < and >) can be used together.
  72.  
  73.     The pseudo phonemes `?' and '.' give respectively interrogative
  74.   and exclamative inflexions to the preceding phoneme.
  75.      The pseudo phonemes ` ', `-' and `Q' are silences of different lengths.
  76.  
  77.  
  78. ADVICES
  79. ~~~~~~~
  80.   1)
  81.     Never get out of a program while the voice is on, because
  82.      the internal speech buffer would be corrupted, causing a crash.
  83.      Use say(1,0L) to wait the end of the voice.
  84.  
  85.   2)
  86.        You can create sentences with SPEAK2.TOS and a shell (like Gulam):
  87.     $ speak2.tos > myfile.say
  88.     $ ue myfile.say
  89.  
  90.  
  91.   3)
  92.       If you can understand the coding of the phonemes, try to add
  93.    the missing french phonemes: 'AN' 'ON', 'IN', 'R' 'U' etc
  94.  
  95. THANKS
  96. ~~~~~~
  97.     To the authors of speak2.tos
  98.