                                Triple-Talk PCI/USB     
                                
Access Solutions
4536 Edison Ave.
Sacramento, CA. 95821
Phone: (916) 481-3559
Web: www.axsol.com
E-mail: james@axsol.com

     
     All Triple-Talk commands are composed of the command character, a one
     or two-digit ASCII parameter n, and an ASCII character which
     uniquely identifies the command. Some commands simply enable or
     disable a feature of Triple-Talk; these commands do not require a
     parameter. The command formats are:

          <command character><n><letter>


   The command character

     The default Triple-Talk command character is Control-A (01h). The
     command character itself can be spoken by Triple-Talk by sending it
     twice in a row: Control-A Control-A. This special command allows the
     command character to be spoken without affecting the operation of
     Triple-Talk, and without having to change to another command
     character and then back again.

   Changing the command character

     The command character can be changed to another control character
     (01h-1Ah) by sending the current command character, followed by the
     new character. To change the command character to Control-D, for
     example, issue the command Control-A Control-D. To change it back,
     issue the command Control-D Control-A. It's generally a good idea to
     change the command character if the forthcoming text contains
     characters which may otherwise be interpreted as command characters
     (and hence commands).

     The command character can be unconditionally reset to Control-A by
     sending Control-^ (1Eh) to Triple-Talk while operating in the Text,
     Character, or Phoneme modes.



   Command parameters

     Command parameters are composed of one or two-digit ASCII numbers.
     Triple-Talk supports two types of parameters: absolute and relative.
     Absolute parameters explicitly specify the parameter's new value,
     such as 9S or 3B. Relative parameters specify a displacement from a
     parameter's current value, not the actual new value itself.

     Relative parameters can specify either a positive or negative
     displacement from a parameter's current value. For example, the
     Volume command +2V increases the current volume by two (V + 2 -> V).

     If the current volume is 4, it will increase to 6 after the command
     has executed. The command -2V will have a similar effect, except the
     volume will be decreased by two.

     If the value of a parameter falls outside the command's range, the
     value will wrap around, instead of being truncated. For example, if
     the current volume is 7 and the command +4V is issued, the resultant
     volume will be (7 + 4) - 10, or 1, since the volume range is 0-9.

     When writing application programs for Triple-Talk, it is recommended
     that relative parameters be used for temporarily changing voice
     attributes (such as raising the pitch of a word), using
     absolute-parameter commands only once in the program's
     initialization routine. This way, if the base value of an attribute
     must be changed, it only needs to be changed in the initialization
     routine.


   Command Parameter Descriptions

     This section describes the software commands supported by
     Triple-Talk. 

   Voice (nO)

     Triple-Talk's TTS synthesizer has eight standard voices to choose
     from, as well as a number of individual voice controls that can be
     used to independently vary the voice characteristics. The Voice
     command enables Triple-Talk's voice to be changed anytime, such as
     for identifying text attributes (italics, bold, underline, etc.).
     Voices are selected with the commands 0O through 7O, as shown in
     Table 1. Note that because this command alters numerous internal
     voice parameters (pitch, tone, etc.), it should precede any
     individual voice parameter commands.


          n    Voice Name
          
          0    Perfect Paul (default)
          1    Vader
          2    Mountain Mike
          3    Precise Pete
          4    Jammin Jimmy
          5    Biff
          6    Skip
          7    Robo Robert

     Table 1.  Voice Selections


     Some programs, such as screen readers for the blind, often send
     voice control commands (such as pitch) to Triple-Talk. This can
     change the way a voice sounds, or even completely negate any voice
     change you might make. If this happens with your screen reader, try
     adjusting its pitch command to restore the desired voice (some screen 
     readers allow you to do this permanently by editing one of
     its parameter files - check your screen reader documentation for
     details).



   Articulation (nA)

     This command adjusts the articulation level, from 0A through 9A.
     Excessively low articulation values tend to make the voice sound
     slurred; very high values, on the other hand, can make the voice
     sound choppy. In general, the articulation should be increased as
     the speed (nS) is increased. The default articulation is 5A.


   Expression (E/nE)

     Expression, or intonation, is the variation of pitch within a
     sentence or phrase. When expression is enabled (n > 0), Triple-Talk
     attempts to mimic the pitch patterns of human speech. For example,
     when a sentence ends with a period, the pitch drops at the end of
     the sentence; a question mark will cause the pitch to rise.

     The optional parameter n determines the degree of intonation. 0E
     provides no intonation (monotone), whereas 9E is very animated
     sounding. 5E is the default setting. If the parameter is omitted,
     the current (last set) value will be used. This is useful for re-
     enabling intonation after a Monotone command.


   Monotone (M)

     This command disables all intonation (expression), causing
     Triple-Talk to speak in a monotonic voice. Intonation should be
     disabled whenever manual intonation is applied using the Pitch
     command or phoneme attribute tokens. Note that this command is
     equivalent to the 0E command.


   Formant Frequency (nF)

     This command adjusts the synthesizer's overall frequency response
     (vocal tract formant frequencies), over the range 0F through 9F. By
     varying the frequency, voice quality can be fine-tuned or voice type
     changed. The default frequency is 5F.


   Speed (nS)

     The synthesizer's overall rate (speed) of speech can be adjusted
     with this command, from 0S (slowest) through 9S (fastest). The
     default speed is 5S.


   Pitch (nP)

     This command varies the synthesizer's pitch over a wide range, which
     can be used to change the average pitch during speech production,
     produce manual intonation, or create sound effects (including
     singing). Pitch values can range from 0P through 99P; the default is
     50P.


   Volume (nV)

     This command controls the synthesizer's volume level, from 0V
     through 9V. 0V yields the lowest possible volume; maximum volume is
     attained at 9V. The default volume is 5V. The Volume command can be
     used to set a new listening level or create emphasis in speech. 


   Tone (nX)

     The synthesizer supports three tone settings, bass (0X), normal
     (1X), and treble (2X), which work much like the bass and treble
     controls on a stereo. The best setting to use depends on the speaker
     being used and personal preference. Normal (1X) is the default
     setting.


   Reverb (nR)

     This command is used to add reverberation to the voice. 0R (the
     default) introduces no reverb; increasing values of n
     correspondingly increase the reverb delay and effect. 9R is the
     maximum setting.


   Punctuation Filter (nB)

     Depending on the application, it may be desirable to limit the
     reading of certain punctuation. For example, if Triple-Talk is used
     to proofread documents, the application may call for only unusual
     punctuation to be read. On the other hand, an application which
     orally echoes keyboard entries on a computer for a blind user may
     require that all punctuation be spoken.

     Triple-Talk supports four primary levels of punctuation filtering, as
     shown in Table 2. Besides determining which punctuation characters
     will be spoken and which will not, the punctuation filter also
     determines how number strings will be read.

          n    Punctuation Spoken
          
          0    All
          1    Most (all but CR, LF, Space)
          2    Some ($%&#@=+*^<>|\)
          3    None

     Table 2.  Base Punctuation Settings


     The values of n listed in the table cause number strings to be read
     a digit at a time (e.g., 0123 = "zero one two three"). Adding 4 to
     these values (n = 4-7) causes number strings to be read as numbers
     (0123 = "one hundred twenty three"). N = 6 and 7 also cause currency
     strings to be read as they are normally spoken - for example, $11.95
     is read as "eleven dollars and ninety five cents." Finally, adding 8
     to these values (n = 8-15) disables leading zero suppression; number
     strings beginning with zero will always be read a digit at a time.

     The default filter setting is 6B (Some punctuation, Numbers mode,
     leading zero suppression on).


   Timeout Delay (nY)

     The Text and Phoneme modes of Triple-Talk defer translating the
     contents of the input buffer until a CR or Null is received. This
     ensures that text is spoken smoothly from word to word, and that the
     proper intonation is given to the beginnings and endings of
     sentences. If text is sent to Triple-Talk without a CR or Null, it
     will remain untranslated in the input buffer indefinitely.

     Triple-Talk contains a programmable timer which will force it to
     translate its buffer contents after a predetermined time interval.
     The timer is enabled only if the Timeout parameter n is non-zero,
     Triple-Talk is not active (not talking), and the input buffer
     contains no CR or Null characters. Any characters sent to Triple-Talk
     before timeout will automatically restart the timer.

     The Timeout parameter n specifies the number of 200 millisecond (0.2
     sec) periods in the delay time, which can range from 200
     milliseconds to 3 seconds (Table 3). The default value is 0, which
     disables the timer.


          n    Delay
          
          0    Indefinite (wait for CR/Null)
          1    200 milliseconds
          2    400 milliseconds
          .    .
          .    .
          15   3000 milliseconds (3 sec.)


   Load Exceptions (L)

     This command purges Triple-Talk's exception dictionary and stores
     subsequent output from the host in Triple-Talk's exception dictionary
     RAM. 
     
     The dictionary can be purged from Triple-Talk with the Reinitialize
     command, or by loading a "null" dictionary file into Triple-Talk.
     Both methods reallocate the memory space occupied by the exception 
     dictionary.
     
     Exception files must be compiled into the internal format used by
     Triple-Talk before they can be used. A compiler program  
     may be obtained by calling Access Solutions technical
     support team directly.
     

   Enable Exceptions (U)

     The exception dictionary is enabled with this command. If Triple-Talk
     is in Phoneme mode, or if an exception dictionary has not been
     loaded, the command will have no effect. The exception dictionary
     can be disabled by issuing one of the mode commands D, T, or C.


   Reinitialize (@)

     This command clears the input buffer (see "Clear" command) and
     restores all of the voice parameters to their default settings. The
     exception dictionary memory is also cleared. 


   Zap Commands (Z)

     This command prevents Triple-Talk from honoring subsequent commands,
     enabling it to read commands as they are issued. Any pending
     commands in the input buffer will still be honored. The only way to
     restore command recognition after the Zap command has been issued is
     to write Control-^ (1Eh) or perform a hardware reset.


   Text Mode/Delay (T/nT)

     This command places Triple-Talk in the Text operating mode. The
     optional delay parameter n is used to create a variable pause
     between words. The shortest, and default delay of 0, is used for
     normal speech. For users not accustomed to synthetic speech, the
     synthesizer's intelligibility may be improved by introducing a
     delay. The longest delay that can be specified is 15. If the delay
     parameter is omitted, the current (last set) value will be used and
     the exception dictionary will be disabled. This feature is useful
     for returning from another operating mode or disabling the exception
     dictionary (see "Enable Exceptions" command).


   Character Mode/Delay (C/nC)

     This command puts Triple-Talk in the Character operating mode. The
     optional delay parameter n is used to create a variable pause
     between characters. Values between 0 (the default) and 15 provide
     pauses from shortest to longest, respectively. Values between 16 and
     31 provide the same range of pauses, but control characters will not
     be spoken. If the delay parameter is omitted, the current value will
     be used and the exception dictionary will be disabled.


   Phoneme Mode (D)

     This command disables the text-to-phonetics translator, allowing
     Triple-Talk's phonemes to be accessed directly. Table 5 lists the
     phonemes that can be produced by Triple-Talk.

     When concatenating two or more phonemes, each phoneme must be
     delimited by a space. For example, the word "computer" would be
     represented phonetically as K AX M P YY UW DX ER.


     Phoneme   Example             Phoneme   Example
     Symbol    Word                Symbol    Word
     
     A         dAs (Spanish)       M         Me
     AA        cOt                 N         New
     AE        cAt                 NG        ruNG
     AH        cUt                 NY        nio (Spanish)
     AW        cOW                 O         nO (Spanish)
     AX        bottOm              OW        bOAt
     AY        bIte                OY        bOY
     B         BiB                 P         PoP
     CH        CHurCH              PX        sPot
     D         DiD                 R         Ring
     DH        eiTHer              RR        tRes (Spanish)
     DX        ciTy                S         Sell
     E         sEr (Spanish)       SH        SHell
     EH        bEt                 T         Tin
     EI        mEsa (Spanish)      TH        THin
     ER        bIRd                TX        sTick
     EW        actEUr (French)     U         Uno (Spanish)
     EY        bAke                UH        bOOk
     F         Fee                 UW        bOOt
     G         GaG                 V         ValVe
     H         He                  W         We
     I         lIbro (Spanish)     WH        WHen
     IH        bIt                 Y         maYo (Spanish)
     IX        rabbIt              YY        You
     IY        bEEt                Z         Zoo
     J         aGe                 ZH        viSion
     K         Cute                space     variable pause *
     KX        sKi                 ,         medium pause
     L         Long                .         long pause

     Table 5.  Synthesizer Phonemes
     * Normally used between words; duration determined by nT command


   Phoneme attribute tokens

     Table 6 lists the voice attribute tokens that can be used in the
     Phoneme mode, in addition to the standard Triple-Talk commands. These
     tokens do not require the command character or any parameters.

     As indicated in the table, the / and \ tokens temporarily increase
     and decrease the pitch by m steps. Besides being temporary, the
     difference between using the pitch tokens and the Pitch command (nP)
is that the effective pitch range is extended beyond the normal 0-99
     range by approximately 20 steps, and if the pitch should fall out
     of range, it will simply bottom or top out, instead of wrap around.

     All other phoneme attribute token commands remain in effect until
     explicitly changed.


          Symbol    Function
          
          nn        Set pitch to 'nn' (0-99)
          /         Increase pitch m steps *
          \         Decrease pitch m steps *
          +         Increase speed 1 step
          -         Decrease speed 1 step
          >         Increase volume 1 step
          <         Decrease volume 1 step

     Table 6.  Phoneme Attribute Tokens
     * Step size determined by nE command; m  2.5n


   Applications of Phoneme mode

     Phoneme mode is useful for creating customized speech, when the
     normal text-to-speech modes are inappropriate for producing the
     desired voice effect. For example, Phoneme mode should be used to
     change the stress or emphasis of specific words in a phrase. This is
     because Phoneme mode allows voice attributes to be modified on
     phoneme boundaries within each word, whereas Text mode allows
     changes only at word boundaries. This is illustrated in the
     following program examples.

         100 A$ = CHR$(1)
         105 LPRINT A$;"D";A$;"M"
         110 LPRINT "70H AW  -/D>/EH R  +<\\YY UW   S P\IY K   T UW
             \M IY   DH AE T  -\W EY .+/"

     Note in line 105 that expression is disabled, since the pitch
     variations due to the internal intonation algorithms would otherwise
     interfere with the pitch tokens. Compare this with the same phrase
     produced in Text mode with expression enabled:

         100 A$ = CHR$(1)
         105 LPRINT A$;"T";A$;"E"
         110 LPRINT "How dare you speak to me that way!"

     Phoneme mode is also useful in applications that provide their own
     text-to-phoneme translation, such as the front end of a custom
     text-to-speech system.


Special Commands: 
Ctrl-X Silences speech and clears synthesizer input buffer.
Ctrl-Y Skips to next index marker in input buffer and begins speaking.

