home *** CD-ROM | disk | FTP | other *** search
-
- SWI Interfaces to the Speak Module.
-
- The officially allocated SWI block number is &4ad80.
-
-
-
- SWI &4ad80 Speak_Ready
- Entry: none
-
- Exit: R0 0 if still speaking, -1 if not speaking.
-
- R1 Index into the character string of the ‘Say’
- call which is currently speaking. The
- index points to the start of the word which
- is currently being spoken.
-
- Can be used to wait until the speak module has finished
- speaking, and to identify which word is currently being spoken.
-
-
-
-
- SWI &4ad82 Speak_Misc (Miscellaneous Functions)
- Entry: R0 function
-
-
- R0=1 Register user. Must be used when the user application
- starts. The speak module increments a count of the number of
- users of the speak module. The updated count is returned in
- R0.
-
- R0=2 Deregister user. Must be used when the application
- process terminates. Decrements a count of the number of
- users. If this decrements to zero, the module terminates
- itself.
- The updated count is returned in R0.
-
- R0=3 Translate to phoneme string.
- R1 String of a single English word. This is translated into
- an ascii character string of the phonemes, which is
- returned, pointed to by R0 and terminated by a zero byte.
-
- R0=5 Read voice names.
- On return, R0 points to an array of pointers to zero
- terminated text strings. The array is terminated by a NULL
- (zero) pointer value. The array is indexed by voice
- number to find the name of that voice. This can be used by
- an application to construct a menu of voice names.
-
-
-
-
- SWI &4ad83 Speak_Say
- Entry: R0 Pointer to English text string to be spoken.
- The String must be terminated by 0 byte or CR
- (&D byte), unless the length is indicated by a
- non-zero value in R1.
-
- The string can contain phoneme codes enclosed with
- double braces, {{ }}
-
- When speaking passages of text, this SWI should
- not be called for each individual word, but rather
- for sentences or clauses (i.e. text up to, and
- including a comma, full-stop, colon, semi-colon,
- question-mark, exclamation mark, or paragraph).
-
- Punctuation which is not followed by a blank
- charcater should not be treated as end-of-clause
- (eg. !Application, :path,12.3 ).
- This allows the Speak module to apply an
- intonation pattern to the whole clause.
-
- The Speak module has to copy the text into an
- internal buffer before speaking it. This limits
- thelength the text string to 1000 characters.
-
- This SWI will return immediately, before the text
- has been spoken. Use SWI &4ad80 in a pooling loop
- todetermine when the speaking has finished.
-
- R1 If = 0, the end of the text string is indicated by
- a terminator, as described for R0 above.
-
- If > 0, R1 specifies the length of the text
- string, in which case it does not need a
- terminator. A zero byte within the string will
- still act as a terminator, CR will not.
-
- R2 Bits 0 to 7 specify the voice number to be used
- to speak the text. 0 indicates the default voice.
- Bits 8 to 31 must be zero (reserved for future
- use).
-
- R3 Must be zero (may be used in future versions)
-
- Exit: none
-
-
- SWI &4ad84 Speak_SayW
- As SWI 3 (Say), but it does not return until the module has
- finished speaking the string.
-
-
- SWI &4ad85 Speak_Stop
- Stops speaking any “Say” calls which have been sent to the
- Speak module.
-
-
- (SWI numbers 7 to 10 can be used to set new values of the
- parameters which control the sound of the speech.)
-
- SWI &4ad87 Speak_Pitch
- R0 Gives the new value of the ‘pitch’ parameter.
- Default value is 128.
-
- SWI &4ad88 Speak_Speed
- R0 Gives the new value of the ‘speed’ parameter.
- Default value is 128.
-
- SWI &4ad89 Speak_WordGap
- R0 Gives the new value of the ‘word gap’ parameter.
- 0 = no extra gap between words.
- 1 = ensure a short gap between each spoken word.
- 2 or greater, larger gap between words in multiples
- of approx 50mS.
-
- 128 is treated the same as value 0.
-
- SWI &4ad8a Speak_PitchRange
- R0 Gives the new value of the ‘pitch range’ parameter.
- Default value is 128.
-
-